Debian はなぜ "daemon" ユーザーとして "atd" を実行するのですか?

Debian はなぜ
$ ps -aux|grep atd
daemon     800  0.0  0.1  27964  2228 ?        Ss   19:11   0:00 /usr/sbin/atd -f
alan-sy+  7042  0.0  0.0  12780   948 pts/0    S+   20:22   0:00 grep atd

$ /sbin/getpcaps 800
Capabilities for `800': = cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,cap_wake_alarm,cap_block_suspend,cap_audit_read+p

$ ls -l /usr/sbin/atd
-rwxr-xr-x 1 root root 22536 Dec  8  2016 /usr/sbin/atd
# /lib/systemd/system/atd.service
[Unit]
Description=Deferred execution scheduler
Documentation=man:atd(8)

[Service]
ExecStart=/usr/sbin/atd -f
IgnoreSIGPIPE=false

[Install]
WantedBy=multi-user.target

atパッケージのバージョンは3.1.20-3

atdなぜユーザーに削除されますかdaemon? Fedora Linux 30ではこれは起こりません。

atdrootすべてのユーザーからの要求を受け入れ、そのユーザーとしてを含むタスクを実行できるため、すべての機能を維持する必要があります。

ユーザーはdaemon使用しないでください。必要に応じて、各デーモンは独自のユーザーアカウントを使用してセキュリティリスクを制限する必要があります。 (それおそらくカーネルは、root以外のユーザーがroot機能を維持するプロセスを操作することを許可しないため、この場合は重要ではありません。

ベストアンサー1

これは、LSB の作成者と関連する Debian 管理者との間の歴史と意見の違いによるものです。base-passwdDebian ドキュメントdaemonユーザーは言う:

ディスク上の特定のファイルに書き込む必要がある一部の権限のないデーモンプロセスは、daemon.daemon(portmap、、、、およびその他)として実行されますatd。ファイルを所有する必要がないデーモンは、時にはNobody.nogroupとして実行されます。一般に、専用のユーザーを使用する方が良いですが、より複雑なセキュリティを認識するデーモンは確かにそうします。デーモンユーザーは、ローカルにインストールされたデーモンを使用すると便利かもしれません。lambdamoomon

それも言う

LSB 1.3はデーモンをレガシーとしてリストし、次のように言います。 「デーモン」UID / GIDは、システムへのアクセスを制限するためにデーモンが実行される権限のないUID / GIDとして使用されます。通常、デーモンには別のUID / GIDが必要です。 」

ただし、通常 Debian ドキュメントでは、daemonユーザーがそれを使用できるようにします。

atddaemon:daemon代わりにルートを使用してください2005年、LSB 1.3は現在リリースされてから数年になりました。ルートからルートに切り替えるのはdaemon十分な権限を減らすと見なされ、専用ユーザーを追加するよりも簡単です。あなたが言ったように、この場合は重要ではないかもしれません。

上記のバグは、daemonroot以外のユーザーとの間で削除するための次の理由を提供します(バグは専用グループの使用を提案します...)。

Debianのcrontabは最近setuid rootの代わりにsetgid crontabを実行するように修正されました。 atの要件は基本的に似ているので、おそらく同じように動作し、基本的にsetuid rootプログラムが1つ少なくなることをお勧めします。

おすすめ記事