$ 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 上不这样做。
atd
仍然必须保留所有功能,因为它可以接受来自任何用户的请求并以该用户身份运行作业,包括root
.
daemon
用户不应该被使用。如有必要,个别守护程序应该使用自己的用户帐户,以限制安全妥协。(在这种情况下可能无关紧要,因为内核不允许非 root 用户操作保留任何 root 权限的进程)。
这可能与历史有关,以及 LSB 作者和所涉及的 Debian 维护者之间的意见分歧。
base-passwd
Debian中的文档是关于daemon
用户的:它还说
但是总体而言,Debian 文档允许
daemon
用户使用。atd
在 2005 年改为使用daemon:daemon
而不是 root ,到那时 LSB 1.3 已经发布了几年。我想从 root 切换到被认为是特权的充分减少,比添加一个专用用户(当时很可能涉及管理)更简单,正如你所说,在这种情况下它可能无关紧要......daemon
上面链接的错误给出了删除到
daemon
,或者更确切地说是非root用户的以下原因(错误建议一个专用组......):