Unix 시스템에 두 명의 루트 사용자가 있다고 가정합니다.
이러한 루트 사용자 중 한 명이 해당 사용자를 삭제하는 것을 방지하고 SSH 키 액세스가 삭제되지 않도록 보호할 수 있습니까?
목표는 사용자가 루트 액세스 권한을 얻은 경우 기본 루트 사용자(즉, 시스템의 올바른 기능을 담당하는 사용자)를 제거할 수 없도록 하고 각 루트 사용자가 패키지를 설치하고 파일 권한을 변경하는 등의 작업을 수행할 수 있도록 하는 것입니다. (그러나 "시스템 관리자"에게 영향을 미치거나 시스템에서 제거할 수는 없습니다)
특정 권한(루트가 아니더라도)을 가진 사용자를 생성할 수 있다는 것을 알고 있지만, 문제의 범위는 전체 시스템 액세스 권한을 가진 사용자입니다.
답변1
계정에 전체 시스템 액세스 권한이 있는 경우 정의에 따라 해당 계정이 선택한 작업을 수행하는 것을 막을 수 없습니다.
이론적으로는 루트 파일 시스템의 모든 변경 시도를 중재 /root
하고 자체 마운트 해제를 거부하는 커널 모듈을 작성할 수 있지만 여전히 이를 해결할 수 있는 방법이 있습니다. 재시작구조 디스크예를 들어, 이러한 커널 모듈은 완전히 우회됩니다.
또 다른 솔루션은 부팅할 때마다 알려진 상태로 자체적으로 재설정되는 루트 파일 시스템이 있는 가상 머신일 수 있습니다. 이는 가상 머신 자체의 컨텍스트 외부에서 관리될 수 있으므로 내부 계정은 이를 변경할 수 없습니다. 여전히 가상 머신 내의 루트 계정이 내용을 변경하는 것을 방지할 수는 없지만 다음 재부팅 시 재설정할 수 있으므로 이는 중요하지 않습니다.
답변2
정의에 따라 루트 사용자는 다른 사용자 제거/수정을 포함하여 시스템에서 모든 작업을 수행할 수 있습니다.
또한 각 루트 사용자가 패키지 설치, 파일 권한 변경 등을 허용합니다. (그러나 "sysadmin"에 영향을 미치거나 시스템에서 제거할 수는 없습니다)
sudo
사용자가 시스템에 대한 전체 액세스 권한 없이 시스템을 관리할 수 있도록 하는 시스템을 설정하는 방법을 찾고 있을 수 있습니다 .
다음을 실행할 수 있는 권한을 설정할 수 있습니다 sudo
.
apt install/update/upgrade/remove/purge
chown/chmod
그러나 특정 디렉토리/파일에서만 작동합니다.useradd/userdel/groupadd/groupdel
또 다른 아이디어는 가상화(전체 가상화 또는 LXC/Linux 컨테이너와 같은 가벼운 가상화)를 사용하고 사용자가 게스트 운영 체제에 대한 전체 액세스를 허용하는 것입니다.