Files

將 NTFS 文件設置為從 Linux 只讀

  • April 30, 2018

我正在嘗試將一個文件夾及其文件設置為只讀,這樣我就不會意外刪除它。

我跑了

chmod -R 444 myfolder/

但是當我右鍵點擊該文件夾並轉到屬性>權限時,它仍然顯示為讀寫。我也通過修改一個文件進行了測試,修改成功。

此外,當我嘗試將文件管理器 gui 中的權限更改為只讀時,它會立即翻轉回讀寫。

我的印像是 4 意味著只讀訪問。它是否正確?

編輯:

我認為我的問題與驅動器的安裝方式有關。這是 fstab 條目。

UUID=6F7C5E910607D747 /media/storage1 ntfs-3g uid=1000,gid=1000,umask=0022,auto,rw 0 0

筆記

這篇文章是在 OP 提供他在 linux 機器上使用 windows 文件系統 (NTFS) 的附加資訊之前發布的。我的印像是他使用的是本機 linux 文件系統。


您需要為所有者設置讀取、寫入和可執行標誌,並為mydirectory的組設置讀取、可執行標誌。進入文件夾需要可執行標誌。如果沒有它,當您嘗試cd myfolder作為屬於該組或其他人的使用者時,您會得到“權限被拒絕”。

chmod 755 myfolder正在為組和其他人提供訪問權限,或者 chmod 750 myfolder只是為組提供訪問權限並將其他人拒之門外。

將所有權設置為root並將組設置為users

sudo chown root:users myfolder

現在,只有 root 可以在 myfolder 中創建新文件,即。sudo touch mytest 新文件獲得所有權root和組root

要強制新文件獲取使用者組,您需要將 SGID 位設置為 myfolder。

這可以通過兩種方式完成,結果是相同的

sudo chmod +s myfolder(添加 sgid 位)或 sudo chmod 2755 myfolder(相同 + 使用者、組、其他)

做 als -l應該顯示如下內容:

drwsr-sr-x myfolder # last x optional depending on your others setting

如果你現在sudo touch mytest2myfolder,mytest2 屬於root,並且users權限為 644的組

myfolder中的現有文件將被視為:

cd myfolder
sudo chown root:users *
sudo chmod 644 *

1 = execute
2 = write
4 = read

讀 + 寫 = 4 + 2 = 6

PS:你可以用任何使用者替換root,任何組的使用者


根據@Rastapopoulos 的要求進行更新,進一步解釋

假設 myfolder 屬於tom

在執行操作時,chmod -R 444 myfolder/ 您將使用者(tom)、組、其他人的文件夾設置為只讀以及其中的所有文件,所以沒有人能夠進入該文件夾,即使是 tom(除了 root),因為它缺少可執行標誌。

chmod 644 myfoldertom的時候還是進不了文件夾。正確的方法是為 tom 設置 read、write、executable flag,為 group/others 設置 read executable flag。

(executable flag = 1)

IE。chmod 755 myfolder(僅設置 myfolder 的權限,而不是文件)

要僅更改 myfolder 中文件的權限而不更改myfolder的權限,您可以執行以下操作:

chmod 444 myfolder/* 

但是您可能仍想以所有者/湯姆的身份編輯/寫入文件,因此您寧願做一個

chmod 644 myfolder/* (or 640)

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