GNU/Linux >> Linux の 問題 >  >> Linux

システムユーザーの umask を設定するには?

ユーザーの umask を設定する通常の方法は 3 つあります。

<オール>
  • UMASK を設定 /etc/login.defs
  • pam_umask.so を追加 /etc/pam.d の PAM 構成に
  • シェルの起動ファイルに設定します。 /etc/profile
  • この点では、システム ユーザーと通常のユーザーに違いはありません。

    しかし、カスタム umask でデーモンを起動しようとしていると思いますか?

    問題は、上記のすべてのオプションがユーザーのログイン時に発生することです。デーモンを実行している場合、デーモンはログインしません。デーモンは init によって開始され、root として実行されるか、setuid を呼び出します。 指定したシステム ユーザーとして実行します。

    主なオプションは次のとおりです:

    <オール>
  • put umask init スクリプトで (grep umask /etc/init.d/* を実行します) 例)
  • カスタム umask (systemd.exec upstart umask) でプログラムを開始するように init を構成します
  • start-stop-daemon を使用する場合 、umask オプションを渡します
  • プログラム自体を変更して、umask 関数またはシステム コールを呼び出す

  • システム ユーザーは、パスワードの有効期限、ホーム ディレクトリ (システム ユーザーにはホーム ディレクトリがありません)、および UID (通常、システム ユーザーは任意のしきい値を下回っています) の 3 つの点で「通常の」ユーザーとは異なります。

    一般的なケースでは、ほとんど完全に運が悪いです。 PAM を使用して umask を設定できますが、PAM はこれら 3 つの違い以外に基づいて動作を選択します。

    つまり、PAM で「システム」ユーザーと「非システム」ユーザーを区別することはできません。これには 2 つのオプションがあります:

    • PAM を使用して全員の umask を設定するか (例:/etc/login.defs でチェックイン) )、次に /etc/bash.bashrc で非システム ユーザーの umask を明示的に設定します。 (または類似);

    • または、これを行うために独自の PAM モジュールを作成します。 umask の設定は一般的な要求であるため、これは多くの人に歓迎されると思います。

    この答えは、塩を少々加えて受け取ってください。この種の要求は非常に一般的であり、より良い/適切な方法が現在存在していても驚かない.


    Linux
    1. 追加の電子メール認証用にSPFを設定する方法

    2. SshfsにマウントされたファイルシステムにUmaskを設定しますか?

    3. サーバー上のすべてのユーザーのパス変数を設定するにはどうすればよいですか?

    1. Linux で特定のプログラムのプロセス ID を設定する方法

    2. 新しい irssi 接続にデフォルトのニックネームを設定するにはどうすればよいですか?

    3. sudo コマンドのパスを設定する方法

    1. Linuxですべてのユーザーの共有ディレクトリを作成する方法

    2. 新規ユーザーのデスクトップのデフォルトを設定するには??

    3. cPanelのデスクトップショートカットを設定する方法