Samba

如何在 CIFS 掛載上 chown 文件?

  • January 13, 2017

這是我的步驟:

mkdir /mnt/docs
chown www-data:www-data /mnt/docs
ls -l /mnt

積極的結果:

drwxr-xr-x 2 www-data www-data 4096 Jan  6 01:14 docs
drwxr-xr-x 2 root     root     4096 Dec  8 21:46 cdrom

現在我成功掛載了遠端共享(我可以touch以root身份向它送出文件),就像這樣

mount -t cifs //192.168.1.10/Public/Documents/Docs -o username=****,password="****" /mnt/docs
ls -l /mnt

負面結果(所有者回到根目錄):

drwxr-xr-x 2 root root    0 Jan 12 02:51 docs
drwxr-xr-x 2 root root 4096 Dec  8 21:46 cdrom

然後我嘗試這樣chown的符號連結(使用-h)

chown -h www-data:www-data /mnt/docs
ls -l /mnt

但結果還是

drwxr-xr-x 2 root root    0 Jan 12 02:51 docs
drwxr-xr-x 2 root root 4096 Dec  8 21:46 cdrom

如何以非 root 使用者身份將共享掛載到本地掛載點?目標是讓 Apache 能夠寫入遠端共享。對 Debian 或 CentOS 系統的解決方案表示讚賞。此外,chmod也沒有效果。


相關:符號連結創建失敗:更改所有權問題

我不確定你指的是什麼符號連結。您未能更改的是/mnt/docs您的 CIFS 共享的掛載點的所有者。安裝點所有者更改為在其上安裝內容的使用者 ( root)。

既然 onlyroot能夠掛載,那麼如何更改掛載點的所有者(及其底層內容)?使用uidandgid選項(如果需要,還可以使用forceuidandforcegid選項)。

請參閱手冊頁mount.cifs

uid=arg

當伺服器不提供所有權資訊時,設置將擁有已安裝文件系統上的所有文件或目錄的 uid。它可以指定為使用者名或數字 uid。未指定時,預設為 uid 0。

因此,您的mount命令應該是:

mount -t cifs \
     -o username=****,password="****",uid=www-data \
     //192.168.1.10/Public/Documents/Docs \
     /mnt/docs

引用自:https://unix.stackexchange.com/questions/337024