我正在使用 root 进入 Ubuntu 服务器,并且需要以更受限制的用户身份运行后台进程,因此我写
su -l limitedUser -c 'programName'
但什么都没发生。即使 programName 是 echo 之类的东西,也没有执行任何操作。可能发生了什么?有没有我可以查看的日志?
PS:我知道没有执行任何操作,因为 TOP 或 PS AFX 没有显示任何新运行的操作。
答案1
必须启用用户(设置密码、密码未过期等)。
您的 su 可能不会像我的一样发出警告。您可以咨询/var/log/auth.log看看发生了什么
# su apache -c bash
This account is currently not available.
# tail -n 10 /var/log/auth.log
Oct 17 05:53:16 geee su[30744]: Successful su for apache by root
Oct 17 05:53:16 geee su[30744]: + /dev/pts/11 root:apache
Oct 17 05:53:17 geee su[30744]: pam_unix(su:session): session opened for user apache by (uid=0)
Oct 17 05:53:17 geee nologin: Attempted login by jaroslav on /dev/pts/11
Oct 17 05:53:17 geee su[30744]: pam_unix(su:session): session closed for user apache
Oct 17 05:53:20 geee su[30748]: Successful su for apache by root
Oct 17 05:53:20 geee su[30748]: + /dev/pts/11 root:apache
Oct 17 05:53:20 geee su[30748]: pam_unix(su:session): session opened for user apache by (uid=0)
Oct 17 05:53:20 geee nologin: Attempted login by jaroslav on /dev/pts/11
Oct 17 05:53:20 geee su[30748]: pam_unix(su:session): session closed for user apache