linux class 1 페이지

본문 바로가기
사이트 내 전체검색


회원로그인

linux class

계정관리

페이지 정보

작성자 admin 작성일15-12-23 12:13 조회217회 댓글0건

본문

계정관리

linux system에는 크게 세 가지 종류의 계정이 있다

root : super user 계정이라고도 하며 관리자 계정으로 거의 모든 권한을 행사할 수 있는 계정
system 계정 : 일반적으로 login은 안되며 system 운영상 필요한 계정
일반user 계정: 시스템 운영목적이 아닌 일반사용자를 위한 계정

계정관련 파일

/etc/passwd, /etc/shadow, /etc/group
- 이 가운데 한 가지 파일이라도 잘못되면 사용자는 정상적으로 login 하지 못할 수 있다.

계정관련 백업파일
/etc/passwd- , /etc/shadow-, /etc/group- : 이 파일은 백업 파일로서 원본데이터가
수정되기 직전에 자동 백업이 된다. 원본인 손상된 경우 이파일을 원본파일에 덮어써서
복구할 수 있다.


ex)
[lee@river lee]$ head -5 /etc/passwd; tail -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash 관리자 계정

bin:x:1:1:bin:/bin:/sbin/nologin 시스템 계정
daemon:x:2:2:daemon:/sbin:/sbin/nologin 시스템 계정
adm:x:3:4:adm:/var/adm:/sbin/nologin 시스템 계정
user1:x:3041:3041::/home/user1:/bin/bash 일반유저계정
user2:x:3042:3042::/home/user2:/bin/csh 일반유저계정

passwd 파일 형식

man -s5 passwd
There is one entry per line, and each line has the
format:
계정이름:암호:UID:GID:코멘트:홈디렉토리:shell

의미 있는 문자열 및 각 숫자는 콜론 문자로 구분되어 있다.
root : 계정명
x : 패스워드 필드 x 로 표시되어 있으면 패스워드가 /etc/shadow 파일에 저장되어 있다는 의미
패스워드를 shadow 파일에 두면 패스워드를 보호할 수 있다.(shadow file 에 대한 접근은 root 만이 가능하다)
0 : 커널이 참조하는 root 사용자의 식별자.
0 : root 사용자가 속한 첫 번째 그룹(primary group)을 나타낸다
root : 단순히 참고하기위한 용도로 사용되며 이 필드는 비어져 있어도 된다
/root : root 사용자의 홈 디렉토리
/bin/bash : login shell


계정관리 명령어
1. useradd (또는 adduser)

ex)
useradd xuser1 : default 옵션으로 계정을 생성
useradd -d /var/user2 xuser2 : 계정 생성시 홈디렉토리를 /var/user2 로.
useradd -d /var/user3 -s /bin/csh xuser3 : 홈디렉토리와 login shell 설정
useradd -e 2015-12-31 -c "hong kildong" xuser4 : 계정만료일과 코멘트필드 설정
useradd -u 1000 xuser5 : 계정의 uid 값 설정(설정안하면 바로위에 계정보다 1이 더해진
uid 값을 할당받게 된다)

2. usermod - 계정정보를 수정
ex)
usermod -s /bin/csh xuser1 : xuser1의 login shell을 변경
usermod -c "chulsoo" xuser2 : xuser2 의 comment 필드 변경
usermod -e '' xuser3 : xuser3 의 계정만료를 무기한으로 설정.

3. userdel : 계정정보삭제
ex)
userdel xuser1 : xuser1 삭제(홈디렉토리는 지워지지 않는다)
userdel -r xuser2 : xuser2 가 삭제되고 홈디렉토리까지 지워진다.

