调试 sudo -i -u www-data -g www-data env

调试 sudo -i -u www-data -g www-data env

当我跑步时sudo -i -u www-data -g www-data env

我明白了sudo: unable to change directory to /var/www: No such file or directory

这肯定是来自某个脚本,但我不知道在哪里。我该如何找到并修复它?是否有一个标准的检查区域列表?

先感谢您!

答案1

“必须来自脚本”是什么意思?信息很明确:/etc/passwd为用户定义的主目录(最有可能)www-data不存在(请参阅getent passwd www-data)。

您想用这个命令做什么?

答案2

来自 sudo 手册页

-i, --login 将目标用户的密码数据库条目指定的 shell 作为登录 shell 运行。这意味着 shell 将读取登录特定的资源文件(例如 .profile 或 .login)。如果指定了命令,则该命令将通过 shell 的 -c 选项传递给 shell 执行。如果未指定命令,则执行交互式 shell。sudo 尝试在运行 shell 之前更改为该用户的主目录。该命令在与用户登录时收到的环境类似的环境中运行。sudoers(5) 手册中的命令环境部分记录了 -i 选项如何影响使用 sudoers 策略时运行命令的环境。

因此,这很可能与 www-data 帐户有关。

我将首先在 passwd 文件中查找 www-data 用户条目,然后从那里开始进行操作。

相关内容