
ricardo
사용자가 를 사용하여 시스템을 업데이트할 수 있도록 허용 aptitude
하지만 sudo를 사용하여 다른 명령을 실행하는 것을 방지하는 sudo 규칙을 설계하고 싶습니다 (그는 문제가 있는 사용자입니다). 이 규칙에 내가 놓친 함정이 있나요?
ricardo ALL=(root) /usr/bin/aptitude
Ricardo는 가 aptitude
아닌 만 사용합니다 apt-get
. 또한 현재 어디에도 Ubuntu가 설치되어 있지 않으므로 /usr/bin/aptitude
허용하기에 정확한 파일이 아닐 수도 있음을 이해합니다.
이 규칙에 함정이 있는 경우 어떻게 개선할 수 있나요?
답변1
이 명령은 사용자가 aptitude
저장소 캐시를 업데이트하고 시스템을 안전하게 업그레이드하는 것 이외의 용도로 사용하는 것을 제한합니다.
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade
유사한 명령을 사용하면 사용자가 전체 업그레이드를 수행할 수 있지만 그 이상은 수행할 수 없습니다.
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude full-upgrade
당적성의 문서(10.04), safe-upgrade
:
설치된 패키지를 최신 버전으로 업그레이드합니다. 설치된 패키지는 사용되지 않는 한 제거되지 않습니다.
대조적으로, full-upgrade
:
설치된 패키지를 최신 버전으로 업그레이드하고 필요에 따라 패키지를 제거하거나 설치합니다. 이 명령은 safe-upgrade보다 덜 보수적이므로 원치 않는 작업을 수행할 가능성이 더 높습니다. 그러나 안전 업그레이드가 업그레이드할 수 없는 패키지는 업그레이드할 수 있습니다.
사용자가 실행하도록 허용해야 하는 최선의 판단을 사용하십시오. 확실하지 않은 경우에만 허용하는 첫 번째 규칙을 사용하세요 safe-upgrade
.
사용자가 패키지를 설치하도록 허용하려면(가설적으로는 보안상의 이점이 크게 줄어들지만) 명령 *
뒤에 를 포함해야 합니다 aptitude
. 즉,
ricardo ALL=(root) /usr/bin/aptitude update, /usr/bin/aptitude safe-upgrade, /usr/bin/aptitude install *
ricardo
그렇지 않으면 사용자가 명령을 실행할 수 없다는 오류 메시지가 표시됩니다 /usr/bin/aptitude install <package_name>
.
답변2
sudo -l
사용자가 실행할 수 있는 명령을 확인하는 데 사용할 수 있습니다 . 예를 들어 ricardo가 실행할 수 있는 명령을 확인하려면 다음을 수행하세요.
sudo -ll -U ricardo
그가 적성을 실행할 수 있는지 알아보기 위해,
sudo -ll -U ricardo /usr/bin/aptitude
이는 sudo로 확장된 명령 이름을 인쇄하거나 사용자가 명령을 사용할 수 없는 경우 코드 1로 종료합니다.
이는 테스트할 최신 데비안 기반 시스템에서 작동합니다. 구문은 우분투에만 국한되지 않습니다.
원천:남자 스도
답변3
사실 아무것도 볼 수가 없어잘못된그 sudoers 라인으로. 불행하게도 나는 의 구성 설정을 그렇게 많이 어지럽히지 않았 sudo
으므로 그런 경우에는 내 조언이 신뢰할 수 없을 수도 있습니다. 다행히 내가 무슨~할 수 있다내가 해야 할 일은 안전하다는 것을 당신에게 알려주는 것입니다:
ricardo ALL=/usr/bin/aptitude
이 줄은 ricardo가 또는 aptitude
같은 sudo 지원 그룹의 구성원이 아닌 한 ricardo가 루트로 실행되도록 보장합니다 .sudo
admin