강좌
클라우드/리눅스에 관한 강좌입니다.
자격증 분류

리눅스마스터1급 : root (Super User) 사용자 관리 2편

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: root (Super User) 사용자 관리 2





관리분담 및 각 관리계정 관리방안/활용



root는 시스템상에서 어떤 작업이든 수행이 가능하기 때문에 편리함만큼이나 위험도 높다.

 

 

 

이런 이유에서, 시스템 관리자는 평상시에는 일반 계정으로 접속하고, 시스템 관리가 필요한 경우에 root 계정을 사용하는 것이 일반적이다.

 

 

 

1) su : 다른 계정 사용자로 교체할 수 있는 명령 su



대부분의 경우 시스템 관리자들은 root 권한으로 시스템을 관리한다.

 

 

 

하지만 시스템 관리자는 2개 이상의 계정을 소유하고 있는 경우가 일반적이다.

 

 

 

앞서 언급한 바와 같이 보안상의 이유로 root 계정보다는 일반 계정으로 접속하는 것이 좋다


(telnet, ftp 등의 경우에 root 사용자로 접속하지 못하도록 설정되어 있지만 ssh의 경우에는 root 사용자로도 시스템에 접속하는 것이 가능하다). 



이런 경우에는 su 명령을 이용하여 일반 계정 사용자에서 root 계정 사용자로 교체할 필요가 있다.

 

 

 

 

su“SUstitute”의 약어로서 다른 계정 사용자로 교체할 때 사용하는 명령어이다.

 

 

 

리눅스 서버로 로그인하여 시스템을 사용 중에 다른 계정 권한이 필요한 경우에 su 명령어를 이용하여 리눅스 쉘상태에서 바로 다른 계정 사용자로 교체할 수 있다.

 

 

 

그렇지만 root를 일반 계정이나 다른 root 계정으로 교체하는 경우 외에는 교체하려고 하는 계정의 비밀번호를 알아야 한다.

 

 

 

 

 

su 사용 시에는 매우 중요하고 유의해야 하는 다음과 같은 옵션들이 있다.

 

 

 

 

 

-c : 쉘을 실행하지 않고 주어진 명령만을 수행한다.

 

 

 

 

-s : 지정된 쉘로 로그인한다.

 

 

 

 

-. -l : 지정한 사용자의 환경변수를 적용하여 로그인한다.

 

 

 

 

 

다음은 su 명령어를 이용하여 sulinuxer라는 사용자로 변경하였다.

 

 

 

그 결과 EUID 값이 freekgb에서 sulinuxer로 바뀌게 된다.

 

 

 

쉘상에서 서버명 앞의 계정 사용자명이 freekgb에서 sulinuxer로 바뀐 것을 볼 수 있다.

 

 

 

그리고 whoami 명령을 통해서도 현재 자신이 어떤 계정 사용자인지 확인할 수 있다.

 

 

 

su 명령어로 root로 변경하기 위해서는 sulinuxer 부분을 삭제하고 그대로 “su -” 명령만 내리면 된다


(sulinuxer 대신 root를 기재해도 root로 변경된다).



 

 

 

 

[freekgb@SUK121 ~] su - sulinuxer

암호: ********

[sulinuxer@SUK121 ~]$ whoami

sulinuxer

[sulinuxer@SUK121 ~]$

 

 

 

 

 

만약 다시 기존의 사용자로 돌아가려면 exit 명령을 사용하면 된다.

 

 

 

물론, 다시 su 명령을 사용하여 기존의 사용자로 변경하는 것도 가능하다.

 

 

 

 

 

 

 

 

 

[sulinuxer@SUK121 ~]$ exit

logout

[freekgb@SUK121 ~]$whoami

freekgb

[freekgb@SUK121 ~]$

 

 

 

 




2) TMOUT



사용자가 일정시간 동안 계정을 사용하지 않는 경우에 자동으로 로그아웃되도록 하기 위해서는 TMOUT 설정을 한다.

 

 

 

root를 비롯한 모든 사용자의 경우에는 /etc/profileTMOUT 환경 변수를 설정하면 되고, 특정한 사용자에게만 적용하기 위해서는 해당 계정의 홈 디렉토리 아래의 .bash_profile에 해당 환경 변수를 설정하도록 한다.

 

 

 

