woff 發表於 2019-1-2 23:44:33

如何以普通用戶手動掛載linux文件系統讀/寫?(bindfs)

CentOS 7.2
需要预先安装的软件:
fuse
fuse-devel
wget
安裝fuse fuse-devel wget
yum -y install fuse fuse-devel wget

下載 bindfs
wget https://bindfs.org/downloads/bindfs-1.13.10.tar.gz

解壓縮 bindfs
tar -xvf bindfs-1.13.10.tar.gz
編譯安裝:
./configure && make && make install
嘗試運行bindfs
bindfs
我想簡單地將一個ext4文件系統掛載到CentOS(/home/user1)中的普通掛載點,作為當前登錄用戶的可讀寫,即我。

我不想在/etc/fstab中添加任何內容,我只想手動執行。我需要超級用戶權限才能掛載設備,但只有root才能讀寫該掛載。我嘗試了各種掛載選項,將其添加到fstab中,但沒有運氣。


在ext4文件系統(如ext2,ext3和大多數其他源自unix的文件系統)上,有效文件權限不依賴於掛載文件系統的人員或掛載選項,只取決於文件​​系統中存儲的元數據。



如果您的可移動文件系統使用系統中的不同用戶ID,則可以使用bindfs(在同名的CentOS包中)提供具有不同所有權或權限的任何文件系統的視圖。必須已安裝可移動文件系統,例如在/home/superuser/spyglass/user1;那麼,如果你想作為所有文件的所有者出現,你可以運行


mkdir -p ~superuser/spyglass/user1
chown superuser ~superuser/spyglass
chmod 700 ~superuser/spyglass
bindfs -p a+rX ~user1 ~superuser/spyglass/user1
實例說明: 假設我要把 /home/aaa 掛載到指定的目錄下,下達指令即可完成bindfs -p a+rX /home/aaa /home/testdir/web/aaa
但SELINUX會因為檔案權限不符,不能讓你看到/home/aaa下的檔案
可用
setenforce 0
可看到該目錄及檔案

但selinux問題 待解決~setfacl -R -m user:superuser:rx ~user1
setfacl -d -R -m user:superuser:rx ~user1
setfacl -m g:superuser:rwx /home/user1



參考文章
https://unix.stackexchange.com/q ... rs-home-directories
https://docs.oracle.com/cd/E52668_01/E54670/html/ol7-users-selinux.html
https://access.redhat.com/docume ... sers_semanage_login




頁: [1]
查看完整版本: 如何以普通用戶手動掛載linux文件系統讀/寫?(bindfs)