我只是对使用 sudo 命令创建文件感到困惑。据我所知,sudo 命令通常用于 root 权限(默认情况下),当我使用以下命令创建文件时:
sudo cat > root.txt
我看到用户,它仍然是普通用户名,而不是 root。怎么会这样?如何在不将用户更改为 root 的情况下创建 root 拥有的文件?
答案1
流重定向 ( > file
) 发生在父进程中(以 身份运行$USER
)前命令(sudo
)甚至开始。
您可以使用不同的命令:
sudo tee root.txt
或者,随后更改文件的所有权:
sudo chown root:root root.txt
答案2
sudo
在您的示例中,重定向位于“外部” 。尝试
sudo bash -c "cat > root.txt"