如果文件是使用 sudo 命令创建的,谁是文件所有者?

Rav*_*avi 5 shell permissions sudo io-redirection

我使用我的用户名登录ravbholua

ravbholua@ravbholua-Aspire-5315:~$ echo $LOGNAME ravbholua

我创建名为的文件a1

ravbholua@ravbholua-Aspire-5315:~$ echo>a1
ravbholua@ravbholua-Aspire-5315:~$ ll a1
-rw-rw-r-- 1 ravbholua ravbholua 1 Oct  8 09:57 a1
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,上述文件将我 ( ravbholua) 作为所有者。

接下来我使用 sudoecho命令创建 a2 :

ravbholua@ravbholua-Aspire-5315:~$ sudo echo>a2
ravbholua@ravbholua-Aspire-5315:~$ ll a2
-rw-rw-r-- 1 ravbholua ravbholua 1 Oct  8 09:57 a2
Run Code Online (Sandbox Code Playgroud)

所有者只有我,即ravbholua

现在我再次使用 sudo 创建 a3 但使用vim命令:

ravbholua@ravbholua-Aspire-5315:~$ sudo vim a3
ravbholua@ravbholua-Aspire-5315:~$ ll a3
-rw-r--r-- 1 root root 10 Oct  8 09:57 a3
Run Code Online (Sandbox Code Playgroud)

哦!楼主怎么变了。不是我,而是root。为什么有echo和这样的变化vim!令人惊讶的是,随着命令的更改,所创建文件的所有者如何更改。

Ign*_*ams 11

第二个示例在echo下运行sudo,但重定向发生在原始 shell 下。

sudo bash -c "echo > a4"
Run Code Online (Sandbox Code Playgroud)