我是資料夾的擁有者,但無法存取它

我是資料夾的擁有者,但無法存取它

我有一個資料夾,裡面有關於系統的筆記。

我以 user1 登入

cd masternotes產生:

bash: cd: mastersnotes: permission denied

whoami產生:user1

ls -l產生:

drw-rw-rw-. 2 user1 user1        4096 Mar 26 20:47 masternotes

ls -l目錄內產生:

-rw-rw-rw-. 7 user1 user1   345 Oct  7  2006 crontab
-rw-rw-rw-. 7 user1 user1   348 Oct  7  2006 crontab~
-rw-rw-rw-. 7 user1 user1  3702 Oct  7  2006 grep_usage.txt
-rw-rw-rw-. 7 user1 user1 91868 Oct  7  2006 lvm-layout-10-14-03.tif
-rw-rw-rw-. 7 user1 user1    30 Oct  7  2006 mysql
-rw-rw-rw-. 7 user1 user1 35764 Oct  7  2006 notes

我已經chmod -R 666 masternotes在該資料夾上運行了。

我已經運行chown到 root 並chgrp再次運行到 root,然後再次返回 user1。

root可以下行進入資料夾並開啟檔案。

user1 不能。

關於這裡發生的事情有任何線索嗎?

答案1

這是一個權限問題,而不是所有權問題。

您向我們展示的權限中明顯缺少執行權限(縮寫x並出現在 中-) 。rw-

執行權限對於目錄的工作方式與對於常規檔案的工作方式非常不同。對於目錄,執行權限能夠進入目錄(即,存取cd它,或在檔案總管中開啟它)。它們還提供了嘗試存取目錄中的檔案的能力(儘管是否成功也取決於其他權限,有時包括正在存取的檔案的權限)。

root之所以能夠進入該目錄,是因為它並沒有像通常的方式那樣真正受到權限的約束。在許多方面,運行的命令和應用程式root將嘗試尊重權限,以便遵守用戶的意願。但root有權對任何檔案或目錄執行任何操作(作業系統能夠執行的操作)。在rootshell 中,cd進入沒有任何執行權限的目錄將會成功。

解決方案問題是運行:

chmod u+x masternotes

這賦予 ( +) 所有者對該目錄的masternotes( u) 可執行權限 ( )。x

然後,您將能夠以普通使用者身分進入該目錄並嘗試存取其中的檔案。

如果您希望其群組擁有者的成員也能夠執行此操作,那麼您可以執行以下命令:

chmod ug+x masternotes

但您可能是特定於使用者的群組(擁有該資料夾)的唯一成員。

chmod這裡的命令的作用是不是需要運行為root--這是我故意的不是包含sudo在任一命令中。你自己的資料夾,因此您可以自行更改其權限 - 無需root為您執行此操作。

如果您有興趣以數字方式設定執行權限,請記住,對於您添加的每個數字(從零開始):

  • 4 供閱讀。
  • 2 用於寫入。
  • 1 表示執行。

例如,如果您希望每個人都能夠讀取和執行some-file但只有所有者才能寫入,您可以使用:

chmod 755 some-file

我建議社區文件中的 FilePermissions,進一步閱讀 Ubuntu 中的檔案權限,包括可執行位元及其對資料夾的特殊意義。

相關內容