一般来说,用户是否必须登录才能运行进程并成为其所有者(ruid 或 euid)?这是否适用于任何用户或任何非 root 用户?例如:
在Linux的启动顺序中,内核将init系统作为第一个进程启动,然后init进程运行,
login
以便每个用户都可以登录。 init 进程属于root
,用户root
在启动该进程之前是否必须登录init
?看为什么每个登录的用户都拥有一个“systemd”进程?当使用在
ssh
不启动交互式 shell 的情况下运行命令时,我们是否必须先登录才能运行该命令?
谢谢。
答案1
不,您不需要登录即可启动以给定用户身份运行的进程。登录是一个用户空间构造;内核不关心这个。这方面的例子有很多;例如,cron 作业可以以任何用户身份运行,而无需该用户登录。
为了解决您的具体问题:
- 不,幸运的是,root 不需要登录来启动该
init
过程(想象一下要处理数千台服务器和数百万台虚拟机的队列); - 使用 SSH 连接算作登录。