사용자에게 apt/apt-get 실행 권한을 부여하여 루트 없이 apt housekeeping 명령( , )을 실행할 수 있습니까 apt-get autoremove
?apt-get autoclean
이 명령을 실행하려면 root/sudo를 사용해야 하는 것 같습니다. 그렇지 않으면 실패합니다.
$ sudo cat /etc/sudoers
...
%sudo ALL=(ALL:ALL) ALL
%wheel ALL=(ALL) NOPASSWD: ALL
user ALL=(ALL:ALL) ALL
user ALL= (ALL) NOPASSWD: /usr/bin/apt-get
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
user ALL=(ALL) NOPASSWD: ALL
$ /usr/bin/apt-get autoremove
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
답변1
예, 및 를 apt-get
포함한 대부분의 명령은 루트로 실행해야 합니다 . 구성에 따라 이는 다음을 의미합니다.autoremove
autoclean
sudo apt-get autoremove
사용자가 apt-get
루트로 명령을 실행하도록 허용하는 것은 실제로 전체 루트 액세스 권한을 부여하는 것과 동일합니다. (사용자는 패키지를 준비하고 설치할 수 있습니다. 패키지에는 root-suid 쉘을 포함하여 사용자가 원하는 모든 것이 포함될 수 있습니다. 또 다른 옵션은 dpkg
프로필 충돌이 발생하도록 준비하는 것입니다. 이 경우 root-suid 쉘은 다음과 같습니다. 쉘을 열어야 합니다.) 이러한 위험을 피하려면 명령 전체를 지정해야 합니다 sudoers
.
user ALL= (ALL) NOPASSWD: /usr/bin/apt-get autoremove
user ALL= (ALL) NOPASSWD: /usr/bin/apt-get autoclean
적어도 autoclean
.