Linux
如何使用 visudo 賦予像 root 這樣的使用者能力?
我將此行添加到
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 一樣的能力?
問題的根源在於輸出重定向是由 shell(使用者 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"
編輯您的
/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'