web-dev-qa-db-ja.com

システム全体のumaskを設定する方法は?

私はLinux(DebianおよびUbuntu)を実行しているラボで働いています。ユーザー名とグループ名はNISとypによって処理されます。誰もが実験を実行するためにアクセスできる一般的なユーザーがいます。そして、私たちはそれぞれ独自のユーザーを持っています。さらに、私たち全員がメンバーである共通のグループがあります。

共有/home/ドライブ(NFS)上のすべてのファイルとディレクトリがユーザー/グループによって読み取り/書き込み(/実行可能)になるようにするにはどうすればよいですか?基本的に私が欲しいのは

chmod -R 664 /home
chgrp -R commongroup /home

または同等にumask 0002

ただし、上記のコマンドを実行すると、フォルダー内の現在のファイルのみが修正され、umaskは単一のユーザーに対してのみ機能し、ユーザーがログインするたびに実行する必要があります。 .bashrcファイル(これはgnomeを介した変更モードでも機能しますか?)共通グループに共通ファイルへの書き込みアクセス権があることを確認するために使用できるシステム全体のコマンドまたは設定はありますか?

62
HansHarhoff

DebianとUbuntuの両方に pam_umask が付属しています。これにより、ユーザーのログイン方法に関係なく、/etc/login.defsでumaskを設定し、システム全体に適用することができます。

有効にするには、/etc/pam.d/common-session readingに行を追加する必要がある場合があります

session optional pam_umask.so

または、既に有効になっている場合があります。次に/etc/login.defsを編集し、UMASK行を

UMASK           002

(デフォルトは022です)。

ユーザーは自分の~/.profileまたは~/.bashrcなどでumaskをオーバーライドできますが、(少なくとも新しいDebianおよびUbuntuインストールでは)/etc/profileでumaskをオーバーライドしないでください。または/etc/bash.bashrc。 (ある場合は、単に削除します。)

95
ephemient

まず、pam-modulesパッケージがインストールされていることを確認してください。これにより、pam_umaskモジュールが使用可能になります。次に、/etc/pam.d/common-sessionに次の形式の行があることを確認します

session optional pam_umask.so

pam_umaskが有効になります。

現在、pam_umask manページによると、デフォルトのumaskは、ログイン時に次の各場所を順番に確認することにより決定されます。

  1. /etc/pam.d/common-sessionに設定されたハードシステム全体のデフォルト。このように設定するには、上記のファイルの行を次のように置き換えます。

    session optional pam_umask.so umask=002
    
  2. /etc/passwdの個々のユーザーのGECOSフィールドのエントリは、その特定のユーザーのソフトシステム全体のデフォルトをオーバーライドします。次の形式のコマンドを使用して、そのエントリを作成します。

    chfn --other='umask=002' username
    
  3. UMASK=002内の/etc/default/loginという形式の行(そのファイルを作成する必要がある場合があります)は、システム全体のソフトデフォルトを設定します。

  4. /etc/login.defsからのUMASK値。この値は、他の目的にも使用されます(作成される新しいユーザーのホームディレクトリのアクセス許可を計算します。詳細については、/etc/login.defsのコメントを参照してください)。そのため、通常のログインのデフォルトのumaskを設定するためにこれに依存することを避けて、物事を分離しておくことをお勧めします。

したがって、あなたの場合、個々のユーザーの設定をオーバーライドできるようにする場合は/etc/default/loginで設定するか、上記のように/etc/pam.d/common-sessionで設定する必要がありますすべてのユーザーに同じ。

ハードデフォルト設定でも、ユーザーはシェルプロンプトまたは.profileスクリプトでumaskコマンドを使用して、デフォルトのumaskを手動でオーバーライドできます。

また、このデフォルトを設定する従来のUnixの方法は、umaskコマンドを/etc/profileに追加することであり、それでも動作することに注意してください。しかし、スクリプトやGUIを使用して確実に管理するのは難しいため、Ubuntuでこのような設定を行うことは推奨されません。

残念ながら、これは systemd --user経由で起動するように変換されたアプリケーションの動作を停止しました に注意してください。

23
Yitz

グループ権限を一致させるために、サーバーでは、セットgidビット(「スティッキービット」の1つ)を追加オプションと見なすことができます。

共有ディレクトリがgroupにリンクされている場合、(rootを使用して)起動:chmod -R 2775folder_for_the_groupは興味深いかもしれません。

フォルダーに作成された新しいファイルの場合、作成者は所有者になりますが、グループは自動的に指定されます(作成者がグループの一部である限り)。

Rightsのグリッドが-rwxrwsr-x +として表示されるようになりました

0
speedstream