myuser의 별칭을 만들었습니다.
alias up='sudo apt update && sudo apt -y upgrade && sudo apt -y autoremove'
사용자의 폴더에 저장됩니다..bashrc문서. sudoers 파일을 수정하여 끝에 다음 줄을 삽입해 보았습니다.
myuser ALL=(ALL) NOPASSWD: up
visudo
하지만 구문 오류가 발생합니다. 루트 비밀번호 없이 별칭을 실행하려면 어떻게 해야 합니까?
답변1
비밀번호 없이 모든 sudo 명령을 실행하려는 경우 이를 사용할 수 있습니다.
myuser ALL=(ALL) NOPASSWD:ALL
몇 가지 명령으로만 제한하려는 경우 이 기능을 사용할 수 있습니다.
myuser ALL=(ALL) NOPASSWD: /usr/bin/apt,/usr/bin/command
답변2
:up은 파일 경로가 아니라 별칭이기 때문에 작동하지 않는 것 같습니다. 별칭은 실행 전에 셸에 의해 캡처되고 확장됩니다.
원하는 동작을 얻으려면 다음을 사용해야 합니다.
myuser ALL=(ALL) NOPASSWD: /usr/bin/apt
(APT의 올바른 경로인지 다시 한번 확인하세요. 현재 적절한 기반 배포판이 없습니다.)
그러나 당신이 하려는 일은 적어도 "sudo apt -y autoremove"를 생략하지 않으면 발생하기를 기다리는 재앙입니다. 자동 제거는 주의해서 사용해야 하며 제거 예정 항목이 무엇인지 확인해야 합니다. 때로는 필요한 패키지를 제거하고 시스템을 엉망으로 만들 수 있기 때문입니다(어려운 방법으로 배웠습니다).