sudoコマンドを使用してファイルを生成した場合、ファイル所有者は誰ですか?

sudoコマンドを使用してファイルを生成した場合、ファイル所有者は誰ですか?

私のユーザー名を使用してログインします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

やはりravbholua上記のファイルの所有者は私()です。

echo次に、sudoと次のコマンドを使用して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

所有者はまさに私、つまり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

ああ!今はなぜ所有者が変わったのですか?私ではなくルートです。なぜそのようなecho変化が生じたのですかvim!驚くべきことに変更コマンド生成されたファイルの所有者を変更する方法

ベストアンサー1

2番目の例echoはで実行されsudoますが、リダイレクト元のシェルで発生します。

sudo bash -c "echo > a4"

おすすめ記事