ディレクトリに 755 の権限を与えたいので、次のようにします。
# chmod -R 755 /my/folder/
これはフォルダー内のすべてのファイルに対して機能しますが、問題は、このフォルダーに新しいファイルを作成するスクリプトを使用しており、デフォルトでは権限が 600 になっていることです。
これらの「将来の」ファイルに 755 の権限を課すにはどうすればよいでしょうか?
- 編集 -
私はキャンパス内のネットワーク トラフィックに関する情報を提供するスクリプトを使用しています。次のように、month フォルダー内の Journey というフォルダーに、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/secure/デフォルトで 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 ですが、私の理解が正しければ、umask は異なります。 を実行してみてくださいumask a=rx,uu+w
。
編集: umask を使用してディレクトリに実行ビットを与え、そこに cd できるようにすることができますが、ファイルには実行ビットを与えることはできません。セキュリティ上の理由から、ファイルには手動で実行ビットを与える必要があります。chmod +x <file>
スクリプトに追加するだけです。また、実行可能ファイル以外のファイルに実行フラグを設定しても効果はありません。
答え2
おそらく、あなたはスクリプトを実行しているのでしょう生成するumask が 0077 に設定されている環境のファイル。これにより、生成プログラムが「グループ」および「その他」の権限ビットに権限ビットを設定することが防止されます。
umask はプロセスの継承環境の一部であり、通常はログイン時にデフォルトの「プロファイル」から設定されることに注意してください。どのプロセス (シェル) でも、「umask」コマンドを使用して、自分自身の umask と子孫の (初期) umask を変更できます。
現在の umask のビットは、パーミッションにこれらのビットが設定されているファイルの作成を防止します (つまり、「マスク」となり、結果として得られるパーミッション ビットをマスクします)