儘管表面上權限正確,但無法訪問 Samba 共享
我一直在嘗試為 NAS 上的某些目錄設置 Samba 共享,但我似乎無法讓它工作。
我的最小化版本
smb.conf
歸結為[global] dns proxy = no create mask = 0664 force create mode = 0664 directory mask = 0775 force directory mode = 0775 [Media] path = /srv/Media writeable =yes
/srv/Media
及其後代屬於使用者和組samba
,模式為 775。我嘗試訪問共享的使用者user
在組中samba
,即他對相關路徑具有讀寫權限。我已經通過su
ing intouser
和cd
ing to驗證了這一點/srv/Media
,在那裡我可以毫無問題地列出和修改文件。為了驗證我的 Samba 密碼(用 設置
smbpasswd -a user
)是否正確,我嘗試連接 smbclient,同時提供了一個故意錯誤的密碼,該密碼NT_STATUS_LOGON_FAILURE
按預期得到了回答,而使用正確的密碼連接時,我進入了 smbclient shell。然而,一旦進入外殼,如果我嘗試ls
,我會得到NT_STATUS_ACCESS_DENIED listing \*
. 通過 CIFS 或 gvfs 掛載也不起作用。我研究了許多具有類似問題的問題和文章,但我發現的幾乎所有內容都是由於共享目錄上的權限問題。驗證了有問題的使用者確實可以在本地訪問有問題的目錄但不能通過 Samba 訪問,我迷路了。
它是 AppArmor。當我在測試時跟踪日誌時,我只使用
journalctl -fu smb
. 最重要的是,我在 systemd-nspawn 容器中執行 Samba,並且也在從內部跟踪日誌,所以無論如何我都無法找到錯誤,但是在查看了主機上的審計日誌之後一時興起,我在 /srv/Media 上看到了一堆拒絕公開呼叫配置文件 smbd。只是為了完整起見,我最後使用(在主機上)關聯日誌的完整命令是
journalctl -m _SYSTEMD_UNIT=smb.service _HOSTNAME=nas + _AUDIT_FIELD_PROFILE='"smbd"'
. 這要求客人日記與主機連結,這是使用時的預設設置machinectl start
。