sudo를 사용하여 서버의 호스트 이름을 변경할 수 없는 이유는 무엇입니까? [복사]

sudo를 사용하여 서버의 호스트 이름을 변경할 수 없는 이유는 무엇입니까? [복사]

sudoers 그룹에 속한 사용자의 경우 일반적으로 다음을 수행하여 모든 명령을 실행할 수 있습니다.sudo <command>

그러나 다음 명령은 실패하고 "권한이 거부되었습니다"라는 메시지가 표시됩니다.

sudo echo "myhostname" > /etc/hostname

심지어 내 비밀번호를 묻지도 않습니다. 호스트 이름을 변경하는 방법은 무엇입니까?

답변1

귀하의 경우 올바른 명령은 echo "newhostname" | sudo tee /etc/hostnamenssnd 설명이 sudo단일 명령에 대해서만 작동하고 리디렉션의 우선 순위가 nssnd 보다 낮기 때문입니다 sudo. 또 다른 옵션은 bash다음 명령을 사용하는 것입니다 .

sudo bash -c "echo newhostname > /etc/hostname"

답변2

sudo첫 번째 명령에만 작동하므로 ">" 작업은 사용자가 수행합니다.

명령을 실행하려면 다음을 수행하십시오.

  1. 다음을 실행하여 루트 쉘을 얻으십시오.sudo -i
  2. 명령을 실행하십시오.echo "myhostname" > /etc/hostname
  3. 루트 쉘 종료exit

관련 정보