본문 바로가기
Linux

8일차 Shadow , Group 설정, 문제풀이

by 삼성그룹이장 2014. 6. 16.

Shadow 설정

[root /etc]$ head -n 1 shadow
root:$1$xGRfw1g1$3pY17K4KUZNU41dTbGj5q1:16225:0:99999:7:::    #(암호를 99999일동안 사용가능) (7일은 암호 만료전 7일 전부터 알려 준다.)


[root /etc]$ bc   (계산기)
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
2+2
4
99999/365        
273   

(interrupt) use quit to exit.


(interrupt) use quit to exit.

(interrupt) use quit to exit.
quit
[root /etc]$ date     #암호 변경시 시간 확인
2014. 06. 16. (월) 19:57:22 KST
[root /etc]$

#password aging 설정

암호최소변경주기 : 3일

암호최대변경주기 : 30일  

경보일수 : 7일

유예기간(inactive)  : 10일 (대변경주기(30일)을 이 지나도 유예기간동안은 암호를 변경 안해도 잠기지 않는다.)

계정만료기간 : 2015-12-31



[root /etc]$ chage -l zuser1
마지막으로 열쇠글을 바꾼 날                                     : 6월 16, 2014
열쇠글 만료                                     :안함
열쇠글이 비활성화 기간                                  :안함
계정 만료                                               :안함
열쇠글을 바꿀 수 있는 최소 날 수                : 0
열쇠글을 바꿔야 하는 최대 날 수         : 99999
열쇠글 만료 예고를 하는 날 수           : 7

[root /etc]$ chage zuser1   #대화식으로 변경하기
zuser1의 사용기한 정보를 바꿉니다
새로운 값을 넣거나, 기본값을 원하시면 엔터를 치세요

        열쇠글의 최소 유효 기간 [0]: 3            # 0 유효기가 없음
        열쇠글의 최대 유효 기간 [99999]: 30    # 99999는 따지고 보면 무제한
        마지막으로 열쇠글을 바꾼 날 (YYYY-MM-DD) [2014-06-16]:      # 암호를 마지막으로 변경한 날짜
        열쇠글 사용만료 예고 [7]: 7      # 만료예정일
        열쇠글이 유효하지 않음 [-1]: 10    # -1 로 할경우 유예기간 없이 바로 계정 잠김
        계정 사용만료일(YYYY-MM-DD) [1969-12-31]: 2015-12-31
[root /etc]$

다른계정 변경

login as: user1
user1@192.168.10.3's password:
Last login: Mon Jun 16 19:37:01 2014 from 192.168.10.1
[user1 /home/user1]$ ssh -l zuser1 localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
RSA key fingerprint is 17:e7:f6:84:49:b5:b2:90:9d:f3:d8:3b:3f:d2:fe:3b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
zuser1@localhost's password:
[zuser1@centos ~]$

[zuser1@centos ~]$ passwd zuser1   (root 계정만 가능)
passwd: Only root can specify a user name.
[zuser1@centos ~]$ passwd   (최소암호 3일 이라서 바꾸지 못함)
Changing password for user zuser1.
Changing password for zuser1
(current) UNIX password:
You must wait longer to change your password
passwd: Authentication token manipulation error
[zuser1@centos ~]$  

# 대화식 말도 다른 방식

[root /home]$ chage zuser2  #대화식으로 일다는 테스트 합세요.
zuser2의 사용기한 정보를 바꿉니다
새로운 값을 넣거나, 기본값을 원하시면 엔터를 치세요

        열쇠글의 최소 유효 기간 [0]: 3
        열쇠글의 최대 유효 기간 [99999]: 30
        마지막으로 열쇠글을 바꾼 날 (YYYY-MM-DD) [2014-06-16]:
        열쇠글 사용만료 예고 [7]: 7
        열쇠글이 유효하지 않음 [-1]: 10
        계정 사용만료일(YYYY-MM-DD) [1969-12-31]: 2015-12-31
