.

Cent OS 리눅스 사용자 관리

참고도서 : CentOS 리눅스구축 관리실무 [한국리눅스유저그룹 회장 김태용 저]


1. 사용자 추가
- 사용자 추가 명령어 useradd
[root@host ~]# useradd user2
[root@host ~]# useradd -g users user2
[root@host ~]# cat /etc/passwd [ID:패스워드:UID:GID:설명:홈디렉토리:쉘]
user2:x:503:100::/home/user2:/bin/bash
=> ID는 user2이고 비밀번호는 보안을 위해 x로 표시된다.UID는 503이고 GID는 100이다. 홈디렉토리는 /home/user2이고 기본쉘로 /bin/bash를 사용한다. 비밀번호는 shadow파일에 암호화되어 관리된다.


- 사용자 홈디렉토리는 /etc/skel에 있는 파일들을 /home/사용자명으로 복사하여 생성된다.
[root@host ~]# ls -al /home/user2
total 28
drwx------  2 user2 users 4096 Feb 17 14:52 .
drwxr-xr-x  6 root  root  4096 Feb 17 14:52 ..
-rw-r--r--  1 user2 users   24 Feb 17 14:52 .bash_logout
-rw-r--r--  1 user2 users  191 Feb 17 14:52 .bash_profile
-rw-r--r--  1 user2 users  124 Feb 17 14:52 .bashrc
-rw-r--r--  1 user2 users  383 Feb 17 14:52 .emacs
[root@host ~]# ls -al /etc/skel
total 48
drwxr-xr-x   2 root root 4096 Jan 15 11:19 .
drwxr-xr-x  77 root root 4096 Feb 17 14:52 ..
-rw-r--r--   1 root root   24 Nov 17  2007 .bash_logout
-rw-r--r--   1 root root  191 Nov 17  2007 .bash_profile
-rw-r--r--   1 root root  124 Nov 17  2007 .bashrc
-rw-r--r--   1 root root  383 Aug 13  2006 .emacs

- 사용자 추가시 옵션을 지정하지 않으면 /etc/default/useradd 파일에 설정된 것을 이용한다.
[root@host ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100   ->기본그룹 GID
HOME=/home ->사용자 홈디렉토리가 생길 디렉토리
INACTIVE=-1  ->비밀번호 만기 후 계정 잠금기간
EXPIRE=        ->비밀전호 만기 일수
SHELL=/bin/bash   ->기본 쉘
SKEL=/etc/skel      ->계정시 홈디렉토리에 복사할 파일을 가진 디렉토리

2. 사용자 비밀번호 설정
- passwd : 사용자의 비밀번호를 설정한다.

- 비밀번호를 관리하는 파일은 /etc/shadow로서 비밀번호를 암호화하여 파일에 기록
[root@host ~]# cat /etc/shadow | grep user2
user2:!!:14292:0:99999:7:::
=> !!는 비밀번호를 설정하지 않았다는 표시

- 비밀번호 등록
[root@host ~]# passwd user2
Changing password for user user2.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

3. 사용자 삭제
- userdel :리눅스의 사용자를 삭제한다.
userdel [옵션] 유저이름
옵션
-r : 사용자의 홈디렉토리를 제거한다.

[root@host home]# useradd user1
[root@host home]# ll
total 16
drwx------  6 casualty casualty 4096 Jan 16 15:10 casualty
drwx------  2 mysql    mysql    4096 Jan 16 14:16 mysql
drwx------  2 user1    user1    4096 Feb 17 16:51 user1
drwx------  2 user2    users    4096 Feb 17 14:52 user2
[root@host home]# userdel -r user1
userdel: warning: /var/spool/mail/user1 not owned by user1, not removing
[root@host home]# ll
total 12
drwx------  6 casualty casualty 4096 Jan 16 15:10 casualty
drwx------  2 mysql    mysql    4096 Jan 16 14:16 mysql
drwx------  2 user2    users    4096 Feb 17 14:52 user2

4. 그룹 추가,삭제
- groupadd : 새로운 그룹 생성
- groupadd [옵션] 그룹명

옵션
-g GID (특정 GID번호로 설정한다)
-r : 0~500번대 사이로 가장 큰 수를 GID로 설정한다.
group에 대한 정보를 담고 있는 파일은 /etc/group라는 파일.

[root@host home]# groupadd mygroup
[root@host home]# cat /etc/group | grep mygroup
mygroup:x:502:

[root@host home]# groupadd -g 533  mygroup2
[root@host home]# cat /etc/group | grep mygroup2
mygroup2:x:533:

[root@host home]# groupadd -r  mygroup3
[root@host home]# cat /etc/group | grep mygroup3
mygroup3:x:101:

- groupdel : 그룹을 삭제
[root@host home]# groupdel mygroup3
[root@host home]# cat /etc/group | grep mygroup
mygroup:x:502:
mygroup2:x:533:

5. 유저 정보 조회
- id : 사용자의 uid, gid, group을 보여준다.
id [옵션] [사용자명]
옵션
-g : 기본 그룹의 gid를 출력한다.
-G : 사용자가 속한 모든 그룹의 gid를 출력한다.
-u : 사용자의 uid를 출력한다.
-n : 위의 옵션과 함께 사용하여 숫자 대신 이름을 출력한다.

[root@host home]# id root
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
[root@host home]# id -g root
0
[root@host home]# id -G root
0 1 2 3 4 6 10
[root@host home]# id -Gn root
root bin daemon sys adm disk wheel


6. 사용자 정보 수정
- usermod [옵션] 사용자명 : 사용자의 정보를 수정하는 명령어
[root@host home]# usermod -c user2 user2
->user2의 설명을 변경한다.
[root@host home]# usermod -d /home2/user2 -m user2
->user2의 홈디렉토리를 변경하고 기존 파일을 이동한다.
usermod: cannot rename directory /home/user2 to /home2/user2
[root@host home]# usermod -L user2
->user2의 계정을 잠근다. 로그인 불가능
[root@host home]# usermod -U user2
->user2의 계정을 푼다.


7. 사용자 전환
- su [옵션] 사용자명
다른 사용자의 권한으로 shell을 실행한다. 서버에 접속한 상태에서 로그아웃 없이 다른 사용자로 전환 할 수 있다.

옵션 - : 사용자의 환경변수를 읽는다.
사용예 : su - (root유저로 전환한다.)

[root@host ~]# su - casualty
casualty유저로 전환.
.