4. useradd 명령의 default 설정 변경
ex)
useradd -D : useradd 명령을 디폴트 옵션 출력
ex) useradd -D
[root /etc]# useradd -D
GROUP=100 : 일반 group id 는 100번부터 할당됨을 의미함.
HOME=/home : 일반계정 홈디렉토리 경로
INACTIVE=-1 : 암호만료가 되더라도 계정을 잠그지 않는다.
EXPIRE= : 계정만료일 값이 설정안되어 있으면 계정만료일 없음.
SHELL=/bin/bash : 로그인 셀
SKEL=/etc/skel : 계정생성시 사용자 디렉토리에 자동 복사되는 파일
CREATE_MAIL_SPOOL=yes : 사용자 계정시 메일파일 자동 생성여부

ex)
useradd -D -b /var -e 2015-12-31 -s /bin/csh : useradd 의 디폴트 옵션을 변경


shadow 파일 포맷

[root@river root]# head -2 /etc/shadow ; tail -2 /etc/shadow
root:$1$0lvCjXwW$JwSLfSuCJGtHebt.0BJGr/:13587:0:99999:7:::
bin:*:13587:0:99999:7:::
user2:!!:13635:0:99999:7:10::
ftp1:$1$xHaNZCYY$kLaYYpY.q7yydEhgxTNum0:13637:0:99999:7:10::

shadow 파일의 각 포맷 역시 도움말 안에 상세한 내용이 나와 있다.

[root@river root]# man -S5 shadow

 SHADOW(5) SHADOW(5)
NAME shadow - encrypted password file
DESCRIPTION shadow contains the encrypted password information for
 user's accounts and optional the password aging information.
Included is
Login name
Encrypted password
Days since Jan 1, 1970 that password was last changed - 가장 최근에 암호를 변경한 날짜
Days before password may be changed - 암호를 변경할 수 없는 기간(암호최소변경주기)
Days after which password must be changed - 암호를 변경해야 하는기간(암호최대변경주기)
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 - 계정 만료일
A reserved field - 사용할 수 없는 필드(나중을 위해서 예약되어 있는 필드)

[root@river root]# head -1 /etc/shadow
root:$1$0lvCjXwW$JwSLfSuCJGtHebt.0BJGr/:13587:0:99999:7:::

root : 계정명
$1$0lvCjXwW$JwSLfSuCJGtHebt.0BJGr : 암호화된 비밀번호
13587 : root 사용자가 패스워드를 마지막으로 변경한 날짜를 1970년 1월 1일 기준으로 계산한 일수이다.
0: 패스워드를 변경할 수 있는 최소한의 일수를 나타낸다. (0 으로 되어 있으면 설정이 되어 있지 않다는 의미로
패스워드를 변경을 언제든지 할 수 있다)
99999 : 패스워드를 반드시 변경해야만 하는 일수이다. (숫자가 이렇게 되어 있으면 설정이 되어 있지 않다는 의미)
7 : 패스워드 만료일이 되기 전에 언제부터 경고메시지를 보여줄 것인가 하는 필드
: : 유예기간 - 패스워드 만료일까지 사용자가 패스워드를 변경하지 않았다면 계정을 바로 잠그도록 하는 것이 아니라 이 기간 동안은 패스워드를 변경할 수 있도록 하겠다는 것이다. 유예기간동안에도 패스워드를 변경하지 않는다면 그 계정은 잠기게 되므로 사용하지 못한다.
: : 계정이 expire 되는 날을 뜻한다.
: 매 마지막 필드는 나중을 위해서 예약되어 있는 필드로서 사용되지 않는다.

* finger 명령으로 passwd 파일의 정보를 볼 수 있다
ex)
[root /etc]# finger xuser1
Login: xuser1 Name: (null)
Directory: /home/xuser1 Shell: /bin/bash
Never logged in.
No mail.
No Plan.

password aging 설정
- 주기적으로 암호를 강제로 변경하게 하여 암호를 안전하게
보호하도록 하는 목적으로 설정한다. password aging 설정은 chage 명령어로 한다.
ex)
[root /etc]# useradd xuser10
[root /etc]# tail -1 /etc/shadow
xuser10:!!:16087:0:99999:7:::
<-- password aging 설정이 안되어 있다. 99999 일이 암호최대변경주기인데
숫자가 너무 커서 password aging 설정이 안되어 있음.

