將 NTFS 文件設置為從 Linux 只讀
我正在嘗試將一個文件夾及其文件設置為只讀,這樣我就不會意外刪除它。
我跑了
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
(相同 + 使用者、組、其他)做 a
ls -l
應該顯示如下內容:drwsr-sr-x myfolder # last x optional depending on your others setting
如果你現在
sudo touch mytest2
在myfolder
,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 myfolder
tom的時候還是進不了文件夾。正確的方法是為 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)