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


14

umaskシステムユーザー(で作成useradd --system username)を設定することは可能ですか?

回答:


14

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

  1. 設定するUMASKには/etc/login.defs
  2. pam_umask.soPAM構成に追加します/etc/pam.d
  3. シェルの起動ファイルに設定します。例えば /etc/profile

この点に関して、システムユーザーと通常のユーザーの間に違いはありません。

しかし、私はあなたがカスタムumaskでデーモンを起動しようとしていると仮定していますか?

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

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

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

Arch Linux(systemdを使用)でSSHFS(sftp-server)のumaskを設定する方法を知っていますか?指摘したように、リストした最初の3つのオプションは効果がありません。
MountainX-for-Monica

2

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

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

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

  • PAMを使用してすべてのユーザーにumaskを設定し(チェックインなど/etc/login.defs)、非システムユーザー/etc/bash.bashrc(または同様のユーザー)にumaskを明示的に設定します。

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

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


1
pam_umaskと呼ばれるPAMモジュールが既にあります。問題は、ログイン時にのみ機能することです。
ミケル

ああ、私はあなたが知っていたと思うpam_umaskが、多分そうではないpam_succeed_if。ではpam_succeed_if、あなたは他のモジュールのみを与えられたユーザーまたはグループに適用することができます。しかし、私はまだPAMがここで役立つとは思いません。
ミケル

1

@Mikelが示唆するように、デーモンであるシステムアカウントを構成しようとしている場合は、デーモン自体を構成してみてください。

MacOSで_wwwアカウントのumaskを設定する方法を探してこの質問に来ました。上記の答えが示唆するようにこれは難しいですが、apacheサービスを(この場合)ユーザー==デーモンとして設定することで解決できることがわかりました。

奇妙なことに起動スクリプトが見つかりませんでした(通常は/etc/init.d/にありますが、MacではLibrary / LaunchDaemons /にあります)が、http//krypted.com/mac-security/apache2-umasksの助けを借りて/ apacheには固有の環境スクリプトがあることを発見しました。

$ sudo vim /usr/sbin/envvars
    umask 002

おそらく他のデーモンにも同様の方法があり、特定の場合に役立つかもしれません。


しかし、どのようにして「umask 002」をこのファイルに書き込むことができましたか?!?!?私もルート/ sudoのようにパーミッション拒否エラーを取得し、Appleによればでも根は/ usr / sbinディレクトリ内の書き込み/変更何にも許可されていませんsupport.apple.com/en-gb/HT204899
Schurik
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.