[관리자 권한 전환]

앞에서 리눅스의 사용자 및 그룹을 관리하는 방법을 다루었다. 멀티유저 운영체제는 최고관리자라는 특별한 사용자가 있다. 윈도우즈의 경우는 Administrator이고 리눅스와 유닉스에서는 root를 최고관리자로 사용하고 있다. 
최근에는 보안상의 이유로 root 사용자로의 직접 로그인을 권장하지 않고 일반 사용자로 로그인한 다음 필요시 root권한으로 작업하게 하고 있다. CentOS7의 기본은 다음과 같다.

로컬 로그인 : root 로그인 가능 / 불가는 권장
telnet 로그인 : root 로그인 불가능 / 불가능 권장, telnet 사용 권장하지 않음
ssh 로그인 : root 로그인 가능 / 불가능 권장
ftp 로그인 : root 로그인 불가능 / 불가능 권장

CentOS7의 경우는 로컬 로그인시 root 사용이 가능하지만 최근에 등장하는 리눅스의 경우 기본적으로 로컬 root 로그인을 차단하는 경우가 많다.
보안 설정에서 다루겠지만, ssh의 경우 root 직접 접근을 차단하고 특정 그룹에 소속된 사용자만 ssh 접근이 가능하게 한다.
CentOS7은 설치과정에서 root이외의 관리자계정을 등록한다. 등록된 관리자 계정은 sudo 명령어를 통해 root 권한으로 작업이 가능하다. 이는 sudo 설정파일인 /etc/sudoers 파일에 wheel 그룹은 root 권한으로 모든 작업이 가능하게 설정되어 있고 관리자계정으로 등록된 사용자는 wheel 그룹에 등록되어 있었다. 이는 사용자 추가후 wheel 그룹에 등록을 한다면 sudo 명령어를 통해 root 권한으로 작업을 할 수 있다는 것이다.
앞에서 다루었던 여러 가지 방법으로 사용자를 wheel 그룹에 추가해 보자.

~] # groupmems -g wheel -l
doly
~] # usermod -G wheel wyjung
~] # groupmems -g wheel -l
doly wyjung

groupmems 명령어로 wheel 그룹의 사용자를 확인하고, usermod 명령어로 wyjung사용자를 wheel 그룹에 맴버로 추가하였다. 그리고 다시 groupmems 명령어로 wheel 그룹에 wyjung 사용자가 추가된 것을 확인하였다.


[root 권한으로 명령어 실행]

~] $id
uid=1001(wyjung) gid=1001(wyjung) groups=1001(wyjung),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
~] $ yum install system-config-users
Loaded plugins: fastestmirror, langpacks
You need to be root to perform this command.
~] $ sudo yum install system-config-users
[sudo] password for wyjung: 사용자암호
Loaded plugins: fastestmirror, langpacks
...

위 내용은 id 명령어로 사용자 아이디 및 UID, GUI, 소속된 그룹을 확인하였다. 현재 계정이 wyjung이고 wyjung는 wheel 그룹에 등록되어 있는 것을 확인할 수 있다. yum 명령어로 system-config-users 패키지를 설치하려 했으나 root가 아니면 실행할 수 없다는 메시지를 만나게 된다. 이 때 sudo 명령어를 사용하여 실행하였다. sudo를 사용하여 root권한을 얻기위해 사용자(여기서는 wyjung)의 암호 입력을 요구한다. 이 암호는 한번 입력하면 5분동안 sudo 명령어 입력시 사용자의 암호를 입력하지 않아도 된다. 사용자의 암호를 입력하면 sudo명령어 뒤에 작성한 내용(yum install system-config-users)가 root 권한으로 실행된다. 실행이 끝나면 다시 일반사용자 권한으로 돌아오게 된다.


[root 권한으로 전환 (sudo)]

~] $ sudo -s
[sudo] password for wyjung: 사용자암호입력
wyjung] #

sudo 명령어에 -s 옵션을 주어 실행하게 되면 사용자 암호 입력후 root 권한의 쉘으로 전환된다. 위와 같이 명령어 프롬프트에 "$"표시는 일반 사용자이고, "#" 표시는 root 사용자 프롬프트를 나타낸다.

[root 권한으로 전환 (su)]

~] $ su -
암호: root암호입력
마지막 로그인: 목  7월 17 18:58:04 KST 2014 일시 pts/1
~] #

su 명령어에 - 옵션을 주어 실행하고 root 사용자의 암호를 이력하게되면 root로 사용자로 전환된다. 여기서 - 옵션을 빼고 입력할 경우 root 사용자의 환경변수를 읽어오지 않아 root 전용 명령어를 찾지 못하는 경우가 발생된다. sudo로 전환했을 때와 다른것은 root 사용자로 전환과 동시에 root 사용자의 홈디렉토리로 현재 디렉토리가 바뀐다는 것이다.


[다른 사용자로 전환]

~] $ sudo -s -u doly
[sudo] password for wyjung: 사용자암호입력
wyjung] $ id
uid=1000(doly) gid=1000(doly) groups=1000(doly),10(wheel),1001(wyjung) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023


sudo명령어에 -u 옵션을 사용하여 전환 하고자 하는 사용자를 지정하면 지정된 사용자로 전환할 수 있다. 위 예는 wyjung 사용자가 doly 사용자로 전환한 것이다.
  사용자 전환 후 전환하기 전 사용자로 돌아오기 위해서는 exit를 입력하면 된다.

+ Recent posts