次の権限が設定されたディレクトリがあります。
drwxr-s---. user group folder
デスクトップからこのフォルダにアクセスし、右クリックして新しいファイル呼び出しを作成しますfoo.txt
。その後、端末を使用してコマンドを使用して別のファイルを作成しました$ touch bar.txt
。
このファイルの権限を確認すると、次の権限があります。
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
私はそれを期待しています-rw-r-----. user group
。グループに対する追加の書き込み権限と他のユーザーに対する読み取り権限はどのように提供されますか?
答え1
起動設定
ここには2つの力が作用しています。 1つ目は、フォルダで有効になっているsetgidビットですfolder
。
drwxr-s---. user group folder
これはs
行の先頭の文字パックにあります。彼らは次のようにグループ化されています:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
つまりr-s
、このフォルダ内に作成されたすべてのファイルまたはディレクトリには、グループが自動的にグループに設定されますgroup
。
これがファイルが次のように生成される原因ですfoo.txt
。bar.txt
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
権限とマスク
あなたが見る権限は別の話です。これはあなたの設定によって制御されますumask
。umask
次のコマンドを使用して設定を表示できますumask
。
$ umask
0002
メモ:これらのビットは「モード」ビットとも呼ばれます。
これはマスクなので、有効な権限に関連するすべてのビットを無効にします。この例で私がオフにしたい唯一のことは、他の人の書き込みアクセスです。
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
このコマンドでは、「ビット」は10進形式で表示されます。したがって、2は書き込みビットである2進数010に等しくなります。 4(100)は読み取りを無効にしたいことを示します。 7(111)は、読み取り/書き込み/実行がすべて無効になっていることを意味します。ここから構築を始めましょう。
$ umask 007
他のユーザーの読み取り/書き込み/実行ビットを無効にします。
ファイルはどうですか?
まあ、umask
新しいファイルを作成するときに設定される権限を制御します。したがって、次のコレクションがある場合umask
:
$ umask 007
新しいファイルをタッチし始めると、次のように作成されたものが表示されます。
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
違うものに変えたらこう言ってください。
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
ただし、すでに作成したファイルには影響しません。ねえ:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
それでは、ファイルエクスプローラでは何が起こっているのでしょうか?
これがumask
私が「ソフト」設定と呼ぶものです。絶対的なものではなく、Unixではさまざまな方法でかなり簡単にバイパスできます。多くのツールには、タスクの一部として権限を割り当てることができるスイッチがあります。
例えばmkdir
:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
-m
スイッチを使用すると、umask
コマンドtouch
にこの機能がないため、創造性を発揮する必要があります。次のタイトルのU&L Q&Aをご覧ください。コマンドラインで設定された権限でファイルを生成できますか?この方法にのみ適用されます。
他の方法?umask
ファイルブラウザがこれを実行するか、完全に無視してファイルをumask
配置するために設定したすべての権限を使用します。