我正在使用Ubuntu 10.04 LTS服务器,采用默认的安全模型(root被锁定,使用sudo提升权限)。有时候,当我需要以提升的权限运行一系列命令,或者需要在只有root权限的目录中查找东西时,我会偶尔使用sudo -i。 有时候,在设置将作为自己非特权系统账户运行的软件时(adduser --system --group --no-create-home --disabled-login some-daemon-user),我发现我需要以该用户身份运行一系列命令,而不是以我的身份或root身份。我尝试过使用sudo -i -u some-daemon-user,但它只返回一个1状态,没有任何错误信息。 我已经检查了/var/log目录下的syslog、messages、auth和debug日志文件,其中没有任何与sudo或相关账户有关的消息。 那么,有没有可能像使用sudo一样成为另一个非root用户,而不仅仅是设置密码并登录(作为他们)?我的系统是否存在某种问题,还是我只是操作不正确?
sudo -i运行由目标用户密码数据库条目指定的shell,对于您的系统用户来说是/bin/false。 使用 sudo -u some-daemon-user bash 或者 sudo -u some-daemon-user -H bash 如果你想为目标用户设置$HOME环境变量。
sudo
来以用户身份运行shell,会有什么不同吗? - Calrion