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유저로 전환.