강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
실전 기본명령어 다루기 2편
조회 : 7,341  




제목 : 실전 기본명령어 다루기 2편





ㅇ 제작 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 서버관리팀


ㅇ SULINUX  홈페이지 : www.sulinux.net

ㅇ 리눅스포털 홈페이지 : www.superuser.co.kr



























실전 기본 명령어 다루기



3. 사용자 관리


사용자에는 일반계정 사용자와 root계정사용자가 있다. 일반적으로 root계정은 시스템 운영에 있어서 모든 권한을 행사하므로 슈퍼유저(Super User)계정이라고 한다. root계정에 많은 계정들이 있다 이를 잘 관리 하여야만 서버에서 누가 악의적인 행위를 하고 있는지, 그런 행위자의 접근을 차단할 수 있을 것이다.


SULinux는 사용자 관리를 쉽게 할 수 있는 명령어(su_usersetup)를 별도 제공한다. 별도 제공 명령어의 사용방법은 “6-3-2. 사용자 설정방법”을 참고하기 바란다.


su_usersetup 명령어 사용전에 아래 내용을 이해하고 su_usersetup 명령어를 사용하면 더 많은 작업들을 더 쉽게 작업을 수 있을 것이다.



3-1. 시스템 계정


/etc/passwd 파일의 세 번째 필드가 UID값을 나타내는 데 그 값이 500번(보통 100번 이하) 미만의 계정들을 보면 daemon, mail, lp, nobody라는 계정으로되어 있다. 이러한 계정을 시스템 계정이라고 한다. 시스템 계정이 존재하는 이유는 해당 서비스로 인한 위험을 줄이기 위해서이다.


예를 들어 game을 하고 High Score를 기록한다고 하면 이 기록을 특정한 파일에 기록해야 한다. 만약 특정한 파일에 기록할 때 특정한 계정이 없으면 root로기록해야 한다. 단순히 점수만 기록하면 되는데 root권한으로 기록하게 되면시스템상에 문내가 발생할 수도 있다. 그래서, 시스템서비스들도 계정으로 등록해서 관리한다.


관련파일 : /etc/passwd, /etc/shadow, /etc/group


리눅스 시스템에서 가장 중요한 파일로 시스템에 로그인하여 자원을 이용할 수 있는 사용자의 목록을 저장하고 있는 파일이다. 이 파일에 기록된 사용자 정보는 그사용자가 로그인하고, 로그아웃 할 때까지 항상 시스템이 사용자를 감시하기 위한근거가 되는 파일이다. /etc/passwd파일에서 id, 개인의 홈디렉토리등 기본적인 정보를 담고 있으며, /etc/shadow파일은 /etc/passwd파일에서의 패스워드부분을 다시 암호화하여 관리한다.


/etc/passwd



기본구조 : 7개의 필드로 나누어 정보를 저장하고 있다.


Username:Password:UID:GID:Full Name:Home-dir:Shell


필 드

설    명

username

사용자 id. 사용자 계정을 구분하는 문자열.

password

암호화된 사용자 password. passwd명령으로 설정한다. Shadow passwd를 사용할 경우에는 이 부분이 다른 파일에 저장되고 이 부분은 'x'자만 저장되게 된다.

UID

User id. 사용자를 구분하기 위해 사용하는 정수값.

GID

Group id. 그룹을 구분하기 위해 사용하는 정수값.

Full Name

사용자의 실제 이름이나 전화번호 등 계정에 관한 기타 정보

Home_dir

사용자의 home directory

Shell

로그인시 사용할 쉘


실제 사용의 예


nemo:x:500:500:nemocaptain:/home/nemo:/bin/bash


설명

항 목

설    명

nemo

Username부분으로 일명 ID 또는 계정명이라고도 부른다.

x

암호화된 패스워드 필드항목.

이 부분을 /etc/shadow파일에서 담당한다.

500

숫자화된 UserID 이다.

500

숫자화된 GroupID 이다.

nemocaptain

일종의 부연설명이다.

/home/nemo

홈디렉토리

/bin/bash

로그인시 사용되는 쉘



/etc/shadow


/etc/passwd 파일에서 두번째 필드인 패스워드부분, 즉 'x'로 표기 되어 부분을 암호화하여 관리한다.


기본구조 : 9개의 필드로 구성되어 있다.


username:password:last:may:must:warn:expire:disable:reserved


항 목

설    명

username

사용자 id. 사용자 계정을 구분하는 문자열, 영문 알파벳과 숫자로 8글자 까지로 제한된다

password

암호화된 사용자 password

last

최근의 password를 바꾼 날(1970년 1월 1일 부터 계산한 날 수)

may

password를 바꾼 다음, 또 바꾸기 위해 기다리는 날 수(다음 password로의 변경 유예기간)

must

현재 사용하고 있는 password의 유효기간

warn

password가 만료되기 전에 user에게 바꿀 것을경고하는 기간

expire

password가 만료된 뒤, user 계정 사용이 불가능하기까지기간

disable

계정이 사용 불가능하게 된 날(1970년 1월 1일부터 계산한 날 수)

reserved

남겨둠


실제 사용의 예



nemo:$1$cWctEYZr$R/o4BEhpGI1i29or6Qrkp.:12255:0:99999:7:::



/etc/group


/etc/passwd파일에서 네번째 필드인 그룹부분 설정 파일


기본구조 : 4개의 필드로 구성되어 있다.