[root /home]$
[root /home]$
[root /home]$ chage -l zuser2
마지막으로 열쇠글을 바꾼 날                                     : 6월 16, 2014
열쇠글 만료                                     : 7월 16, 2014
열쇠글이 비활성화 기간                                  : 7월 26, 2014
계정 만료                                               :12월 31, 2015
열쇠글을 바꿀 수 있는 최소 날 수                : 3
열쇠글을 바꿔야 하는 최대 날 수         : 30
열쇠글 만료 예고를 하는 날 수           : 7
[root /home]$ 진짜 수동으로 변경

[root /home]$ chage -l user3
마지막으로 열쇠글을 바꾼 날                                     : 6월 05, 2014
열쇠글 만료                                     :안함
열쇠글이 비활성화 기간                                  :안함
계정 만료                                               :안함
열쇠글을 바꿀 수 있는 최소 날 수                : 0
열쇠글을 바꿔야 하는 최대 날 수         : 99999
열쇠글 만료 예고를 하는 날 수           : 7
[root /home]$ grep -w user3 /etc/shadow
user3:$1$3rry/ONo$HMIjU9AkWuEtx11RcFAVY1:16226:0:99999:7:::
[root /home]$ chage -m 3 -M 30 -W 7 -I 11 -E 2015-12-31 user3
[root /home]$ grep -w user3 /etc/shadow
user3:$1$3rry/ONo$HMIjU9AkWuEtx11RcFAVY1:16226:3:30:7:11:16800:
[root /home]$ chage -l user3
마지막으로 열쇠글을 바꾼 날                                     : 6월 05, 2014
열쇠글 만료                                     : 7월 05, 2014
열쇠글이 비활성화 기간                                  : 7월 16, 2014
계정 만료                                               :12월 31, 2015
열쇠글을 바꿀 수 있는 최소 날 수                : 3
열쇠글을 바꿔야 하는 최대 날 수         : 30
열쇠글 만료 예고를 하는 날 수           : 7
[root /home]$


Group 설정

