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에게 루트와 동일한 기능을 제공하려면 어떻게 해야 합니까?
답변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'