ファイルはデフォルトで666権限で生成され、umask
この権限からビット単位で(権限ビット単位で)減算されるため、execute
権限文字(r、w、x)を使用せずに権限を付与できますか?
私は次のビットマスクを使用することに言及しています。
umask 002
権限文字が設定されていません。
umask u+x
umask u=rwx
答え1
これは不可能です。umask
権限をブロックするだけで追加することはありません。したがって、生成されたシステムコールに実際に実行権限が含まれている場合open()
にのみ実行権限を取得します。コンパイラが実行可能ファイルを生成する場合がこれに該当します。
答え2
新しいファイルの権限は、呼び出しに使用された権限に基づいて計算されますcreat()
。
結果umask
は次のとおりです。
$ umask 002
$ umask -S
u=rwx,g=rwx,o=rx
したがって、creat()
ファイル権限0777
を使用するとrwxrwxrx
。0666
creat()