루트 액세스를 허용하지 않고 한 사용자가 다른 사용자에게 su를 허용하려면 어떻게해야합니까?


53

특정 사용자가 해당 계정의 비밀번호를 몰라도 다른 사용자 계정으로 전환 할 수 있지만 다른 사용자 계정 (예 : 루트)에 대한 액세스는 허용하지 않습니다.
예를 들어 Tom에게 DBA가 oracle 사용자에게 su를 허용하고 싶지만 tomcat 사용자 또는 root에게는 허용하지 않기를 원합니다.

나는 이것이 / etc / sudoers 파일로 수행 될 수 있다고 생각합니다. 가능합니까? 그렇다면 어떻게?

답변:


44

예, 가능합니다.

에서 의 / etc /의 sudoers 즉시 등호를 다음과 같은 항목이 명령으로 실행하도록 허용 할 사용자입니다.

tom  ALL=(oracle) /bin/chown tom *

사용자 (tom)는 sudo -u oracle / bin / chown tom / home / oracle / oraclefile을 입력 할 수 있습니다.


5
이것은 톰 오라클 등의 명령을 실행할 수 있도록 것이지만, 실제로 오라클 사용자가 될 수 없습니다
gharper

11
sudo -u oracle su-는 어떻습니까? 그것은 그에게 오라클 사용자로서 열린 쉘을 줄 것입니다. 너가 원하는게 그거야?
Brent

마지막 코멘트는 +1, 브렌트. 그것은 나의 대답 일 것입니다.
Annika Backstrom 2016 년

3
sudo -u oracle -s 또는 sudo -u oracle -i (쉘의 경우 -s, 로그인의 경우 -i-로그인 쉘을 수행함)와 같은 것이 작동합니다. 불행히도 나는 사용자를 제한하기 위해 / etc / sudoers에서 무엇을 사용할지 잘 모릅니다. 그러나 쉘 액세스를 허용한다면 다른 누군가가 언급 한 것처럼 tom ALL = (oracle) ALL을하고 싶을 것입니다. 쉘을 실행할 수 있다면, 그들이 실행할 수있는 명령을 제한하지 않아도됩니다.
Mark

1
이상적으로 Tom이 oracle 사용자가 아닌 oracle 사용자로 명령을 실행하지 못하게 하시겠습니까? 차이는 크지 않지만 감사 셸을 사용하지 않고도 훌륭한 감사 로그를 제공합니다.
Scott Pack

40

/ etc / sudoers에 다음과 같은 것을 추가하십시오.

tom ALL=(oracle) ALL

그런 다음 사용자 Tom은 Tom을 사용하지 않고 sudo를 사용하여 -u 옵션을 사용하여 사용자 oracle로 항목을 실행할 수 있어야합니다.

즉, 사용자 오라클로 쉘을 얻는 중입니다 (여러분의 sudo가 -i 옵션을 가질만큼 충분히 새롭다면).

sudo -u oracle -i

5
나는 구문을 사용했던 tom ALL=(oracle)NOPASSWD:ALL암호를 물어되지는 sudo를 만들기 위해
snowindy

9

문제의 기능 만 제공하려면 / etc / sudoers에 다음을 추가하십시오.

tom            ALL=(oracle)    /bin/bash

그런 다음 톰은 다음을 수행 할 수 있습니다.

sudo -u oracle bash -i

0

예를 들어 Tom에게 DBA가 oracle 사용자에게 su를 허용하고 싶지만 tomcat 사용자 또는 root에게는 허용하지 않으려 고합니다.

최근에이 작업을 시스템에 수행해야했으며 몇 년 전에 사용한 대체 설정에서 구문을 허용하는 노트를 찾기가 어려웠습니다 su <user>. 제 상황에서는 여러 사용자가 su특정 사용자 에게 접근 할 수 있도록해야 했습니다.

addgroup <groupName>다른 사용자가 su비밀번호없이 할 수 있는 그룹을 만듭니다 . 그런 다음 su암호없이 usermod -a -G <groupName> <userName>(또는 usermod -a -G oracle tom) 해당 사용자 에게 할 수있는 각 사용자에게 해당 그룹을 추가하십시오 . 다음 로그인까지 그룹 변경 사항이 적용되지 않을 수 있습니다.

참고 : oracleoracle 사용자로을 만들 때 그룹이 생성 되었으므로 이미 그룹이 있습니다 adduser oracle.

이제 다음을 편집 /etc/pam.d/su하고 다음을 수행하십시오.

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so

.. 인증 규칙 줄을 추가하여 섹션이 다음과 같이 표시되도록합니다.

# This allows root to su without passwords (normal operation)
auth       sufficient pam_rootok.so
auth       [success=ignore default=1] pam_succeed_if.so user = <groupName>
auth       sufficient   pam_succeed_if.so use_uid user ingroup <groupName>

교체 <groupName>oracle이 경우이다. 이것은의 일부 사용자 수 <groupName>에를su <groupName>

이제 tom수 있습니다 su oracle당신은 다른 사용자에게 동일한 액세스 권한을 부여에 추가하고 필요하면 oracle그룹.

비슷한 질문이 여기에

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.