왜 `sudo bash`는 실행할 수 있지만 `sudo su`는 실행할 수 없나요?

왜 `sudo bash`는 실행할 수 있지만 `sudo su`는 실행할 수 없나요?

저는 우리 환경에서 sudo 액세스를 표준화하는 작업을 진행 중입니다. 첫째, 현재 설정을 이해합니다.

현재는 sudo bash비밀번호를 입력하지 않고도 루트 쉘에 들어갈 수 있습니다. 개별 명령에 sudo 액세스 권한을 부여하는 것이 권장된다는 것을 알고 있지만 적어도 지금은 비밀번호를 입력한 다음 루트 셸을 얻을 수 있는 메커니즘이 필요합니다.

다시 반복 sudo bash하거나 sudo -s잘 작동하지만 비밀번호를 입력하면 sudo su -비밀번호를 묻는 메시지가 표시되고 비밀번호를 입력하면 "*죄송합니다. <username> 사용자는 '/bin/su -를 실행할 수 없습니다. - '에 뿌리를 두고 있는lt;서버 이름>'. 이것이 어떻게 작동하는지 궁금하게 만듭니다 sudo bash.

/etc/sudoers파일 에서 이 컨텍스트와 관련된 두 줄을 볼 수 있습니다.

        root    ALL=(ALL)   ALL
        %wheel  ALL=(ALL)   ALL

%wheel그리고 저는 이 그룹의 일원 이 아닙니다 . admin내 기본 그룹이고 /etc/passwd그룹 adminwheel그룹의 일부 가 아닙니다 /etc/group. 그래서 sudo su -작동하게 하기 위해 sudoers파일에 다음 줄을 추가했고 작동했습니다.

        %admin  ALL=(ALL)   ALL

하지만 이해할 수 없습니다.

  • 다들 직장에서 어떻게 지내세요 sudo bash?
  • wheel기본적으로 모든 사람이 이 그룹의 구성원인가요?

여기서 빠진 내용이 있으면 알려주시기 바랍니다. 또한, 더 나은 방법이 있다면.

운영 체제: CentOS 7.2(Red Hat 시리즈)


/etc/sudoers.d거기에 몇 가지 파일이 있고 그렇게 작동하는 것으로 밝혀졌지만 sudo bash주석 처리된 줄 알았는데... 감사합니다.

#includedir /etc/sudoers.d

답변1

의견을 바탕으로 한 답변:

sudo bash이 그룹에 속하지 않은 사람들에게도 이것이 작동해야 하는 이유에 대한 질문은 wheel기본 sudoers구성 파일에 추가 구성 파일이 포함되어 있다는 사실 /etc/sudoers.d(그리고 이러한 파일 중 하나가 이를 허용한다는 사실)을 인식함으로써 해결됩니다.

네, #처음에는 #include혼란스럽습니다 .

시스템 관리자에게 슈퍼유저 권한을 안전하게 부여하는 방법에 대한 추가 질문은 이전 질문을 참조하여 답변되었습니다."sudo, su 또는 login 중 루트 권한을 얻는 가장 안전한 방법은 무엇입니까?”. 이 질문에 대한 답변을 보면 이것이 간단한 질문이 아니라는 것이 분명해졌습니다.

관련 항목: "sudo su를 실행해야 할 이유가 있나요?"

관련 정보