我使用的是 Ubuntu 10.04 LTS 服务器,采用默认安全模式(root 锁定,用于sudo
提升权限)。sudo -i
当我需要以提升的权限运行一系列命令,或者需要以 root 权限在目录中翻找时,我偶尔会喜欢使用它。
有时,在设置以自己的非特权系统帐户运行的软件时(adduser --system --group --no-create-home --disabled-login some-daemon-user
)我发现我需要运行一系列命令作为该用户,而不是我自己或 root。我尝试使用sudo -i -u some-daemon-user
,但它只返回1
状态而没有任何错误消息。
我已经检查了syslog
、、和日志文件,其中均不包含任何提及或涉及相关帐户的messages
消息。auth
debug
/var/log
sudo
那么,是否可以成为另一个非 root 用户,无需设置密码并登录(以他们的身份)?是我的系统在某种程度上“损坏”了,还是我做错了?
答案1
嗯...问题是这些用户的标准 shell 通常设置为/bin/false
,出于安全原因,您不应更改此设置。但您仍然可以运行例如:sudo -u www-data /bin/sh
答案2
sudo -i
运行目标用户的密码数据库条目指定的 shell,该 shell/bin/false
适用于您的系统用户。
使用
sudo -u some-daemon-user bash
或者
sudo -u some-daemon-user -H bash
如果您想为目标用户设置 $HOME 环境变量。