"루트"의 관리 작업을 "보다 강력한" 여러 사용자에게 나누어줄 수 있습니까?

"루트"의 관리 작업을 "보다 강력한" 여러 사용자에게 나누어줄 수 있습니까?

root(모든 것을 할 수 있는 것과 달리) 관리만 여러 명의 관리자에게 할당할 수 있습니다.부분체계적인 것?

예를 들어 시스템에는 3명의 관리자가 있을 수 있습니다.

  • Application Administrator- 프로그램을 설치하거나 제거할 수 있지만, 네트워크 설정을 변경하거나 사용자를 추가하거나 제거할 수는 없습니다.
  • Network Administrator- 네트워크 설정은 가능하지만 프로그램 설치나 사용자 추가/삭제는 할 수 없습니다.
  • User Administrator- 사용자를 추가하거나 삭제할 수는 있지만 프로그램을 설치하거나 네트워크 설정을 구성할 수는 없습니다.

3명의 관리자는 자신에게 할당된 작업만 관리할 수 있어야 하므로 모든 root계정을 부여하는 것은 서로의 업무를 방해할 수 있으므로 바람직하지 않습니다.

이 분할을 처리하는 올바른 방법은 무엇입니까?

답변1

추가 권한을 제공하려면 다른 사람에게 루트 계정에 대한 액세스 권한을 부여해야 합니다. 또한 이를 사용하여 sudo루트 권한을 부여하지 않고도 다른 관리자의 제어 범위를 제한할 수도 있습니다. 그러나 전반적으로 귀하가 설명하는 내용은 기술적 문제라기보다는 정치적/훈련 문제에 더 가까운 것 같습니다. 서로 방해하지 않고 필요할 때 서로 도움을 줄 수 있는 올바른 직원을 고용하십시오.

답변2

sudo를 사용하면 사용자가 sudo를 통해 일부 명령에 액세스할 수 있지만 모든 명령에 액세스할 수는 없습니다.

visudo명령을 사용하면 /etc/sudoers 파일을 안전하게 편집하고 실제로 파일을 저장하기 전에 몇 가지 구문 검사를 수행할 수 있습니다.

파일 내부에는 mike ALL=(root) /usr/bin/aptitude, /usr/bin/apt-get sudo를 통해 mike에게 aptitude 및 apt-get에 대한 액세스 권한을 부여하는 등의 줄을 추가할 수 있지만 다른 명령은 추가할 수 없습니다.

이는 매우 안전하지 않습니다. 프로그램은 종종 루트로 실행되면 프로그램을 실행하는 사람이 전체 루트 액세스 권한을 가지므로 취약점에 대한 특별한 보호가 없다고 가정합니다. 명령이 실행되면 사용자는 루트로 로그인되며, 루트 상태에서 임의의 명령을 실행할 수 있는 트릭이 있는 경우도 있습니다. 신뢰할 수 없는 사용자에게는 이 작업을 수행하면 안 되지만 사용 사례에는 괜찮을 것 같습니다.

여기에서 가져온 세부정보: https://ubuntu-tutorials.com/2007/03/01/allowing-limited-sudo-access-with-visudo/

답변3

간단한 사실은 사람이 마음대로 프로그램을 설치할 수 있다면 아마도 루트 권한으로 실행되는 프로그램을 설치할 수 있으며, 이를 통해 다른 유형의 액세스 권한을 부여하는 프로그램을 설치할 수 있다는 것입니다. IE 루트로 실행되는 것을 설치하거나 수정할 수 있는 사람은 누구나 루트이거나 쉽게 루트가 될 수 있습니다.

인증을 분리하려면 인증 관리자만 관리하는 일종의 중앙 집중식 디렉터리 서비스를 고려해야 합니다. 따라서 누구도 로컬 사용자를 생성하도록 허용하지 말고, 생성된 로컬 사용자를 삭제/표시하는 시스템을 구축하세요. 그런 다음 모든 시스템을 중앙 디렉터리에 연결하기만 하면 됩니다.

오늘날 이러한 작업의 대부분은 가능할 때마다 구성 관리 시스템을 통해 간접적으로 처리되어야 합니다. 그런 다음 구성 관리 시스템에 일종의 검사를 구현하여 특정 그룹만 특정 항목을 관리하도록 허용할 수 있습니다. 구성 관리 파일의 변경 사항을 프로덕션 시스템에 적용하기 전에 몇 사람에게만 승인하도록 할 수도 있습니다. 그런 다음 해당 사람은 승인된 사람이 각 변경을 수행했는지 여부를 확인합니다.

답변4

Sudo는 선택한 도구이며 그룹별로 액세스를 나눌 수 있습니다.

관리자가 될 그룹 3개를 만들고 각 그룹에 원하는 사용자를 추가하세요.

/etc/sudoers에 명령 별칭 설정

Cmnd_Alias ​​​​APPADM = /usr/bin/yum
Cmnd_Alias ​​​​USEADM = /usr/sbin/useradd
Cmnd_Alias ​​​​NETADM = /usr/bin/ServiceNetwork*

그런 다음 그룹 액세스

%appadm ALL=(루트) APPADM
%useadm ALL=(루트) USEADM
%netadm ALL=(루트) NetADM

비슷한 것이 작동해야합니다.

관련 정보