これは、sudo を使用してファイル内のデータを別のファイルに追加しようとすると、「アクセスが拒否されました」という結果になるシェル コマンドです。
sudo cat add_file >> /etc/file
のファイル/etc/file
は所有者root
(つまり、私) であり、そのパーミッションはrw-r--r--
です。私root
はそれを機能させるために少しの間になるべきですか、それとも回避策はありsudo
ますか?
これは、sudo を使用してファイル内のデータを別のファイルに追加しようとすると、「アクセスが拒否されました」という結果になるシェル コマンドです。
sudo cat add_file >> /etc/file
のファイル/etc/file
は所有者root
(つまり、私) であり、そのパーミッションはrw-r--r--
です。私root
はそれを機能させるために少しの間になるべきですか、それとも回避策はありsudo
ますか?
次のように実行bash
しsudo
ます。
$ sudo bash -c "cat add_file >> /etc/file"
$ whoami;sudo bash -c "whoami";whoami
iiSeymour
root
iiSeymour
代わりにこれを試してください:
sudo tee -a /etc/file < add_file
bash を実行するよりも軽量です。sh -c command
面白い可能性は、ed
(標準エディタ)を使用することです:
sudo ed -s /etc/file <<< $'r add_file\nwq'
この素晴らしい答えに賛成できないことはわかっていますが、とにかくここに含めたいと思いました(面白いので)。終わり!
sudo cat add_file
コマンドの結果をファイル /etc/fileに書き込もうとしています。どうやらあなたにはその権利がありません。
man sudo
その例を示します:
To make a usage listing of the directories in the /home partition. Note that this runs the commands in a sub-shell to make the cd and file redirection work. $ sudo sh -c "cd /home ; du -s * | sort -rn > USAGE"
だからあなたは試してみる必要があります:
sudo sh -c "cat add_file >> /etc/file"
試す
sudo bash -c 'cat add_file >> /etc/file'
また
cat add_file | sudo tee -a /etc/file > /dev/null