- 사용자 관리
-사용자 정보 파일
/etc/passwd 사용자의 기본적인 정보가 저장된 파일
/etc/shadow 사용자의 암호가 저장된 파일
# cat /etc/passwd | grep root
root:x:0:0:root:/root:/bin/bash
-필드 해석
필드 | 설 명 |
root | 사용자 이름 (유일해야한다. 숫자가 먼저 올 수 없다.) |
x | 사용자 암호(보안상 /etc/shadow 파일에 암호를 옮겨 놓았음) |
0 | 사용자 아이디(UID) ( 운영체제가 확인하는 부분 ) |
0 | 그룹 아이디(GID), 사용자의 주 그룹(Primary Group) |
root | 설명 정보(Comment) |
/root | 홈 디렉토리 |
/bin/bash | 로그인 쉘 |
# cat /etc/shadow | grep root
root:$1$z0vZjMTK$pp5tRxbS9k9CWhimjHfZA.:16110:0:99999:7:::
-필드 해석
필드 | 설 명 |
root | 사용자 이름(login name) |
$1$z0vZjMTK$pp5tRxbS9k9CWhimjHfZA. | 사용자 암호(encrypted password) $1$ : 암호화 알고리즘 /* 1= md5 (hash 알고리즘)*/ $z0vZjMTK$ : salt key $pp5tRxbS9k9CWhimjHfZA. : 암호화된 암호 |
14642 | 암호변경일(days since Jan 1, 1970 that password was last changed) |
0 | 암호를 변경할 수 없는 최소 날짜 (days before password may be changed) |
99999 | 암호를 사용할 수 있는 최대 날짜 (days after which password must be changed) |
7 | 사용자 암호 만료되기전 사용자에게 경고 메세지를 주는 기간 (days before password is to expire that user is warned) |
| 사용자 로그인하지 않으면 암호를 비활성화 시키는 기간 (days after password expires that account is disabled) |
| 사용자 암호 만료 기간, 절대로 넘을 수 없는 기간 (days since Jan 1, 1970 that account is disabled) |
| 아직 기능이 없음 |
-사용자 관리 명령어
useradd CMD
usermod CMD
userdel CMD
-useradd 명령어
[명령어 형식] /* /etc/passwd 파일을 직접 편집해서 사용할 수 있다. */
# useradd -u 1000 -g users -c "Test User" -d /users/user01 -s /bin/ksh user01
# useradd -d /users/user01 user01
# useradd -M -d /oracle oracle (# chown -R oracle:oinstall /oracle)
-M 홈디렉토리를 생성하지 않는다.
[참고] 홈계정 생성시 참조되는 디렉토리 및 파일
사용자 계정이 생성될때 /etc/skel 디렉토리에서 파일이 복사된다.
복사된 파일은 사용자 계정의 권한으로 바뀐다.
# ls -al /etc/skel /home/user05
|
/etc/skel: total 56K drwxr-xr-x 3 root root 4.0K Feb 3 01:56 . drwxr-xr-x 109 root root 12K Mar 1 20:05 .. -rw-r--r-- 1 root root 33 Jan 22 2009 .bash_logout -rw-r--r-- 1 root root 176 Jan 22 2009 .bash_profile -rw-r--r-- 1 root root 124 Jan 22 2009 .bashrc drwxr-xr-x 4 root root 4.0K Feb 18 09:18 .mozilla /home/user05: total 32K drwx------ 3 user04 user04 4.0K Mar 25 17:13 . drwxr-xr-x 4 root root 4.0K Mar 1 20:05 .. -rw-r--r-- 1 user04 user04 33 Mar 1 20:05 .bash_logout -rw-r--r-- 1 user04 user04 176 Mar 1 20:05 .bash_profile -rw-r--r-- 1 user04 user04 124 Mar 1 20:05 .bashrc drwxr-xr-x 4 user04 user04 4.0K Mar 1 20:05 .mozilla |
|
- skel 에 있는 파일을 이용해 생생되는 사용자에 기능을 추가할 수 있다.
# vi /etc/skel/.bashrc
|
# .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions alias ll='ls -lFh --color=tty' <----- 새로운 라인 추가 |
|
-> 이후에 만들어 지는 사용자는 ll 이라는 alias가 자동 설정된다.
-useromod 명령어
(명령어 사용예)
# usermod -u 2000 user01
# usermod -s /bin/ksh user01
# usermod -g 10 -c "Test Group" user01
# usermod -l user03 -d /home/user03 -m user01 (-l : login name, -m : move directory)
[참고] 사용자의 이름을 바꿀때 그룹 명 변경
그 이름에 맞는 그룹을 새로 만들거나 그룹 이름도 새로 바꿔주어야한다.
(X) # usermod -l user03 -d /home/user03 -m user01
(O) # groupadd user03 or # groupmod -n user03 user01
# usermod -l user03 -g user03 -d /home/user03 -m user01
# groupdel user01
-userdel 명령어
(명령어 사용예)
# userdel user01 /* /etc/passwd, /etc/shadow 정보 삭제 */
# userdel -r user01 /* /etc/passwd, /etc/shadow + Home Directory 삭제 + /var/spool/mail/$USER */
[참고] 다중 사용자 추가
# vi /root/bin/passwd.txt
user100 user100 <- (사용자) (암호)
user101 user101
# vi /root/bin/useradd.sh
|
#!/bin/bash cat /root/bin/passwd.txt | while read USER_NAME PASSWD /* read = scanf */ do useradd $USER_NAME echo $PASSWD | /usr/bin/passwd --stdin $USER_NAME done |
|
-> passwd.txt 파일을 하나씩 읽어들여 끝날때까지 실행한다.
첫번째 인자를 USER_NAME 으로 두번째 인자를 PASSWD로 입력받는다
useradd 명령어 뒤에 USER_NAME 인자를 두고
passwd 명령어는 두번의 입력을 해야하므로 --stdin 을 옵션으로 한번만 입력받게 한다.
# vi add.sh
passwd.txt 파일도 자동으로 생성되는 스크립트를 만들어보자
|
#!/bin/bash START=100 END=140 while [ $START -le $END ] /* -le : less equal <=*/ do echo "user$START user$START" >> /root/bin/passwd.txt START=`expr $START + 1` done |
-> user100 ~ user140 까지 passwd.txt 에 적는다.
- useradd 명령어 실행시 사용되는 기본 설정값 바꾸기
# useradd -D
# cat /etc/default/useradd
- 그룹 관리
|
root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon |
|
-> 그룹이름 : x : GID : 그룹 (Secondary Group)
[명령어 형식]
groupadd
# groupadd -g 1000 class1 /* GID 설정*/
gourpmod
# groupmod -n class2 calss1 /* 그룹 이름 변경*/
# groupmod -g 1001 class2 /* GID 변경*/
gourpdel
# groupdel class1
- 패스워드 사용 제한 관리 (Password Aging)
[명령어 형식]
# chage user
[예]
# chage -M 30 -W 7 user01 /* MAX -W WARN 암호를 30일까지 사용할수 있고 그전 7일동안 암호변경 경고 알림이 뜬다*/
# chage -E 2010-03-30 user01 /* EXPIRE DATE 2010-03-30 일까지 사용가능하다.*/
# chage -l user01
( /etc/shadow )
|
user01:$1$eG0hsAqw$Cfawvh5OsIye2rKYcRPH.0:Last Change:MIN:MAX:WARN:INATIVE:Expire Date: user01:$1$eG0hsAqw$Cfawvh5OsIye2rKYcRPH.0:14650:0:99999:7::: user01:$1$eG0hsAqw$Cfawvh5OsIye2rKYcRPH.0:14650:30:90:7:30:15000: |
|
Last Change: days since Jan 1, 1970 that password was last changed /* 암호 변경된 날짜 */
MIN: days before password may be changed /* 암호를 변경할 수 없는 최소 날짜 */
MAX: days after which password must be changed /* 암호를 사용할 수 있는 최대 날짜 반복적인 값 */
WARN: days before password is to expire that user is warned /* 경고메시지 주는 기간 */
INACTIVE: days after password expires that account is disabled /* MAX 넘고 암호가 잠기기 까지의 기간 */
EXPIRE DATE: days since Jan 1, 1970 that account is disabled /* 암호를 사용할 수 있는 최대 날짜 ( 절대 넘을 수 없다.)*/
■ Oracle DB(oracle) 사용자 추가
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba -d /oracle oracle
[참고] useradd 명령어 수행시 에러 발생되는 경우
# useradd -g oinstall -G dba -d /oracle oracle
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
# ls -ld /oracle
# chown -R oracle:oinstall /oracle
# passwd oracle
# su - oracle
$ id
$ pwd
$ exit
■ WAS(Web Application Server) 사용자 추가
# groupadd wasgroup
# useradd -g wasgroup -d /was wasuser
# passwd wasuser
# su - wasuser
$ id
$ pwd
$ exit
'Linux > Linux Server' 카테고리의 다른 글
백업관리 (0) | 2017.09.06 |
---|---|
스케줄링 관리 (0) | 2017.09.05 |
부팅과정 (0) | 2017.09.04 |
Software 관리_Source file (0) | 2017.09.01 |
Software 관리_YUM (0) | 2017.09.01 |