visudo를 사용하여 사용자에게 루트와 같은 기능을 제공하는 방법은 무엇입니까? [복사]

visudo를 사용하여 사용자에게 루트와 같은 기능을 제공하는 방법은 무엇입니까? [복사]

visudoyael 사용자에게 전체 권한을 부여하기 위해 다음 줄을 추가했습니다 .

  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다음 형식을 사용할 수 있습니다.rootyael

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'

관련 정보