이 sudo 규칙을 사용하면 사용자가 시스템을 업데이트하는 것 외에는 아무것도 허용하지 않습니까?

이 sudo 규칙을 사용하면 사용자가 시스템을 업데이트하는 것 외에는 아무것도 허용하지 않습니까?

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가 루트로 실행되도록 보장합니다 .sudoadmin

원천:Ubuntu에서 Sudo를 조정하고 구성하는 8가지 방법.

관련 정보