>> sudoers 파일을 에코할 수 없습니다. "권한이 거부되었습니다: /etc/sudoers" [닫힘]

>> sudoers 파일을 에코할 수 없습니다. "권한이 거부되었습니다: /etc/sudoers" [닫힘]

VPS 또는 VMS에 몇 가지 도구를 추가하는 스크립트를 작성하고 싶습니다. 다음과 같이 작성했습니다.

# Edit sudoers
echo -e "${GREEN}Configure sudoers...${NOCOLOR}"
echo
echo '# Allow user to use sudo without passwd' >> /etc/sudoers
echo '$USER ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers

이 스크립트는 Sudo로 실행되며 Sudo에서 echo $USER를 테스트합니다. 루트가 아닌 사용자 이름입니다. 즉, 초보자이므로 이것을 모르고 작성했지만 테스트할 때 오류가 발생했습니다 permission error. 무엇을 해야할지 알아요 몇 번 검색했지만 아무것도 찾을 수 없었어요

답변1

세 가지를 지적하겠습니다. 첫째, 해당 콘텐츠를 미러링하는 스크립트를 설정하더라도 파일을 visudo편집하는 데 실제로 사용해야 합니다 . 또 다른 점은 모든 사용자가 암호 없이 명령을 실행하도록 하는 것이 최적이 아니라는 것입니다. 결국에는 루트와 같게 되며 이는 의미가 없습니다./etc/sudoers$EDITOR$USER

정말로 이 작업을 수행하려면 다음 내용으로 별도의 스크립트를 만드십시오.

echo '# Allow user to use sudo without a password' >> $1
echo "$PERSON ALL=\(ALL\) NOPASSWD:ALL" >> $1

둘째, 다음과 같이 기본 스크립트를 실행하는 다른 스크립트를 만듭니다.

sudo "env PERSON=$USER /your/script/here"

전체 스크립트가 루트로 실행되고 있는지 확인하고 visudosudoers 파일을 망칠 경우를 대비해 백업을 유지할 수 있으므로 상황이 조금 정리됩니다.

답변2

사용하는 대신:

sudo echo "# This is a comment" >> someFile.txt

당신은 그것을 사용할 수 있습니다 :

echo "# This is a comment" | sudo tee -a someFile.txt

노트:-a명령 의 플래그를 잊지 마세요. tee그렇지 않으면 다음과 같이 끝날 것입니다.전체 파일 덮어쓰기새로운 주석 줄이 있습니다.

더 많은 관련 콘텐츠를 읽어보세요 tee:

관련 정보