如何以非登录 shell 用户(例如apache
user)身份登录?
如果我运行sudo su - apache
我会得到:
该帐户当前不可用。
在 /etc/passwd 中我有:
阿帕奇:x:48:48:阿帕奇:/var/www:/sbin/nologin
答案1
使用-u <username>
和-s
选项来启动交互式 shell。例如,sudo -u apache -s
然后用 进行测试whoami
。
从man sudo
:
-s [命令]
-s (shell) 选项运行 SHELL 环境变量指定的 shell(如果已设置)或密码数据库中指定的 shell。如果指定了命令,则会通过 shell 的 -c 选项将其传递到 shell 执行。 如果未指定命令,则执行交互式 shell。
-u 用户
-u(用户)选项使 sudo 以 root 以外的用户身份运行指定的命令。 要指定 uid 而不是用户名,#uid。当作为 uid 运行命令时,许多 shell 需要
#' be escaped with a backslash (
')。安全策略可能会将 uid 限制为密码数据库中列出的 uid。只要未设置 targetpw 选项,sudoers 策略就允许不在密码数据库中的 uid。其他安全策略可能不支持这一点。