password aging 설정은 chage 명령어로 하며 대화식 설정과 비대화식 설정이 있다.

1. 대화식 설정
ex)
[root /etc]# chage xuser10
xuser10의 사용기한 정보를 바꿉니다
새로운 값을 넣거나, 기본값을 원하시면 엔터를 치세요

 열쇠글의 최소 유효 기간 [0]: 값을 입력하지 않고 엔터치면 왼쪽에 있는 디폴트값 0 이 입력되며 그것은 설정안함을 의미한다.
열쇠글의 최대 유효 기간 [99999]: 30 <-- 30일경과하기전에 암호를 변경해야 함을 의미한다.
마지막으로 열쇠글을 바꾼 날 (YYYY-MM-DD) [2014-01-17]: <--- 이 부분은 값을 입력할 필요가 없다. 암호를 가장 최근에 변경한날.
열쇠글 사용만료 예고 [7]: <-- 암호 만료일 일주일전부터 경고로 알려주는 것을 의미함.
열쇠글이 유효하지 않음 [-1]: 10 <--- 유예기간을 10일로 설정. 암호가 만료되어도 이 설정기간안에 암호를 변경하면 계정을
 계속 사용할 수 있다.
*. 열쇠글이 유효하지 않음이 0으로 설정된 경우 ==> 암호만료시 계정을 바로 사용못하게 된다.
-1 로 설정된 경우 ==> 암호만료가 되어도 계정을 잠그지 않는다.

계정 사용만료일(YYYY-MM-DD) [1969-12-31]: <--- 계정만료일. 값을 입력하지 않으면 계정만료일 설정안함이 되고 계정사용기간은 무기한.
[root /etc]# tail -1 shadow
xuser10:!!:16087:0:30:7:10::
[root /etc]#

2. 비대화식 설정 - chage 명령의 옵션을 이용하여 설정.
[root /etc]# chage --help
사용법: chage [옵션] <사용자>

옵션:
-d, --lastday <최근날짜> 최근 열쇠글을 변경한 날짜를 <최근날짜>로 합니다.
-E, --expiredate <만료날짜> 계정 만료날짜를 <만료날짜>로 합니다.
-h, --help 이 도움말을 표시하고 끝냅니다.
-I, --inactive <비활성화기간> 만료된 후 비활성화 기간을
<비활성화기간>으로 합니다
-l, --list 계정의 사용기한 정보를 표시합니다.
-m, --mindays <최소날수> 열쇠글을 바꾸기 전의 최소 날 수를 <최소날수>로
 합니다.
-M, --maxdays <최대날수> 열쇠글을 바꾸기 전의 최대 날 수를 <최대날수>로
 합니다.
-W, --warndays <경고날수> 만료 경고 기간을 <경고날수>으로 합니다.

ex)
[root /etc]# useradd xuser20
[root /etc]# chage -M 30 -W 5 -I 10 -E 2015-12-31 xuser20
[root /etc]# tail -1 shadow
xuser20:!!:16087:0:30:5:10:16800:

ex)
[root@river root]# finger root
Login: root Name: root
Directory: /root
Shell: /bin/bash
On since Mon Apr 23 21:40 (KST) on tty1 5 days 13 hours idle
Last login Wed Apr 25 17:01 (KST) on pts/0 from 211.54.45.118
New mail received Sun May 6 04:02 2013 (KST) Unread since Mon Mar 12 11:05 2013 (KST)
No Plan.

[root@river root]# chage -l root
최소: 0
최대: 99999
경고: 7
유효하지 않음: -1
마지막 변경: 3월 15, 2007
패스워드 만기: 불가
패스워드가 유효하지 않음:
계정 만기:불가


group 파일

[root /etc]# head -n 2 group ; tail -n 2 group
root:x:0:root,xuser5
bin:x:1:root,bin,daemon
zuser10:x:521:
zuser20:x:522:

