사용자 계정 관리
- 사용자가 시스템에 접근하려면 사용자 계정이 반드시 필요
- 사용자 계정은 시스템 관리자가 만들어주어야 하는 것
사용자 계정 생성하기 |
- 사용자 계정을 생성 할 때는 'useradd' 나 'adduser' 명령을 사용 - 둘 중 어느 것을 사용해도 좋음 - 'useradd' 명령을 사용할 때 지정하는 옵션은 '/etc/passwd' 파일에 저장되는 각 항목에 해당
|
useradd |
- 기능 : 사용자 계정을 생성 - 형식 : useradd [옵션] 로그인 ID - 옵션 : * '-u uid' : UID 를 지정 * '-g gid' : 기본 그룹의 GID를 지정 * '-d 디렉터리명' : 홈 디렉터리를 지정 * '-c 설명' : 사용자의 이름 등 부가적인 설명을 지적 * '-D' : 기본 설정 값을 설정하거나 출력 * '-e 유효 기간' : EXPIRE 항목을 설정( YYYY-MM-DD). * '-f 비활성 일수' : INACTIVE 항목을 설정 * '-k 디렉터리' : 계정 생성시 복사할 초기 파일이나 디렉터리를 설정해 놓은 디렉터리를 지정 * '-m' : 홈 디렉터리를 생성 - 사용 예 : * 'useradd user2' * 'useradd -m -d /home/user2 user2' * 'useradd -m -d /home/user2 -u 2000 -g 100 -s /bin/ksh user2' * 'useradd -D -d /export/home' |
1) 옵션 없이 계정 생성하기 - 아무 옵션없이 useradd 명령으로 계정을 만들고 홈 디렉터리와 '/etc/passwd' 파일을 확인해 보면, 홈 디렉터리를 생성되지 않고 '/etc/passwd' 파일에 계정이 추가되었음을 확인 가능 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ ls /home - 사용자의 홈 디렉터리를 생성하려면 '-m' 옵션을 지정해야함 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo useradd -m user22 ====================================================================== - '/etc/shadow' 파일을 확인해보면 'user2' 와 'user22' 계정에 암호가 설정되지 않고 '!' 로 잠겨있음 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo tail /etc/shadow ====================================================================== - 시스템 관리자는 계정을 추가했을때 반드시 초기 암호를 바로 설정해야함 - 그 후 사용자에게 초기 암호를 바꿔주고 바꾸도록 권고 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo passwd user22 ====================================================================== 2) 기본 설정 값 확인하기 : '-D' 옵션 - 사용자 계정을 설정할 때 참고하는 기본 설정 값은 '-D' 옵션으로 확인 가능 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ useradd -D ====================================================================== * GROUP : 기본 등록 그룹의 GID로 100은 users 그룹 * HOME : 홈 디렉터리의 생성 위치 * INACTIVE : => -1 이면 INACTIVE 기능이 비활성화됨 => 0 이면 암호가 만료되자마자 바로 계정이 잠김 * EXPIRE : 계정 종료일을 지정 * SHELL : 기본 로그인 쉘을 지정 * SKEL : 홈 디렉터리에 복사할 기본 환경 파일의 위치 * CREATE_MAIL_SPOOL : 메일 디렉터리의 생성 여부를 지정 위의 항목들은 '/etc/default/useradd' 파일에 저장되어 있음 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ cat /etc/default/useradd ====================================================================== - vi 로 파일을 수정할 수 있지만, useradd -D 명령으로 수정하는 것이 좋음 - D 다음에 -b(HOME), -e(EXPIRE), -f(INACTIVE), -g(GID), -s(SHELL) 를 지정하여 수정 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo useradd -D -s /bin/bash ======================================================================
- 사용자 계정을 생성할때 시스템 운영 정책에 따라 사용자 계정의 홈 디렉터리에서 공통으로 배포해야 할 파일이 있을 경우가 있음 - 예를 들어 .bash_profile 과 같은 초기화 파일을 공통으로 작성해 놓고 사용자 계정에 복사하는 것 - '/etc/skel' 디렉터리에 파일을 만들어 놓으면 사용자 계정 생성시에 자동으로 복사가 됨 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ ls -a /etc/skel ====================================================================== 4) 옵션을 지정하여 사용자 계정 생성하기 - 만약 UID 2000번이 이미 있다는 메시지가 출력될 경우 다른 번호로 지정 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo useradd -m -d /home/user3 -u 2000 -g 1000 -G 3 user3 ====================================================================== - '-e' 와 '-f' 옵션을 사용하여 EXPIRE 와 INACTIVE 의 값을 지정. '-c' 옵션으로 설명 부분도 값 지정 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo useradd -m -e 2014-12-31 -f 5 -c "user4 test" user4 ====================================================================== - 생성된 계정 정보 확인시 UID가 2001번. - useradd 는 기존 UID 중 가장 큰 값에 1을 더하여 UID 를 지정 |
사용자 계정 정보 수정하기 |
- usermod 명령은 사용자 계정 정보를 수정할 때 사용 - UID, GID, 홈 디렉터리, 기본 쉘, 설명, 로그인 ID 등 계정과 관련된 모든 정보를 수정 - 패스워드 에이징 정보 중 INACTIVE 와 EXPIRE 값을 지정할 수 있음 |
usermod |
- 기능 : 사용자 계정 정보를 수정 - 형식 : usermod [옵션] 로그인 ID - 옵션 : * -u uid : UID를 수정 * -o : UID 의 중복을 허용 * -g gid : 기본 그룹을 수정 * -G gid : 2차 그룹을 수정함 * -d 디렉터리명 : 홈 디렉터리를 수정 * -s 쉘 : 기본 쉘을 수정 * -c 설명 : 부가적인 설명을 수정 * -f inactive : 계정 비활성화(INACTIVE) 날짜를 수정 * -e expire : 계정 만료(EXPIRE) 날짜를 수정 * -l 새 로그인 이름 : 새 로그인 이름으로 계정 이름을 바꿈 - 사용 예 : usermod -u 1111 user1, usermod -l user111 user1, usermod -d /home/user111 user1 |
1) UID 변경하기 : -u 옵션 - 사용자 계정의 UID는 -u 옵션을 사용하여 바꿀 수 있음 ====================================================================== user22:x:1002:1002::/home/user22: ====================================================================== - 사용자 계정의 UID는 '-o' 옵션을 사용하면 중복할 수 있음 - UID를 같은 번호로 지정하는 것은 아주 특별한 경우에만 허용해야.. - 리눅스는 UID가 같으면 로그인 ID가 달라도 같은 사용자로 인식 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ grep 1001 /etc/passwd 2) 홈 디렉터리 변경하기 : -d 옵션 - 사용자 계정의 홈 디렉터리를 변경하려면 '-d' 옵션을 사용 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ grep user4 /etc/passwd ====================================================================== - '/etc/passwd' 파일의 설정 값만 바꾼 것으로, 실제로 '/home/user41' 디렉터리가 생성되지 않음 - 별도의 수작업으로 디렉터리르 만들고 이전 파일들을 옮겨야 함 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ ls -l /home/user41 3) 로그인 ID 변경하기 : -l 옵션 - '-l' 옵션으로 사용자 계정의 로그인 ID를 바꿀 수 있음 - 로그인 ID를 바꿀 때는 홈 디렉터리도 같이 바꿔주는 것이 좋음 - 기존의 홈 디렉터리에 있던 파일들이 자동으로 옮겨지지는 않으므로 별도로 디렉터리를 생성하고 이동 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ grep user4 /etc/passwd |
패스워드 에이징 관련 명령 |
||
- 패스워드 에이징은 'useradd', 'usermod', 'passwd', 'chage' 명령으로 설정 - 'chage' 는 패스워드 에이징을 관리하는 별도의 명령 |
||
패스워드 에이징 관련 명령 |
||
항목 |
useradd, usermod, passwd 명령 |
chage 명령 |
MIN |
passwd -n 날수 |
chage -m |
MAX |
passwd -x 날수 |
chage -M |
WARNING |
passwd -w 날수 |
chage -W |
INACTIVE |
useradd -f 날수 usermod -f 날수 |
chage -I(대문자 i) |
EXPIRE |
useradd -e 날짜 (YYYY-MM-DD) usermod -e 날짜 (YYYY-MM-DD) |
chage -E |
1) 기존 명령으로 패스워드 에이징 변경하기 - 'usermod' 명령과 'passwd' 명령으로 MIN, MAX, WARNING, INACTIVE, EXPIRE 설정 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo grep user3 /etc/shadow - MIN은 2일, MAX는 100일, WARNING은 5일, INACTIVE는 10일, EXPIRE는 2014년 10월 31일로 설정 2) chage 명령으로 패스워드 에이징 변경하기 - chage 명령을 사용 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo grep user4 /etc/shadow 3) chage 명령으로 패스워드 에이징 설정 내용 확인하기 - chage 명령에는 설정 내용을 확인하는 ' -l(소문사 L)' 옵션과 사용자가 암호를 변경한 마지막 날짜를 알려주는 '-d' 옵션이 있음 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo chage -l user3 ====================================================================== |
사용자 계정 삭제하기 |
- userdel 명령은 사용자 계정을 삭제함 - 사용자 계정을 삭제할 때 홈 디렉터리를 함께 삭제할 것인지를 결정 |
userdel |
- 기능 : 사용자 계정을 삭제 - 형식 : userdel [옵션] 로그인 ID - 옵션 : * '-r' : 홈 디렉터리와 메일 디렉터리를 삭제함 * '-f' : 사용자가 로그인 중이어도 강제로 삭제함 - 사용 예 : userdel user4, userdel -r user4 |
1) 사용자 계정만 삭제하기 - userdel 명령에서 '-r' 옵션을 지정하지 않으면 사용자 계정만 삭제 ====================================================================== user2:x:1001:1001::/home/user2: 2) 사용자 계정과 홈 디렉터리 삭제하기 - userdel 명령에서 '-r' 옵션을 지정하면 사용자 계정과 홈 디렉터리가 함께 삭제됨 ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ ls /home - 홈 디렉터리가 아닌 다른 곳에 위치한 사용자 계정 소유의 파일이 있을 수 있음 - '-r' 옵션은 홈 디렉터리는 삭제하지만 홈 디렉터리 이외의 다른 디렉터리에 있는 파일은 삭제하지 않음 - 관리자는 find 명령으로 해당 계정 소유의 파일을 모두 찾아 삭제하는 것이 바람직 - find 명령을 사용하면 좋음 * 'find / -user UID -exec rm -r {} \; ex) ====================================================================== sjw@sjw-HP-Mini-110-3500:~$ sudo find / -user 2001 -exec rm -r {} \; |