[su 권한]특정 유저 또는 그룹에만 사용권한

2012. 2. 5. 22:20개발/서버

리눅스에서 su 명령어 사용을 특정사용자에게만...

 

두가지만 손봐주시면 됩니다 .

첫 번째, /etc/group 파일에서 wheel 그룹에 su 명령어를 사용할 사용자를 추가합니다.

아래의 예는 필자가 운영하는 시스템의 경우의 예임.

[root@kebia_1 ]# cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root,sspark

두 번째, /etc/pam.d/su 파일에 아래의 빨간색으로 표시된 두줄을 설정해 주시면 됩니다.

[root@kebia_1 ]# cat /etc/pam.d/su
#%PAM-1.0
auth       sufficient   /lib/security/pam_rootok.so
auth       required /lib/security/pam_wheel.so debug group=wheel

# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient   /lib/security/pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required     /lib/security/pam_wheel.so use_uid
auth       required     /lib/security/pam_stack.so service=system-auth
account    required     /lib/security/pam_stack.so service=system-auth
password   required     /lib/security/pam_stack.so service=system-auth
session    required     /lib/security/pam_stack.so service=system-auth
session    optional     /lib/security/pam_xauth.so

 

세 번째로, su명령어의 사용을 허용한 사용자와 허용되지 않은 사용자가 각각 su명령어를 사용했을 때 /var/log/messages에 다음과 같은 로그기록의 차이점이 있다.

먼저, picasso라는 su명령어사용이 허용되어 있지 않은 (정확히는 /etc/group의 wheel그룹사용자가 아닌 경우)사용자가 su명령어를 사용했을 경우의 로그는 다음과 같은 형식으로 남게된다.

Mar 14 16:34:13 kebia_1 sshd[1799]: Accepted password for picasso from 211.220.193.149 port 1035 ssh2
Mar 14 16:34:13 kebia_1 PAM_unix[1799]: (system-auth) session opened for user picasso by (uid=0)
Mar 14 16:34:25 kebia_1 PAM-Wheel[1831]: Access denied for 'picasso' to 'root'

다음은 su 명령어 사용이 허용된 sspark이라는 사용자가 su명령어를 사용했을 경우의 messages로그 기록예입니다.

Mar 14 16:34:49 kebia_1 sshd[1835]: Accepted password for sspark from 211.220.193.149 port 1036 ssh2
Mar 14 16:34:49 kebia_1 PAM_unix[1835]: (system-auth) session opened for user sspark by (uid=0)
Mar 14 16:34:53 kebia_1 PAM-Wheel[1860]: Access granted to 'sspark' for 'root'
Mar 14 16:34:56 kebia_1 PAM_unix[1860]: (system-auth) session opened for user root by sspark(uid=500)

위의 방법은 Fedora core 3에서 시행한 방법이고, Fedora core 4에서는 위와같이 변경해도.. 패스워드가 틀렸다는 문구와 함께 연결이 안된다..

즉, Fedora core 4의 방법은 약간 틀리다. 다음과 같이 하면 된다.

 

 1. 먼저 su 명령을 통해 root 권한을 부여할 계정을 /etc/group 의 wheel 그룹에 추가한다.

2. /etc/pam.d/su 파일내에서
#auth required /lib/security/$ISA/pam_wheel.so use_uid

auth required /lib/security/$ISA/pam_wheel.so use_uid
로 변경한다,
주의 ) use_uid 는 그대로 (group=wheel 로 변경하지 않는다.)

3. 마지막으로, /etc/login.defs 파일내에 SU_WHEEL_ONLY yes 라인을 추가한다.
[root@linux ~]# echo "SU_WHEEL_ONLY yes" >> /etc/login.defs

하지만, 일부 문서에서., pam_wheel 모듈에 대하여, 잘못된 방법이라 한다.

 

참조 :  RH 7.2, 7.3, 2.1AS 에 포함되어 있는 pam_wheel 모듈에 대한 문서는 잘못되었다. pam_wheel 모듈은 더 이상 su 명령을 통해서 root권한을 획득하기 위한 것으로만 사용되지 않는다. pam_wheel 모듈을 활성화시킨다면 wheel 그룹에 속한 모든 계정은 su명령으로 root 권한을 획득할 수 있고, root 가 아닌 다른 계정 권한도 획득할 수 있다. 이러한 문제로 인해서 root 권한으로의 변경을 제한하기 위해서 pam_wheel 모듈을 사용하지 않길 권한다. 그 이유는 일반 사용자 계정의 권한까지도 획득할 수 있기 때문이다.

'개발 > 서버' 카테고리의 다른 글

프로세스  (0) 2012.02.05
사용자 계정 관리  (0) 2012.02.05
기본 Daemon 설명  (0) 2012.02.05
linux process 제어  (0) 2012.02.05
ROUTER 명령어 _ CCNA(ICND)완벽정리  (0) 2012.02.05