如何使用非登录shell用户登录?

如何使用非登录shell用户登录?

如何以非登录 shell 用户(例如apacheuser)身份登录?

如果我运行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。其他安全策略可能不支持这一点。

相关内容