가정적인 질문이 있습니다. 제가 7살짜리 아이에게 Linux 사용법을 가르치고 싶다고 가정해 보겠습니다. 나는 그가 YouTube 키즈 채널에서 시간을 낭비하는 것을 원하지 않습니다. 그래서 저는 그러한 채널을 차단하기 위해 Chrome에 확장 프로그램을 시행했습니다. 하지만 리눅스를 배우다 보면 확장 프로그램의 강제 설치 구성 파일을 삭제하고 싶을 수도 있습니다. 프로필 삭제를 방지하면서 그에게 sudo 권한(Linux를 완전히 경험할 수 있도록)을 부여하려면 어떻게 해야 합니까?
경우에 따라 그는 sudoer와 관련된 상황에 대한 해결 방법을 배울 수 있습니다. 예: sudo apt install의 경우 실제로 소스 코드를 다운로드하고 원하는 것을 컴파일하고 설치할 수 있습니다.
그러나 그는 sudoer가 아닌 사용자로서 /etc/resolf.conf를 수정할 수 없습니다.
내가 아는 한, 두 명의 다른 sudoer가 서로의 파일을 수정할 수 있습니다.
마지막으로, OS 파일의 소유자를 변경하고 싶지 않습니다. 이 작업을 수행하는 올바른 버전은 무엇입니까?
답변1
ALL
당신이 요구하는 것은 세트에서 명령을 빼려고 하기 때문에 완전히 불가능합니다 . 루트와 같은 관리자가 명령을 블랙리스트에 올리는 것은 거의 불가능하므로 man sudoers
자세히 설명하십시오.
안전 예방 조치
'!'에 대한 제한 연산자
ALL에서 "빼기"를 위해 "!" 연산자를 사용하는 것은 일반적으로 효과가 없습니다. 사용자는 원하는 명령을 다른 이름으로 복사한 다음 해당 명령을 실행하여 이 문제를 쉽게 피할 수 있습니다. 예를 들어:
bill ALL = ALL, !SU, !SHELLS
Bill이 SU 또는 SHELLS에 나열된 명령을 실행하는 것을 실제로 막을 수 있는 방법은 없습니다. 왜냐하면 그는 단순히 명령을 다른 이름으로 복사하거나 편집기 또는 다른 프로그램의 셸 이스케이프를 사용할 수 있기 때문입니다. 따라서 그러한 제한은 기껏해야 권고 사항으로 간주되어야 합니다(그리고 정책에 의해 강화되어야 함).
일반적으로 사용자가 sudo ALL을 사용하는 경우 "!" 요소가 있는지 여부에 관계없이 루트 셸을 제공하기 위해 자체 프로그램을 만드는 것(또는 자체적인 셸 복사본을 만드는 것)을 막을 수 없습니다. 사용자 사양.
다음을 고려할 수 있습니다.
- 블랙리스트 대신 화이트리스트를 정의하십시오.
- 가상 머신에서 운영 체제를 실행한 다음 호스트 머신을 통한 웹 사이트 액세스를 제한합니다.
- 라우터의 방화벽 설정을 통해 웹 액세스를 제한하세요.