openSUSEでuseraddのデフォルトのumask値が022に設定されるのはなぜですか?

openSUSEでuseraddのデフォルトのumask値が022に設定されるのはなぜですか?

最近、openSUSEを使用して非常に単純なテスト環境を構築しました。

共有ディレクトリを構成しようとするといいえACLを使用していますが、何らかの理由でそのディレクトリでSetGIDを使用すると、ユーザーごとのデフォルトのumaskが022(たとえば、ディレクトリでは755、ファイルでは644)に設定されていることがわかりました。

これはで行われました/etc/login.defs

私は通常のユーザーにはumask 002(775個のディレクトリ/ 664個のファイル)を使用し、rootユーザーには022を使用することに慣れています。

将来のすべてのuseraddのデフォルト値に設定するには、上記のファイルでuseraddのumask値を変更する必要がありますか?システム内のすべての既存ユーザーのumaskをどのように変更しますか(もちろん、rootアカウントを除く)。

ベストアンサー1

umask 022(または0022)は、UNIXシステムで一般的に使用されるumaskです。伝統的なスタイルのユーザーアカウントの管理。従来のアカウント管理スタイルでは、ユーザーが作成されると、ユーザーにチームや部門などの基本的なグループが提供されるか、「ユーザー」のように単純化できます。 setgidディレクトリ(「チームディレクトリ」と呼ぶことができます)は、ユーザーが明示的に書き込み可能に設定しない限り、他のチームメンバーがそのファイルに書き込むことができないため、期待どおりに機能しません。これはあまり実用的ではありません。特に、gitリポジトリの場合のように、ファイルがユーザーに透過的でない場合にはさらにそうです。 ACLはこれに完全なソリューションを提供するため、これは問題とは見なされません。

umask 002(または0002)は、UNIXシステムで一般的に使用されるumaskです。UPG - ユーザー個人グループ。 UPG システムにユーザーを追加すると、システムはユーザー名とユーザー ID と同じ名前とグループ ID を持つグループを作成します。 UPGは、ユーザーアカウントの管理に対するDebianに触発されたアプローチです。私が経験したように、UPGは、ユーザーがumaskをオーバーライドしない限り、setgidディレクトリに比べていくつかの利点があります。 ACLは上書きされません。

最善の解決策は、ユーザーとグループのアカウントを再構成し、UPGを有効にすることです。それでは「安全」です。

警告する!ショートカットを選択してumaskを(or)ではなく(or)/etc/login.defsに変更するだけで、デフォルトでは、すべてのユーザーが作成したすべてのファイルが同じグループの他のすべてのユーザーに書き込まれることに注意してください。これは00200020220022セキュリティリスクだから、これはほとんど確かにあなたが望むものではありません。

UPGシステムを導入した理由の1つは、管理者がsetgidビット(002または0002)の代わりにumask 022(または0022)を設定することで、説明されたセキュリティリスクなしにプロジェクトのコラボレーションを容易に促進できることです。

私が知っている限り、OpenSUSEはインストール中またはYaST中にUPGを有効にする方法を提供しません。 UPGを使用する唯一の方法は、コマンドラインを使用してユーザーアカウントを作成し、必要な変更を加えること/etc/login.defsですUSERGROUPS_ENAB yes。ここに問題があります。 UPGは、ユーザーIDとグループIDが同じ場合にのみ正常に機能します。実行中のシステムを変更する場合は、まず既存のグループのIDを変更する必要があります。これには、そのグループを含むすべてのファイルにグループを再割り当てすることが含まれます。

以下は、私がsetgidとumaskとUPGのトピックに最初に触れたときに役に立ったトピックに関する追加資料です。

おすすめ記事