Ubuntu

撤消 chmod 777

  • September 11, 2010

有時在絕望中,測試我的問題是否不是我所做的權限問題:

sudo chmod -R 777 mydir/

在大多數情況下它沒有幫助,現在我有兩個問題;)

裡面的文件mydir/每個都有不同的權限和所有者,現在我需要將它們恢復到原始狀態。

除了創建備份副本之外,是否有任何智能方法可以遞歸恢復權限?例如

command_to_save_the_permissions_somewhere mydir/
chmod -R 777 mydir/
command_to_restore_the_permissions_from_somewhere mydir/

順便說一句,有關調試權限問題的任何提示?

有一種使用 ACL 工具備份和恢復目錄樹的權限和所有權的簡單方法。即使您沒有在文件系統上啟用 ACL,它也可以工作。

getfacl -R >saved-permissions
setfacl --restore=saved-permissions

大多數權限問題都會導致“權限被拒絕”錯誤消息出現在某個地方,無論是在控制台上還是在某些日誌文件中。

調查文件訪問問題的強大工具是strace. 它顯示了程序進行的系統呼叫。輸出可能很難理解,但相對容易看出程序試圖訪問哪些文件以及為什麼它可以或找不到它想要的文件。使用範例:

strace -s9999 -o myprogram.strace myprogram  # trace myprogram
strace -s9999 -fF ...                        # also trace subprocesses
strace -s9999 -p12345                        # connect to running process by PID
strace -s9999 -efile ...                     # only show filesystem calls
strace -eaccess,open,stat,lstat              # only show common file access calls

引用自:https://serverfault.com/questions/180155