본문으로 바로가기

사용자 그룹 관리

category Linux/Linux Server 2017. 9. 5. 17:26
  • 사용자 관리

-사용자 정보 파일

/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


  • 그룹 관리
그룹 정보 파일
/etc/group

# cat /etc/group | head -3

 

 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