=> 각 필드(항목)이 의미하는 바는 아래와 같다.
root : group 이름
x : 패스워드 필드를 뜻한다. (요즘은 쓰이지 않는다. 의미 없는 필드이다)
0 : root 그룹의 식별자
root,xuser5 : root 그룹에 속해있는 사용자. 그룹에 속해있는 사용자가 하나이상일 경우에는 사용자사이를
콤마로 구분

그룹 추가 및 삭제, 변경
ex)
[root@river root]# groupadd
usage: groupadd [-g gid [-o]] [-r] [-f] group
ex)
groupadd group1 : /etc/group 파일 맨아래에 group1 이 추가된다.

그룹정보 변경
[root /etc]# groupmod
사용법: groupmod [-g GID [-o]] [-n 이름] 그룹명

ex) groupmod -n group10 group1 : group1을 group10으로 group 이름 변경

그룹정보 삭제
[root /etc]# groupdel
사용법: groupdel 그룹명

ex) groupdel group1
*. 주의 - 사용자가 주그룹으로 소속되어 있는 그룹은 삭제되지 않는다.
모든 사용자는 반드시 한개의 주그룹에 속해야 하기때문이다.

ex)
[root /etc]# groupadd groupA
[root /etc]# usermod -g groupA xuser1
[root /etc]# groupdel groupA
groupdel: 사용자의 주요 그룹은 지울 수 없습니다.

사용자 계정 추가 및 수정시 그룹관련 옵션
ex)
[root /etc]# useradd xuser2 : 계정을 그룹옵션없이 디폴트로 만들면
[root /etc]# tail -1 group group 파일에 생성계정과 똑 같은 그룹이 만들어지고
xuser2:x:529: 사용자는 그 그룹에 속하게 된다.
[root /etc]# tail -1 passwd
xuser2:x:520:529::/home/xuser2:/bin/bash
[root /etc]# groups xuser2
xuser2 : xuser2
[root /etc]#

ex2)
[root /etc]# useradd -g groupA -G groupB,groupC xuser3
[root /etc]# groups xuser3
xuser3 : groupA groupB groupC

ex3)
[root /etc]# useradd -G groupC xuser4
[root /etc]# groups xuser4
xuser4 : xuser4 groupC
[root /etc]#
==> 보조그룹옵션만 쓰고 계정을 만들면 위에 결과처럼
주그룹은 자신의 계정명과 같은 그룹에 속하게 된다. 

 
 
 
 
 


관리자 15-04-18 12:27

 121.160.41.128 답변 수정 삭제 
 
계정 생성 실습 예제.
* 아래와 같은 조건으로 계정을 생성하시오.
---------------------------------------------------------------------
xuser1 계정 생성 조건  *xuser1계정 주그룹:groupX
home : /var/xuser1    *보조그룹:groupY,groupZ
shell : /bin/csh
comment : hong kildong
계정만료일 : 2015-12-31
암호설정.
---------------------------------
password aging 설정
암호최대변경주기 : 50일
경고일수:10일
유예기간:20일 ,
   
 
 
 
 
 
 


관리자 15-04-18 12:31

 121.160.41.128 답변 수정 삭제 
 
풀이)
useradd  -d /var/xuser1 -s /bin/csh -c "hong kildong" -e 2015-12-31  xuser1
그런다음 passwd xuser1 <-- 암호설정.
password aging 설정은 chage  명령으로 대화식이나 비대화식으로 설정할수 있다.
비대화식으로 하는경우에는 chage --help 로 옵션 확인후 -->
chage -M 50 -W 10 -I 20 xuser1  --> 확인은 chage -l xuser1
그다음 groupadd groupX
groupadd groupY
groupadd groupZ
usermod -g groupX  -G groupY,groupZ  xuser1  ---> 확인은 groups xuser1

댓글목록

등록된 댓글이 없습니다.


접속자집계

오늘
51
어제
61
최대
611
전체
452,948
개인정보취급방침 서비스이용약관 twoseven.kr All rights reserved.
상단으로