为什么以 user1 和 su - user1 -c "command" 运行时会有不同的结果?

为什么以 user1 和 su - user1 -c "command" 运行时会有不同的结果?

当运行为用户1在同一目录中(/home/user1/WWW

[user1@server1 WWW (master)]# touch c

在目录中创建文件 c。

[root@server1 WWW (master) ACCEPTATIE SERVER]# su - user1 -c "touch c"

给出错误

触摸:无法触摸“c”:权限被拒绝

为什么会这样呢?

答案1

当您执行此操作时,su - username您将作为该用户执行完整登录,这意味着您将转移到该用户的主目录。因此,当以这种方式执行时touch c,您会尝试在用户的主目录中运行该命令。

-相反,从命令行删除:

su user1 -c "touch c"

这将执行touch c如下user1当前的目录。


推测:

原始命令失败,因为 的主目录中已经存在另一个用户拥有的su -名为 的文件。cuser1

相关内容