別のグループでファイルを作成するときに別の権限を取得するのはなぜですか?構成する方法?

別のグループでファイルを作成するときに別の権限を取得するのはなぜですか?構成する方法?

別のグループでファイルを作成するときに異なる権限が見つかりました。

私はrootとしてこれをします:

groupadd stack
useradd stack1
gpasswd stack  (choose a password)
su stack1
touch testfile
I did ls -l and I see permissions rw-rw-r--
newgrp stack (enter the password I previously created for that group)
touch test2
I did ls -l and I see permissions of file test2 rw-r--r--

そのオプションはどこで変更できますか? umaskと関係があるようですが、わかりません。

ありがとうございます。

答え1

ご存知のように、違いはumask値が異なるためです。ファイルを生成するときにファイルが持つ必要がある最大権限を指定します。touchなぜならそうなるからですrw-rw-rw-。次に、umaskを使用して権限を減らします。

su - stack1一般的に言えば、ユーザーとしてコンバージョンを使用する必要があります。

newgrpは書くのが難しいプログラムです。グループを操作する必要があるため、一般的に適しています。理想的には、umaskのようなシェルに組み込まれ、現在のプロセスのグループを変更しますが、suidとは互換性がありません。したがって、通常はパスワードを要求する suid バイナリであり、認証が成功するとシェルに置き換えられます。シェルは起動コードを実行できます。

~/.bashrc ファイルに umask コマンドが直接または間接的に含まれている場合、値の違いが記述されます。

関連情報