如何以另一个非 root 用户身份获得交互式 shell?

Cal*_*ion 15 sudo privileges

我正在使用 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状态而没有任何错误消息。

我已经检查了syslogmessagesauthdebug日志文件/var/log,它们都没有包含任何引用sudo或相关帐户的消息。

那么,是否有可能成为另一个非 root 用户,sudo 风格而不只是设置密码并登录(作为他们)?我的系统是否以某种方式“损坏”了还是我做错了?

Pau*_*sch 15

嗯.. 问题是这些用户的标准外壳通常设置为/bin/false出于安全原因,您不应更改此设置。但是你仍然可以运行,例如:sudo -u www-data /bin/sh


Flo*_*sch 9

sudo -i运行由目标用户的密码数据库条目指定的 shell,它是/bin/false您的系统用户。

 sudo -u some-daemon-user bash
Run Code Online (Sandbox Code Playgroud)

或者

sudo -u some-daemon-user -H bash
Run Code Online (Sandbox Code Playgroud)

如果要设置为目标用户设置的 $HOME 环境变量。