사용자가 오랜 시간 자리를 비우거나 로그아웃을 잊어버린 경우라고 하더라도, 일정한 시간이 흐르면 자동으로 로그아웃이 되므로 보안에 도움이 된다.

 

 

 

리눅스 기본쉘인 배시(BASH) 쉘의 경우에는 다음과 같이 설정한다.

 

 

 

TMOUT에서 숫자는 초단위로 계산되므로 1시간이 지나면 자동으로 로그아웃되도록 설정된 것이다.

 

 

 

 

 

 

 

 

export TMOUT

TMOUT=3600

 

 

 

 

 


그런데 만약 사용자가 사용한 명령어 목록을 다른 자가 해당 사용자로 로그인하더라도 알 수 없도록 하려면 로그아웃하고 다시 로그인할 때 history 목록을 삭제하도록 HISTSIZEHISTFILESIZE 환경 변수를 설정할 수 있다.

 

 

 

 

 

 

 

 

HISTSIZE=0

HISTFILESIZE=0

 

 

 

 





3) 사용자 신분 확인



일반적으로 사용자 신분을 확인하기 위해서는 whoami, who am i, id 명령을 사용한다.

 

 

 

이 중에서 앞의 두 명령은 로그인 계정을 확인하기 위한 명령이고, 후자의 id는 사용자의 신상 명세를 확인하기 위한 명령이다.

 

 

 

 

지금 현재 나는 누구인가? - id



사용자 및 그룹관리의 첫 번째로서 현재 시스템에 로그인해 있는 나는 도대체 누구인가?”를 확인하는 방법을 알아야 할 것이다.

 

 

 

이를 확인하기 위하여 리눅스에서는 id라는 명령어를 사용한다.

 

 

 

, id라는 명령어를 실행하면 현재 이 시점에서 시스템을 사용하고 있는 내가 누구인가에 대한 자세한 정보를 보여준다.

 

 

 

id“Identification”의 약어로서 사용자 정보, uid(사용자 아이디), gid(그룹 아이디), 소속 그룹 정보 등을 확인하는 명령어로서 사용자의 신분을 확인하는 가장 일반적인 명령어이다.

 

 

 

이와 함께 비슷한 목적으로 사용되는 명령어로는 “who”, “who am i” 등이 있다.

 

 

 

그렇지만 현재 시스템에서 특정 계정 정보를 확인하는 용도로 가장 흔하게 사용되는 명령어가 id이다.

 

 

 

 

쉘에서 id 라고 명령을 내리면 자기 자신의 사용자 정보를 확인할 수 있다.

 

 

 

이 결과에서 freekgb 사용자는 uid500이고, gid500이며, 소속된 그룹은 freekgb라는 그룹에 소속되어 있다


(사용자 생성 시에 특정한 그룹을 설정하지 않으면 자동으로 사용자명으로 그룹이 생성되어 사용자가 그 그룹에 속하도록 설정된다.  사용자는 다수의 그룹에 소속될 수 있다).

 

 

 

 

 

 

[freekgb@SUK121 ~]$ id

uid=500(freekgb) gid=500(freekgb) groups=500(freekgb)

[freekgb@SUK121 ~]$

 

 

 

 

 



다음은 root 사용자의 정보를 id로 확인해 보자. 앞의 freekgb 정보와는 달리, rootuidgid0이라는 것을 알 수 있다.

 

 

 

그리고 시스템을 관리하기 위한 권한이 필요한 몇몇 그룹에 소속되어 있어 소속된 그룹이 많다.

 

 

 

 

 

 

 

 

 

[root@SUK121 ~]# id

uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

[root@SUK121 ~]#

 

 

 

 

 



다음은 freekgb라는 사용자가 자신의 EUID(유효 사용자, Effective User ID) 정보만을 확인한 예이다.

 

 

 

EUID는 유효한 사용자를 의미하는 것으로서, 명령어를 실행하는 경우에 실행된 명령어가 실질적으로 사용하게 되는 권한사용자를 의미한다.

 

 

 

, EUID의 개념은 서버보안 점검과정에서 해킹 등을 당하지 않았는가를 확인할 때에 사용하는데, 특정파일을 대상으로 이것에 대한 검사를 하곤 한다.

 

 

 

 

 

 

 

 

 

