我在 /etc/fstab 中使用以下命令安裝網路磁碟機:
$ sudo nano /etc/fstab
//XXX.XXX.XXX.XXX /mnt/bilder cifs auto,username=XXXX,password=XXXX,vers=3.0,uid=1000,gid=1000,file_mode=0777,dir_mode=0777 0 0
效果完美。當我現在檢查 /mnt 上的權限時
$ ls -la /mnt
total 8
drwxr-xr-x 3 root root 4096 Jun 23 13:37 .
drwxr-xr-x 22 root root 4096 Jul 12 14:16 ..
drwxrwxrwx 2 pi pi 0 Aug 1 15:04 bilder
那麼 pi 使用者(我登入的使用者)似乎擁有作為所有者的 rwx 權限。事實上每個人都應該有rwx。
但當我現在嘗試觸摸 /mnt/bilder 時,我被拒絕了
$ touch /mnt/bilder/test
touch: cannot touch '/mnt/bilder/test': Permission denied
這是如何以及為何如此?
答案1
當您掛載 SMB 共用時,不會顯示真實的 Windows 檔案權限。您看到的只是 fstabfile/dir_mode
選項告訴 CIFS 客戶端的內容展示,但這些選項不允許您繞過安全性。
(Windows/SMB 檔案權限比普通檔案權限更廣泛rwx
,需要不同的工具(例如「getcifsacl」)才能正確顯示。)
然而,實際的存取檢查仍然由伺服器根據透過 Windows 設定的檔案權限來完成,並且根據username=
您用於裝載共用的使用者帳戶 ( ) 進行檢查。
即使伺服器在 Linux 上運行 Samba,同樣的情況也適用:所有存取檢查都是基於帳戶的,儘管客戶端可以顯示真實的 Linux 檔案權限(如果它有足夠新的核心支援此 SMBv3 擴充功能),它無法覆蓋它們。