作为另一个非 root 用户,我该如何获取交互式 shell?

作为另一个非 root 用户,我该如何获取交互式 shell?

我使用的是 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消息。authdebug/var/logsudo

那么,是否可以成为另一个非 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 环境变量。

相关内容