[root /etc]$ head -n 3 group ; tail -n 2 gorup
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
tail: cannot open `gorup' for reading: 그런 파일이나 디렉토리가 없음
[root /etc]$ head -n 3 group ; tail -n 2 group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
zuser1:x:509:
zuser2:x:510:
[root /etc]$ useradd zuser4
[root /etc]$ tail -n 1 passwd shadow group
==> passwd <==
zuser4:x:512:512::/home/zuser4:/bin/bash

==> shadow <==
zuser4:!!:16237:0:99999:7:::

==> group <==
zuser4:x:512:
[root /etc]$ wc -l passwd shadow group
  51 passwd
  51 shadow
  62 group
 164 합계

[root /etc]$ head -n 2 group ; tail -n 2 group
root:x:0:root           # root:그룹이름; x:암호저장(초기버전에서 사용 지금은 형식상); 0 :gid(주민번호와 같음) root계정이 포함되어 있다.
bin:x:1:root,bin,daemon  # root,bin,daemon : bin 그룹에 속해 있다..
zuser3:x:511:
zuser4:x:512:


[root /etc]$

[root /etc]$ tail -2 passwd
zuser3:x:511:511::/home/zuser3:/bin/bash   (zuser3은 511 그룹이다.)
zuser4:x:512:512::/home/zuser4:/bin/bash
[root /etc]$ grep 511 group  (511 그룹을 검색하면 zuser3 그룹에 있다.)
zuser3:x:511:
[root /etc]$
[root /etc]$ tail -1 group
zuser4:x:512:
[root /etc]$ tail -1 passwd
zuser4:x:512:512::/home/zuser4:/bin/bash
[root /etc]$ useradd --help
Usage: useradd [options] LOGIN

Options:
  -b, --base-dir BASE_DIR       base directory for the new user account
                                home directory
  -c, --comment COMMENT         set the GECOS field for the new user account
  -d, --home-dir HOME_DIR       home directory for the new user account
  -D, --defaults                print or save modified default useradd
                                configuration
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP for the new user account
  -G, --groups GROUPS           list of supplementary groups for the new
                                user account
  -h, --help                    display this help message and exit
  -k, --skel SKEL_DIR           specify an alternative skel directory
  -K, --key KEY=VALUE           overrides /etc/login.defs defaults
  -m, --create-home             create home directory for the new user
                                account
  -l,                       do not add user to lastlog database file
  -M,                       do not create user's home directory(overrides /etc/login.defs)
  -r,                       create system account
  -o, --non-unique              allow create user with duplicate
                                (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new user
                                account
  -s, --shell SHELL             the login shell for the new user account
  -u, --uid UID                 force use the UID for the new user account
  -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping

[root /etc]$
[root /etc]$
[root /etc]$
[root /etc]$ useradd -g user1 zuser5
[root /etc]$
[root /etc]$ tail -2 passwd
zuser4:x:512:512::/home/zuser4:/bin/bash
zuser5:x:513:500::/home/zuser5:/bin/bash
[root /etc]$
[root /etc]$
[root /etc]$ grep 500 group
user1:x:500:
[root /etc]$ griyos zuser5
-bash: griyos: command not found
[root /etc]$ grep zuser5

[root /etc]$ grep 500 group
user1:x:500:
[root /etc]$
[root /etc]$
[root /etc]$ groupadd group1
[root /etc]$ groupadd group2
[root /etc]$ groupadd group3
[root /etc]$ tail -4 group
zuser4:x:512:
group1:x:513:
group2:x:514:
group3:x:515:
[root /etc]$ useradd -G group2,group3 zuser7   (주그룹 하고 만든 그룹2 개해서 총 3개 그룹에 속한다.)
[root /etc]$ groups zuser7  (3개다.)
zuser7 : zuser7 group2 group3
[root /etc]$

[root /etc]$ tail -1 passwd
zuser7:x:514:516::/home/zuser7:/bin/bash
[root /etc]$ grep 513 group
group1:x:513:
[root /etc]$ tail -4 group
group1:x:513:
group2:x:514:zuser7
group3:x:515:zuser7
zuser7:x:516:
[root /etc]$


[root /etc]$ groups user1 user2 zuser7
user1 : user1   (자기 그룹인 user1 권한이 있다.)
user2 : user2
zuser7 : zuser7 group2 group3  이넘은 자기 그룹인 zuser7 하고 group2 하고 group3에 포함되어 있다.)
[root /etc]$

[root /etc]$ useradd -G group2,group3 zuser7
[root /etc]$ usermod -G user1 zuser7    (usermod 는 추가가 아니고 변경이다.)
[root /etc]$
[root /etc]$ groups zuser7   (2개 그룹이다.)
zuser7 : zuser7 user1
[root /etc]$
[root /etc]$
[root /etc]$ usermod -G '' zuser7
[root /etc]$ groups zuser7
zuser7 : zuser7
[root /etc]$ usermod -G '' zuser7
[root /etc]$ usermod -g '' zuser7
usermod: 알 수 없는 그룹
[root /etc]$ useradd zuser8
[root /etc]$ useradd -g zuser9 zuser9
useradd: 알 수 없는 그룹 zuser9
[root /etc]$ useradd zuser9
[root /etc]$

[root /etc]$ groups zuser9 zuser8 zuser7
zuser9 : zuser9
zuser8 : zuser8
zuser7 : zuser7
[root /etc]$ userdel -r zuser9
[root /etc]$ tail -3 group
group3:x:515:
zuser7:x:516:
zuser8:x:517:
[root /etc]$ groupadd groupA
[root /etc]$ groupadd groupB
[root /etc]$ groupadd groupC
[root /etc]$ useradd -g groupA zuser10
[root /etc]$ useradd -G groupB zuser11
[root /etc]$ tail -3 group
groupB:x:519:zuser11
groupC:x:520:
zuser11:x:521:
[root /etc]$ groupmod -n groupX groupA    (그룹이름 변경)
[root /etc]$ tail -2 passwd
zuser10:x:516:518::/home/zuser10:/bin/bash
zuser11:x:517:521::/home/zuser11:/bin/bash
[root /etc]$ grep 515 group
group3:x:515:
[root /etc]$ groups zuser10
zuser10 : groupX
[root /etc]$

[root /etc]$ groupdel groupX
groupdel: 사용자의 주요 그룹은 지울 수 없습니다.
[root /etc]$ groups zuser11
zuser11 : zuser11 groupB
[root /etc]$ groupdel groupB
[root /etc]$ groups zuser11
zuser11 : zuser11
[root /etc]$
[root /etc]$ tail -3 group
groupC:x:520:
zuser11:x:521:
groupX:x:518:
[root /etc]$ groupadd -g 530 groupZ
[root /etc]$ tail -2 group
groupX:x:518:
groupZ:x:530:
[root /etc]$
[root /etc]$ useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root /etc]$
[root /etc]$ cd /home
[root /home]$ ls
shpark  user2  user5   xuser5  zuser10  zuser2  zuser4  zuser7
user1   user3  xuser1  zuser1  zuser11  zuser3  zuser5  zuser8
[root /home]$ ls -a zuser1
.   .bash_history  .bash_profile  .emacs  .mozilla
..  .bash_logout   .bashrc        .kde
[root /home]$

이상한 파일들이 있다 안만든것~ 이것들은 설정 파일
만들어진 이유는 skel폴더에서 만든 계으로 복사 된다.
없는 파일이 하나 있다.
.bash_history 인데 이것은 로그인 하면 생선 된다.

[root /home]$ service httpd start
httpd (을)를 시작 중: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]
[root /home]$ ps -e | grep httpd
 5709 ?        00:00:00 httpd
 5711 ?        00:00:00 httpd
 5712 ?        00:00:00 httpd
 5713 ?        00:00:00 httpd
 5714 ?        00:00:00 httpd
 5715 ?        00:00:00 httpd
 5716 ?        00:00:00 httpd
 5717 ?        00:00:00 httpd
 5718 ?        00:00:00 httpd
[root /home]$

xwindows에서 http://localhost 로 접소가면 홈페이지 접속

[root /home]$ su - zuser1
[zuser1@centos ~]$ ls
[zuser1@centos ~]$ ls
[zuser1@centos ~]$ mkdir public_html
[zuser1@centos ~]$ cd public_html/
[zuser1@centos public_html]$ cd ~
[zuser1@centos ~]$ ls
public_html
[zuser1@centos ~]$

홈페이지 만들때 html 파일을 계정마다 복사가 필요 할때가 있다.

그래서 skel에 해당 html을 복사 해주면 계정 생성시 복사 된다.

[zuser1@centos skel]$ 폴더에 어떤 파일 을 수정하면 유효기간, 유효기간, 바꾼날 을 설정 할수 있따.

[root /home]$ chage zuser2  #대화식으로 일다는 테스트 합세요.
zuser2의 사용기한 정보를 바꿉니다
새로운 값을 넣거나, 기본값을 원하시면 엔터를 치세요

        열쇠글의 최소 유효 기간 [0]: 3  (특정파일에서 자동 입력)
        열쇠글의 최대 유효 기간 [99999]: 30  (특정파일에서 자동 입력)
        마지막으로 열쇠글을 바꾼 날 (YYYY-MM-DD) [2014-06-16]:   (특정파일에서 자동 입력)
        열쇠글 사용만료 예고 [7]: 7  (유져 어저구 ~D 에서 수정)
        열쇠글이 유효하지 않음 [-1]: 10 (유져 어저구 ~D 에서 수정)
        계정 사용만료일(YYYY-MM-DD) [1969-12-31]: 2015-12-31  (유져 어저구 ~D 에서 수정 ??)












---학원 게시판 내용---

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일로 설정. 암호가 만료되어도 이 설정기간안에 암호를 변경하면 계정을
계속 사용할 수 있다.
계정 사용만료일(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]#
==> 보조그룹옵션만 쓰고 계정을 만들면 위에 결과처럼
주그룹은 자신의 계정명과 같은 그룹에 속하게 된다.                   


     

--문제풀이 집에서 하기--

=>1. 아래와 같은 그룹을 만드시오  (groupadd)

그룹명  gid
-------------------
class1  1000
class2  디폴트값

solve)
groupadd -g 1000 class1
groupadd class2

2. 아래와 같은 계정을 만드시오 (useradd / usermod)

계정명  home디렉토리    로그인셀              그룹            comment
unix1  /home/unix1      /bin/bash          unix1              kildong
unix2  /var/unix2        /bin/csh            unix2,bin
unix3  /home/unix3    /bin/bash          class1,class2
unix4  /home/unix4    /bin/bash          unix4
각 사용자 패스워드는 pass1234 로 하시오  (passwd)

solve)
useradd -s /bin/bash -c kildong unix1
useradd -d /var/unix2 -s /bin/csh -G bin unix2
useradd -g class1 -G class2 unix3
useradd unix4
그다음은 passwd 계정명 으로 암호부여.
(*. 주의 - useradd 명령어 옵션에 패스워드까지 부여 하는 옵션이 있습니다
그러나 그 옵션은 shadow 파일에 암호화 시키지 않고 그래도 저장하므로
제대로 사용하지 않으면 문제가 됩니다.
예를 들어서 useradd -s /bin/bash -c kildong -p 1234 unix1  이런식으로 하면
잘못된 사용방법으로서 로그인되지 않습니다. 1234 가 암호화 되지않고 저장되므로
사용자 인증에 성공할 수 없습니다.
useradd -s /bin/bash -c kildong -p aB$xk.1abcdfadAzCkslsdf$kab unix1  이렇게 하여야
하는데 어려우므로 특별한 경우에만 사용합니다.)

* 디폴트 홈디렉토리가 /home 이라고 가정합니다.
만약 /home 이 디폴트가 아니면 useradd -d 로 계정을 추가하든지 아니면
useradd -D -b /home 으로 디폴트를 지정해 주면 됩니다.
*. unix1 계정을 추가할때 unix1 그룹이 존재하지 않으면 useradd -g unix1 unix1 하면 안됩니다.
그냥 useradd unix1 하면 그때 unix1 그룹이 생성됩니다.

3. unix1의 로그인셀을 /bin/csh로 변경하시오. (usermod)

solve)
usermod -s /bin/csh unix1

4. unix1 계정을 잠그시오 (passwd)
solve)
passwd -l unix1  ==> shadow 파일을 확인해보면 암호부분에 '!!' 두개가 추가된것을
확인할 수 있습니다. 잠겨있다는 의미입니다.
*. 옵션을 모르면 # passwd --help 로 출력해서 보거나 메뉴얼 페이지을 참고하면 됩니다.
ex)
# passwd --help  (* 옵션의 의미는 같지만 출력형태는 버전에 따라 차이가 있을수 있습니다)

사용법: passwd [옵션...] <accountName>
  -k, --keep-tokens      만기되지 않는 인증 토큰 사용
  -d, --delete            named 계정의 비밀번호 삭제 (root로만 실행 가능)
  -l, --lock              named 계정 잠금 (root로만 실행 가능)
  -u, --unlock            named 계정 잠금 해제 (root로만 실행 가능)
  -f, --force            강제 실행
  -x, --maximum=DAYS      비밀번호 최대 유효기간 (root로만 실행 가능)
  -n, --minimum=DAYS      비밀번호 최소 유효기간 (root로만 실행 가능)
  -w, --warning=DAYS      비밀번호가 만료되기 전 사용자에게 주어지는 경고 기간 (root로만 실행 가능)
  -i, --inactive=DAYS    비밀번호 만료 후 계정이 비활성화되는 기간 (root로만 실행 가능)
  -S, --status            named 계정에 비밀 번호 상태 보고 (root로만 실행 가능)
  --stdin                stdin에서 새 토큰을 읽음 (root로만 실행 가능)

Help options:
  -?, --help              Show this help message
  --usage                Display brief usage message


5. unix4 계정을 삭제하되 홈디렉토리까지 한꺼번에 지워지게 하세요. (userdel)
solve)
userdel -r unix4
solve)
*. 홈디렉토리가 없거나 홈디렉토리의 소유권이 unix4 가 아니면 이 옵션은
사용할 수 없습니다.

6. unix2 계정이 unix1,bin,root 그룹권한을 가지게 그룹을 추가하시오 (usermod)
solve)
usermod -g unix1 -G bin,root unix2

7.  사용자 계정 생성시 사용자 홈 디렉토리에 .vimrc 파일이 자동으로 생성이
되게 설정하고  .vimrc 파일안에는
set nu
set ts=4  이 두줄이 설정되도록 하시오.

solve)
/etc/skel 디렉토리로 이동하여 거기에 .vimrc 파일을 만들면 됩니다.
그러면 계정을 만들면 계정 디렉토리안에 자동으로 .vimrc 파일이 생성되므로
일반계정이 좀 더 쉽게 편집기를 사용할 수 있습니다
*. 기존에 미리 만들어진 계정은 영향을 받지 않으며 새로 만드는 계정부터 적용됩니다.
useradd 명령어로 계정을 추가할때 /etc/skel 안에 내용이 복사가 되므로 ...)

8. unix5 계정을 추가한 후 패스워드를 부여하시오. (useradd / passwd / chage)
그리고 unix5 사용자가 30일이 경과하기전에는 패스워드를 반드시 바꾸도록 설정하고
패스워드 만료일수가 5일 남았을때부터는 경고메시지가 뜨게 하시오.
그리고 유예기간을 7일을 부여하시오.

solve)
useradd unix5
passwd unix5
chage -M 30 -W 5 -I 7 unix5

9. unix6 계정을 추가하고 root 권한을 부여하시오. (usermod)
solve)
usermod -u 0 -o unix6
* -o 옵션은 uid 값의 중복을 허용하기 위한 옵션(커널은  uid로 계정을 식별합니다)

10)10. 계정을 생성할 경우 password aging 설정이 아래와 같이 자동을 부여 되게 하시오
( /etc/login.defs 파일과  useradd 명령의 default 옵션 활용)
*. 패스워드최소변경주기 : 설정안함
*. 패스워드최대변경주기 : 50일
* 경고일수 : 10일
*. 유예기간 : 20일
*. 계정만료일 : 2014-12-31일

solve)  /etc/login.defs 파일에서 아래옵션을 설정하여야 합니다.
PASS_MAX_DAYS  50
PASS_MIN_DAYS  0
PASS_MIN_LEN    5 <== 이부분은 전혀 관련이 없으므로 설정할 필요없음.(암호설정시 암호최소길이,
암호가 이숫자보다 커야합니다)
PASS_WARN_AGE  10
그리고 이파일에서 유예기간이나 계정만료일은 설정할 수 없으므로
useradd 명령의 디폴트 옵션으로 설정해야 합니다.
useradd -D -f 20 -e 2014-12-31  <= 이렇게 하면 됩니다.(유예기간을 안주는 경우라면 useradd -D -f -1)






반응형

'Linux' 카테고리의 다른 글

12일차 cron 명령어.  (0) 2014.06.20
11일차 특수 퍼미션 cron, at 명령어  (0) 2014.06.19
10일차 Process 관리  (0) 2014.06.18
9일차 파일 권한(Permission)  (0) 2014.06.17
리눅스에서 서비스 자동 실행 하는 방법  (0) 2013.03.03