[freekgb@SUK121 ~]$ id -un

freekgb

[freekgb@SUK121 ~]$

 

 

 

 

 




위의 결과에서 EUIDfreekgb임을 알 수 있는데, uid 번호만을 확인하고자 한다면 un 대신 u 옵션을 사용하고, EGID, 즉 유효 그룹을 확인하는 경우에는 gn 옵션을 사용하며, gid를 확인하려고 할 때에는 g 옵션을 사용한다.

 

 

 

 

 

 

 

 

 

[freekgb@SUK121 ~]$ id -u

500

[freekgb@SUK121 ~]$ id -gn

freekgb

[freekgb@SUK121 ~]$ id -g

500

 

 

 

 

 



EUID(유효 사용자 아이디) 확인하기 whoami



EUID(유효 사용자 아이디, Effective User ID)는 어떤 명령어를 실행하였을 경우에 실제 어떤 사용자 권한으로 실행되는가에 관한 것이다.

 

 

 

물론, 대부분의 경우 id 명령어로 확인했던 사용자, 즉 현재 사용자와 명령어를 실행했을 때의 사용자 권한은 동일한 것이지만, 그렇지 않은 경우가 있다.

 

 

 

, 현재 사용자와 EUID가 동일하지만, 경우에 따라서는 달라지는 경우가 있기 때문에 whoamiEUID를 확인할 수 있어야 한다.

 

 

 

 

 

whoami는 유효 사용자 아이디, EUID를 확인하는 명령어이다.

 

 

 

앞서 언급한 “id un”과 동일한 결과를 얻을 수 있는 명령어이며, 현재 유효사용권한에 대한 EUID를 확인하고자 하는 경우에 사용하며 쉘프로그램 등에서도 많이 사용된다.

 

 

 

 

whoami는 다음과 같이 사용하며, 이 명령을 내리면 쉘은 EUID를 보여준다.

 

 

 

 

 

 

 

 

[freekgb@SUK121 ~]$ whoami

freekgb

[freekgb@SUK121 ~]$

 

 

 

 

 




로그인 아이디가 무엇이었는지 확인하기 who am i



앞서의 idwhoami가 현재 자신이 누구인지를 확인하는 명령들이라면, “who am I”는 내가 시스템에 접속할 당시의 계정명과 접속정보를 확인하는 명령이다.

 

 

 

예를 들어 내가 freekgb라는 계정으로 일단 시스템에 최초접속을 하였다.

 

 

 

그리고 su 명령을 통해 sulinuxer로 사용자를 변경하였으며, 그런 다음 root로 사용자를 바꾸었다.

 

 

 

이 상황에서 id 명령어나 whoami는 사용자가 바뀔 때마다 freekgb, sspark, root 라는 정보를 출력한다.

 

 

 

이에 대해 “who am i”는 최초 접속자였던 freekgb를 그 결과로 출력한다.

 

 

 

다음은 이에 대한 실행예이다.

 

 

 

 

 

 

 

 

 

[freekgb@SUK121 ~]$ whoami

freekgb

[freekgb@SUK121 ~]$ su - sulinuxer

암호: ********

[sulinuxer@SUK121 ~]$ id

uid=501(sulinuxer) gid=501(sulinuxer) groups=501(sulinuxer)

[sulinuxer@SUK121 ~]$ su - root

암호: ********

[root@SUK121 ~]# whoami

root

[root@SUK121 ~]# who am i

freekgb pts/0 2013-08-10 09:48 (1.231.118.189)

[root@SUK121 ~]#

 

 

 

 

 

“who am i”를 실행한 결과로 나타나는 정보들은 다음과 같은 의미이다.

 

 

 

 

 

freekgb : 최초 접속자 아이디이다.

 

 

 

pts/0 : 최초 접속 시 사용한 터미널 장치명이다.

 

 

 

2013-08-10 09:48 : 최초 접속 당시의 접속시간이다.

 

 

 

 

1.231.118.189 : 최초 접속 당시의 IP 주소이다.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,134 명
  • 현재 강좌수 :  36,188 개
  • 현재 접속자 :  468 명