![sudo를 사용하여 서버의 호스트 이름을 변경할 수 없는 이유는 무엇입니까? [복사]](https://linux55.com/image/34579/sudo%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%84%9C%EB%B2%84%EC%9D%98%20%ED%98%B8%EC%8A%A4%ED%8A%B8%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%A0%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
sudoers 그룹에 속한 사용자의 경우 일반적으로 다음을 수행하여 모든 명령을 실행할 수 있습니다.sudo <command>
그러나 다음 명령은 실패하고 "권한이 거부되었습니다"라는 메시지가 표시됩니다.
sudo echo "myhostname" > /etc/hostname
심지어 내 비밀번호를 묻지도 않습니다. 호스트 이름을 변경하는 방법은 무엇입니까?
답변1
귀하의 경우 올바른 명령은 echo "newhostname" | sudo tee /etc/hostname
nssnd 설명이 sudo
단일 명령에 대해서만 작동하고 리디렉션의 우선 순위가 nssnd 보다 낮기 때문입니다 sudo
. 또 다른 옵션은 bash
다음 명령을 사용하는 것입니다 .
sudo bash -c "echo newhostname > /etc/hostname"
답변2
sudo
첫 번째 명령에만 작동하므로 ">" 작업은 사용자가 수행합니다.
명령을 실행하려면 다음을 수행하십시오.
- 다음을 실행하여 루트 쉘을 얻으십시오.
sudo -i
- 명령을 실행하십시오.
echo "myhostname" > /etc/hostname
- 루트 쉘 종료
exit