visudo
yaelユーザーに完全な権限を付与するために、次の行を追加しました。
yael ALL=(ALL) NOPASSWD: ALL
ただし、ファイルを更新しようとすると/etc/hosts
権限が拒否されました。
su – yael
echo "10.10.10.10 yael_host">>/etc/hosts
-bash: /etc/hosts: Permission denied
sudo echo "10.10.10.10 yael_host">>/etc/hosts
-bash: /etc/hosts: Permission denied
ls -ltr /etc/hosts
-rw-r--r--. 1 root root 185 Aug 7 09:29 /etc/hosts
ユーザーyaelにrootと同じ機能を提供するにはどうすればよいですか?
答え1
問題の根本的な原因は、出力リダイレクトが.dllではなくシェル(ユーザーyael)によって実行されることですsudo echo
。
ユーザーの代わりにユーザーに書き込みを実行させるには、/etc/hosts
次の形式を使用できます。root
yael
echo "10.10.10.10 yael_host" | sudo tee --append /etc/hosts
または
sudo sh -c "echo '10.10.10.10 yael_host'>>/etc/hosts"
答え2
/etc/sudoers
(visudo
)を次のように編集します。
# User privilege specification
root ALL=(ALL:ALL) ALL
yael ALL=(ALL:ALL) ALL
次に、次を実行します。
sudo -- sh -c 'echo "10.10.10.10 yael_host">> /etc/hosts'
または
sudo sh -c 'echo "10.10.10.10 yael_host">> /etc/hosts'