我想給一個目錄755權限,所以我使用:
# chmod -R 755 /my/folder/
它適用於我的資料夾內的所有文件,但問題是我使用在此資料夾中建立新文件的腳本,預設情況下權限為 600。
我如何對這些「未來」文件施加 755 權限?
- 編輯 -
我使用一個腳本來提供有關校園網路流量的資訊。我每 10 分鐘就會有一個新文件,位於名為「旅程」的資料夾中,位於月份資料夾中,如下所示:
ls -lrt /home/netmet/secure/2017-04/2017-04-27/
total 118548
-rwxr-sr-x 1 root root 85922 avril 27 00:10 zzaccounting.dmp-00-00
-rwxr-sr-x 1 root root 54874 avril 27 00:20 zzaccounting.dmp-00-10
-rwxr-sr-x 1 root root 33534 avril 27 00:30 zzaccounting.dmp-00-20
-rwxr-sr-x 1 root root 48890 avril 27 00:40 zzaccounting.dmp-00-30
-rwxr-sr-x 1 root root 36878 avril 27 00:50 zzaccounting.dmp-00-40
-rwxr-sr-x 1 root root 37034 avril 27 01:00 zzaccounting.dmp-00-50
-rwxr-sr-x 1 root root 38154 avril 27 01:10 zzaccounting.dmp-01-00
-rwxr-sr-x 1 root root 38318 avril 27 01:20 zzaccounting.dmp-01-10
-rwxr-sr-x 1 root root 26978 avril 27 01:30 zzaccounting.dmp-01-20
-rwxr-sr-x 1 root root 31558 avril 27 01:40 zzaccounting.dmp-01-30
-rwxr-sr-x 1 root root 23662 avril 27 01:50 zzaccounting.dmp-01-40
-rwxr-sr-x 1 root root 32298 avril 27 02:00 zzaccounting.dmp-01-50
-rwxr-sr-x 1 root root 30282 avril 27 02:10 zzaccounting.dmp-02-00
-rwxr-sr-x 1 root root 31110 avril 27 02:20 zzaccounting.dmp-02-10
-rwxr-sr-x 1 root root 25718 avril 27 02:30 zzaccounting.dmp-02-20
-rwxr-sr-x 1 root root 26306 avril 27 02:40 zzaccounting.dmp-02-30
-rwxr-sr-x 1 root root 23690 avril 27 02:50 zzaccounting.dmp-02-40
-rwxr-sr-x 1 root root 23002 avril 27 03:00 zzaccounting.dmp-02-50
-rwxr-sr-x 1 root root 21854 avril 27 03:10 zzaccounting.dmp-03-00
在這裡,我手動更改了權限,但是當新文件出現時,我有這個:
-rw------- 1 root root 3479106 avril 27 15:50 zzaccounting.dmp-15-40
問題是對於下面的每個資料夾和文件/home/netmet/安全/我想要預設755權限。
我已經這樣做了:
chmod -R g+s /home/netmet/secure
setfacl -d -m g::rwx /home/netmet/secure
setfacl -d -m o::rx /home/netmet/secure
答案1
嘗試umask
在您的資料夾中運行。如果它返回“0022”以外的任何內容,那麼這就是您的問題。在你的情況下,它應該初始輸出“0177”。建立目錄時的權限系統基本上是計算出來的:
default - umask
0777是目錄的預設模式,0666是普通檔案的預設模式,但是有不同的umasks,如果我理解這些事情正確的話。嘗試執行umask a=rx,uu+w
.
編輯:您可以使用 umask 為目錄提供執行位,以便能夠 cd 進入該目錄,但不能進入檔案。出於安全考慮,必須手動給這些執行位。只需添加chmod +x <file>
到您的腳本中即可。並且,在文件上設定的執行標誌除了可執行文件之外的任何內容都無效。
答案2
我猜你正在運行的腳本產生umask 設定為 0077 的環境中的檔案。
請注意,umask 是任何進程繼承環境的一部分,通常在登入時從預設「設定檔」設定。任何進程(shell)都可以使用「umask」指令修改自己的和後代子程序(初始)的umask。
目前 umask 中的位元將阻止創建在其權限中設定了這些位元的檔案(因此是“掩碼”,屏蔽生成的權限位)