用户是否必须登录才能运行进程并成为其所有者?

用户是否必须登录才能运行进程并成为其所有者?

一般来说,用户是否必须登录才能运行进程并成为其所有者(ruid 或 euid)?这是否适用于任何用户或任何非 root 用户?例如:

  • 在Linux的启动顺序中,内核将init系统作为第一个进程启动,然后init进程运行,login以便每个用户都可以登录。 init 进程属于root,用户root在启动该进程之前是否必须登录init?看为什么每个登录的用户都拥有一个“systemd”进程?

  • 当使用在ssh不启动交互式 shell 的情况下运行命令时,我们是否必须先登录才能运行该命令?

如果我不需要以进程所有者身份登录来运行进程,我该怎么做?

谢谢。

答案1

不,您不需要登录即可启动以给定用户身份运行的进程。登录是一个用户空间构造;内核不关心这个。这方面的例子有很多;例如,cron 作业可以以任何用户身份运行,而无需该用户登录。

为了解决您的具体问题:

  • 不,幸运的是,root 不需要登录来启动该init过程(想象一下要处理数千台服务器和数百万台虚拟机的队列);
  • 使用 SSH 连接算作登录。

相关内容