groupname:passwd:gid:member


항 목

설    명

groupname

그룹을 구분하게 해 주는 문자열

passwd

그룹에 속하지 않은 사용자가 group에 접근하고자 할 때 사용

gid

Gid는 시스템에서 사용하는 id (보통 uid와 같음)

member

그룹에 속한 사용자의 명단. 콤마(",")로 구분한다.


3-2. 계정 생성 - useradd


사용자를 추가하는 명령어. root권한자만 가능한 명령이다.


형식 : useradd [옵션] 사용자계정


옵션

설    명

-d

홈디렉토리를 지정할 때 쓰인다. 최종디렉토리만 생성한다.

-g

그룹을 지정할 때 쓴다. 지정할 그룹이 미리 생성되어 있어야 한다.

-G

기본그룹이외에 추가로 그룹에 속하게 할 경우에 쓴다.

-c

사용자추가시 사용자에 대한 설명을 설정한다.

-s

사용자추가시 사용자가 사용할 쉘을 지정한다.

-u

사용자추가시 사용자의 UID를 지정한다.

-D

/etc/default/useradd에 설정된 유저와 관련된 기본 사항들을 보여준다.


실제 사용의 예


1) nemo이라는 유저 추가하기

[root@localhost ~]# useradd nemo


※ 참고

useradd명령은 단순히 사용자만 추가하는 것이 아니라 리눅스에서는 유저추가시 메일계정(/var/spool/mail/'사용자계정')도 자동으로 생성되고 또한 사용자의 홈디렉토리도 자동으로 생성된다.


2) [root@localhost ~]# useradd nemo -d /home/nemo -g nemo

nemo라는 사용자를 추가하면서 홈디렉토리의 경로도 지정하고 해당그룹도 지정한다. 물론 해당 디렉토리(/home/nemo)과 해당그룹(nemo)은 미리 생성되어 있어야 한다.


3) 사용자 추가에 설정된 기본사항 보기

# useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel


※ 참고

관련파일(/etc/default/useradd, /etc/passwd)

useradd명령은 /etc/default/useradd파일의 내용을 참고로 해서 사용자를 추가한 뒤에 기록은 /etc/passwd 파일에 한다.


3-3. 비밀번호 변경 - passwd


등록된 사용자의 비밀번호를 지정하거나 변경하는 명령어이다.

passwd만 치면 현재 로그인 사용자의 패스워드가 변경된다.


형식 : passwd [사용자계정]


실제 사용의 예


[nemo@localhost ~ ]$ passwd

현재 로그인한 사용자(nemo)의 패스워드를 변경한다.


[root@localhost ~ ]# passwd nemo

nemo이라는 사용자의 패스워드를 변경한다.


3-4. 계정 삭제 - userdel


사용자를 삭제하는 명령이다.


형식 : userdel [옵션] 사용자계정


옵션 -r : 사용자의 홈디렉토리까지 제거한다.


실제 사용의 예


[root@localhost ~ ]# userdel nemo

nemo이라는 사용자의 계정을 삭제한다.


※ 참고

사용자를 제거한다고 해서 그 사용자가 사용하던 홈디렉토리까지 제거되는 것이아니므로 일일이 삭제해주거나 -r옵션을 사용하여야 한다. 또한 E-mail을 사용하고 있는 경우에는 E-mail파일도 지워야 한다.


예) [root@localhost ~ ]# rm -rf /home/nemo

[root@localhost ~ ]#rm -rf /var/spool/mail/nemo

또는

[root@localhost ~ ]# userdel -r nemo

[root@localhost ~ ]# find / -uid 500 -exec rm {} ₩;

사용자의 계정뿐만아니라 사용하던 디렉토리와 모든 파일 및 디렉토리, 메일계정도 제거하며, 사용자가 다른 디렉토리에 만들었을 파일도 모두 지운다.


3-5. 사용자 계정 전환하기 - su(substitute user)


리눅스는 멀티유저 환경을 제공하기 때문에 한 사용자의 계정에서 다른 사용자의 계정으로 변환할 경우가 있다. 다시 로그인하지 않고서도 한 사용자의 계정에서 다른 사용자의 계정으로 변경할 수 있는 su유틸리티를 지원한다.


형식 : su [옵션] [사용자계정]


사용자계정을 입력하지 않으면 root로 login하게 된다. su를 이용해 다른 사용자로 사용하다가 exit를 입력하면 su를 실행하기 전 사용자로 돌아가게 된다.


“-” : 이 옵션이 없이 su 명령만 실행시키면 자신의 환경변수의 값을 가지고 다른 사람의 권한만 갖지만 이 옵션을 사용하여 su명령을 실행시키면 그 사용자의 환경변수의 내용까지 완벽하게 사용한다. 다시 정리하면 루트 권한 사용시 이 옵션을 사용해야만 시스템명령어(예를 들면/sbin 디렉토리의 명령어인 fdisk같은 명령어)를 사용할 수 있다.

※ 참고 : 'su'와 'su -'의 비교


su명령을 옵션없이 사용하면 기존의 일반사용자인 nemo의 환경을 그대로가져간다. 따라서, 루트권한자로서의 역할을 전부수행하지 못하고, 단순히파일이나 디렉토리의 접근권한만 행사한다. 따라서, 완벽한 루트권한자로의역할을 수행하려면 'su -'로 해야한다.


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1430


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수