2

私はLinuxが初めてです。umask コマンドでいくつかの試行を行っています。umask を 001 に設定しましたが、ファイルを作成して長いリストを表示すると、新しいファイルに許可された実行許可が表示されません。なぜだろう?

スクリーンショット

4

3 に答える 3

1

umask は少し特殊です。少し設定すると、実際には許可を無効にしていることになります。その実装は次のとおりです。

(not umask) & filemode

ファイルモードは、ユーザーが作成したいものです。

したがって、実行ビットを無効にしました。

001 -> complement -> 110 -> rw- 

試したいマスクは 110 (ビット) または 006 (8 進数) です :)

于 2013-10-29T22:08:27.037 に答える
1

umask は、呼び出し時に指定されたモード ビットマスクから削除するビットをシステムに通知しcreat()ます。rumask は通常、各桁が 3 ビット ( =4、w=2、x=1)で構成される 8 進数で表されます。8 進数の 3 桁は、「ユーザー」、「グループ」、「その他」を表します。

creatモード666forrw-または777forで呼び出すかどうかはプログラム次第ですrwx。この場合、明らかに666が使用されます。(ファイルは、実行可能でない限り、通常は で作成され666ます。この場合、777が使用されます。これは、たとえばコンパイラの場合にカウントされます。)

非常に一般的なのumask022(8 進数) です。( ) を( )に、666( ) を( ) に変換します。これらはそれぞれ、最終的にファイルに適用されるファイル モードです。rw-rw-rw-644rw-r--r--777rwxrwxrwx755rwxr-xr-x

あなたの umaskは、「その他」グループ001のビットをオフにするだけです。( ) になり、( ) のxままです。777776rwxrwxrw-666666rw-rw-rw-

于 2013-10-29T22:13:37.330 に答える
0

システム管理者が umask 例外を設定して、デフォルトで実行権限が発生しないようにしている可能性があります。詳細については、この記事を参照してください: http://boulderapps.co/on-create-a-new-file-why-are-the-execute-permissions-not-set-to-my-umask

于 2014-06-09T00:25:33.343 に答える