新しく作成されたファイルにファイル権限がどのように適用されますか?

新しく作成されたファイルにファイル権限がどのように適用されますか?

次の権限が設定されたディレクトリがあります。

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.txtbar.txt

-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt

権限とマスク

あなたが見る権限は別の話です。これはあなたの設定によって制御されますumaskumask次のコマンドを使用して設定を表示できます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配置するために設定したすべての権限を使用します。

おすすめ記事