데비안은 왜 "daemon" 사용자로 "atd"를 실행합니까?

데비안은 왜 "daemon" 사용자로 "atd"를 실행합니까?
$ 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사용하면 안 됩니다. 필요한 경우 각 데몬은 자체 사용자 계정을 사용하여 보안 위험을 제한해야 합니다. (그것아마도커널은 루트가 아닌 사용자가 루트 기능을 유지하는 프로세스를 작동하는 것을 허용하지 않기 때문에 이 경우에는 중요하지 않습니다.

답변1

이는 LSB 작성자와 관련 데비안 관리자 사이의 역사와 의견 차이 때문일 수 있습니다. base-passwd데비안 문서daemon사용자는 말한다:

디스크의 특정 파일에 쓸 수 있어야 하는 일부 권한 없는 데몬 프로세스는 daemon.daemon( portmap, atd, lambdamoo, mon및 기타)으로 실행됩니다. 파일을 소유할 필요가 없는 데몬은 때로Nobody.nogroup으로 실행됩니다. 일반적으로 전용 사용자를 사용하는 것이 더 좋으며 더 복잡하거나 보안을 인식하는 데몬은 확실히 그렇게 합니다. 데몬 사용자는 로컬에 설치된 데몬을 사용하면 편리할 수도 있습니다.

그것은 또한 말한다

LSB 1.3은 데몬을 레거시로 나열하고 다음과 같이 말합니다. "'데몬' UID/GID는 시스템에 대한 액세스를 제한하기 위해 데몬이 실행되는 권한 없는 UID/GID로 사용됩니다. 일반적으로 데몬에는 이제 별도의 UID/GID가 있어야 합니다. 데몬을 서로 더 분리하기 위해."

그러나 일반적으로 데비안 문서에서는 daemon사용자가 이를 사용할 수 있도록 허용합니다.

atddaemon:daemon대신 루트를 사용하세요2005년, LSB 1.3은 현재 출시된 지 몇 년이 되었습니다. 루트에서 루트로 전환하는 것은 daemon권한을 충분히 줄이는 것으로 간주되며 전용 사용자를 추가하는 것(당시에는 관리가 필요할 가능성이 높음)보다 간단합니다. 말씀하신 것처럼 이 경우에는 중요하지 않을 수 있습니다.

위에 링크된 버그는 daemon루트가 아닌 사용자와의 사이에서 제거하는 데 다음과 같은 이유를 제공합니다(버그는 전용 그룹 사용을 제안합니다...).

데비안의 crontab은 최근 setuid root 대신 setgid crontab을 실행하도록 수정되었습니다. at의 요구 사항은 기본적으로 유사하므로 아마도 동일한 방식으로 작동할 것이며 기본에 setuid 루트 프로그램이 하나 더 적은 것이 좋습니다.

관련 정보