-계정 구조도
· user -useradd (계정 add)
-usermod (계정 modify)
-userdel (계정delete)
· gruop -groupadd
-groupmod
-groupdel
계정 생성은 /etc/login.defs 와 /etc/default/useradd 를 거쳐서 각 파일에 여러가지가 설정된다.
· /etc/login.defs : 계정,pw에 대한 기본설정파일
vi /etc/login.defs
15 MAIL_DIR /var/spool/mail → 메일함 저장위치.
25 PASS_MAX_DAYS 99999 → 패스워드 최대 사용일수.
26 PASS_MIN_DAYS 0 → 패스워드 최소 사용일수.
27 PASS_MIN_LEN 5 → 패스워드 최소 길이
28 PASS_WARN_AGE 7 → 패스워드 만료 경고일 (99992일에 만료 경고)
33 UID_MIN 500 → 유저 아이디 사용가능 범위
34 UID_MAX 60000 → 유저 아이디 사용가능 범위
39 GID_MIN 500 →그룹 아이디 사용가능 범위
40 GID_MAX 60000 → 그룹 아이디 사용가능 범위
54 CREATE_HOME yes → 홈 디렉토리 생성 여부
62 USERGROUPS_ENAB yes → 계정 삭제시 소속 그룹이 비어있을시 그룹 같이 삭제
65 ENCRYPT_METHOD SHA512 → 암호화 방법 (pw 암호화)
· /etc/default/useradd : useradd 에 들어있는 기본옵션 설정
vi /etc/default/useradd
GROUP=100 (=계정생성이 그룹지정 100→계정명과 동일한 그룹명/uid 와 동일한 gid 의 그룹생성이란 의미)
HOME=/home (= 홈디렉토리가 생성되는 위치 설정)
INACTIVE=-1 (=pass 만료시 처리 방법 '-1' :미지정 )
EXPIRE= ( pw 만료일 )
SHELL=/bin/bash ( 기본셸을 무엇으로 하는가)
SKEL=/etc/skel ( 각 계정 홈디렉토리의 구성해야할것들 = 불러올곳 )
CREATE_MAIL_SPOOL=yes ( 메일저장함의 생성여부 )
① /etc/passwd : 계정 정보 파일
34 heath:x:500:500:heath:/home/heath:/bin/bash
( =계정명:무의미:UID:GID:계정설명:계정의 홈디렉토리 위치: 셸의 종류 )
② /etc/shadow : pw 정보파일
34heath:$6$5ST6WJX6$svnzIZuLAfGK62Nnk2Te7qf.YvyTV/Bt771PWw4mu.6TQtqygmzhhUKsTw37hGjtnvFiUogseb/GDLz3RPCu.:17733:0:99999:7:::
( = 계정명 : 암호화된 비밀번호 :pw생성일자(1990년 1월1일부터) : pw 최소사용일수 : pw 최대 사용일수 : pw 만료 경고 ):pw만료시처리방법(0=바로만료, 1=하루 연장):passwd만료일:
③ /etc/group : 그룹 정보파일
58 heath:x:500: (=계정명 : 무의미 : GID : 그룹 구성원(보조그룹) )
④ /home/계정명 : 계정 홈 디렉토리
⑤ /var/spool/mail/계정명 : 계정 메일함
● 그룹 생성, 수정, 삭제
① groupadd a1
② groupadd -g 701 g2 (g2라는 그룹에 701번의 그룹아이디 부여)
③ groupadd g3 ( GID가 702번으로 만들어진다.)
④ groupmod -g 700 a1 ( GID 수정 )
⑤ groupmod -g 701 a1 ( 이미 잇는 GID )
⑥ groupdel g3 ( g3 삭제 )
⑦ /etc/group 에 들어가서 수정, 삭제 가능
-기능 요약
g: 그룹아이디(GID) 변경
● 계정 생성, 수정, 삭제
First)) /export/home 만들기
① useradd user1 (user1 계정 생성)
-/etc/passwd 계정정보파일
-/etc/shadow 비번정보파일
-/etc/group 그룹정보파일 ←←←← 계정을 만듬으로서 확인해야 할것들
-/home/user1 계정홈디렉토리
-/var/spool/mail/user1 계정의 메일함
「========================
# useradd user1
# tail /etc/passwd /etc/shadow /etc/group | grep user1
user1:x:501:501::/home/user1:/bin/bash
user1:!!:17734:0:99999:7:::
user1:x:501:
# ll /home /var/spool/mail
/home:
합계 26
drwxr-xr-x. 2 root root 1024 2018-07-08 16:45 123
-rw-r--r--. 1 root root 0 2018-07-08 16:52 3
drwxr-xr-x. 3 root root 1024 2018-07-08 16:43 a
drwx------. 5 heath heath 1024 2018-07-08 15:11 heath
drwx------. 2 root root 12288 2016-07-04 17:27 lost+found
drwxr-xr-x. 3 root root 1024 2018-07-08 15:11 test
drwxr-xr-x. 3 root root 1024 2018-07-08 16:44 test1
drwx------. 4 user1 user1 1024 2018-07-22 15:01 user1
합계 0
-rw-rw----. 1 heath mail 0 2016-07-04 17:46 heath
-rw-rw----. 1 rpc mail 0 2016-07-04 17:30 rpc
-rw-rw----. 1 user1 mail 0 2018-07-22 15:01 user1
========================」
# passwd user1 (user1비번이 설정이 안 되어 있어 !!로 표기되므로 user1 비번변경)
# tail -1 /etc/shadow (변경됫는가 확인)
user1:$6$zaIo/9SW$h6Ua8WEr5U0Ryw6XZQ1GxS4OIHZPCOadDsGAmaY8zbFEfDeEj23oVGyQPQMgk7yyJvxms6DEWYroTI51E8gIx1:17734:0:99999:7::: (암호화 된 것 확인)
② useradd -u 510 user2 ( UID 지정 생성 )
③ useradd -g user1 user3 ( user3의 계정을 만들면서 user1의 그룹 사용하게 하는 옵션 )
④ useradd -G heath user4 ( -G 보조 그룹 지정 user4를 heath )
id [계정명] : 계정 정보 확인 (uid gid 확인 가능)
# id user4
uid=512(user4) gid=512(user4) groups=512(user4),500(heath) user4의 보조그룹은 heath
# id heath
uid=500(heath) gid=500(heath) groups=500(heath)
⑤ useradd -c itbank user5 (user 5 의 계정설명을 itbank로 한다)
⑥ useradd -d /export/home/user6 user6 ( user6 디렉토리 경로를 바꾼다)
※ 주의
· useradd -d /export/home user7 (스켈기본정보를 안가져온다 계정을 생성할때 수정된 홈디렉토리에 이름을 안 넣어주면 shell 이 깨진다)
-
login as: user7
user7@192.168.1.191's password:
-bash-4.1$ asdf
useradd -d /export/home/heath user8 ( 셸은 안깨지고 잘 구동이되나 자신의 홈디렉토리를 설정할때 경로 지정시 가급적 계정이름과 동일한 홈디렉토리명까지 기재해 줄것)
⑦ useradd -s /bin/ksh -d /export/home/user9 user9 ( 기본 셸을 콘셸로 바꾸어줌 )
※ skel : 계정생성시 같이 만들어지는 설정 파일이다. 이안에 디렉토리나 파일을 만들어 두면 계정이 생성될때 마다 같이 생성된다.
--skel 파일과 user6의 홈디렉토리를 비교해보자---
# ls -al /etc/skel /export/home/user6 (숨김파일이 되어있어 옵션 a를 써주자)
/etc/skel:
합계 40
drwxr-xr-x. 4 root root 4096 2016-07-04 17:38 .
drwxr-xr-x. 119 root root 12288 2018-07-22 15:47 ..
-rw-r--r--. 1 root root 18 2016-05-11 08:21 .bash_logout
-rw-r--r--. 1 root root 176 2016-05-11 08:21 .bash_profile
-rw-r--r--. 1 root root 124 2016-05-11 08:21 .bashrc
drwxr-xr-x. 2 root root 4096 2010-11-12 10:04 .gnome2
-rw-r--r--. 1 root root 171 2016-05-11 08:36 .kshrc
drwxr-xr-x. 4 root root 409VI /6 2016-07-04 17:29 .mozilla
/export/home/user6:
합계 32
drwx------. 4 user6 user6 4096 2018-07-22 15:42 .
drwxr-xr-x. 5 root root 4096 2018-07-22 15:47 ..
-rw-r--r--. 1 user6 user6 18 2016-05-11 08:21 .bash_logout
-rw-r--r--. 1 user6 user6 176 2016-05-11 08:21 .bash_profile
-rw-r--r--. 1 user6 user6 124 2016-05-11 08:21 .bashrc
drwxr-xr-x. 2 user6 user6 4096 2010-11-12 10:04 .gnome2
-rw-r--r--. 1 user6 user6 171 2016-05-11 08:36 .kshrc
drwxr-xr-x. 4 user6 user6 4096 2016-07-04 17:29 .mozilla
둘이 같은걸로 보아 잘 가져온것을 알수있다.
cp -r /etc/skel /skeltest ( skel 파일을 skeltest로 복사해주자.)
useradd -m -k /skeltest user10 ( skeltest 에서 정보를 가져옴) **스켈지정은 일반사용자와 달리 특별한 사용자를 만들고자 할 때 사용된다. )
-기능요약-
u UID 변경
g 그룹 같이 사용하게 하기.
G 보조그룹 지정해주기
c 계정설명 해주기
d 홈디렉토리 경로 정해주기
s 기본셸바꾸기
mk 특정 스켈에서 계정정보 가져옴
●계정수정
① usermod -u 610 user1
② usermod -g heath user1
③ usermod -G a1 user1
④ usermod -c student user1
⑤ usermod -s /bin/ksh user1
⑥ usermod -d /export/home/user1 user1
mv /home/user1 /export/home/user1
⑦ usermod -d /home/user1 -m user1 6번과 7번이 같은 효과
●계정삭제
useradd del1
useradd del2
① userdel del1 (=계정정지 ( 홈 디렉토리, 메일함 디렉토리에 남아잇다.=경로는 남아잇다 )
② userdel -r del2 (=계정 영구삭제)
/etc/
● useradd 없이 계정생성하기
① /etc/passwd
②/etc/shadow
③/etc/group
④/home/계정명
⑤/var/spool/mail/계정명 1~5번 까지 직접 수정하면 계정만들수 있음.
⑥/etc/user/default/useradd 기본설정 변경가능
==================================================================
-실전문제-
1. /etc/skel 디렉토리를 /testskel 라는 이름으로 복사하고
/testskel 안에 test라는 디렉토리를 생성하세요
2. useradd 명령 한번만으로 다음 조건으로 계정을 생성하세요
계정명 : test12
UID : 600
계정설명 : heathtest
홈 디렉토리 경로 : /export/home
쉘 지정 : 콘쉘
skel : /testskel
3. 기본 계정 생성 홈 디렉토리를 /export/home으로
기본 계정 생성 쉘을 콘쉘로 지정한 뒤 user1 이라는 계정을 만드세요
(useradd 옵션 사용하지 말 것)
4. 기본 계정 생성 홈 디렉토리를 /home으로
기본 계정 생성 쉘을 배쉬쉘로 지정한 뒤 user2 이라는 계정을 만드세요
(계정 생성 시 public_html 디렉토리가 홈디렉토리에 자동생성이 되도록 하세요)
(hint => skel)
5. /export/home/user3 라는 디렉토리를 생성하세요
6. /export/home/user3 디렉토리를 삭제하지 말고
홈 디렉토리가 /export/home/user3 인 계정 user3를 만드세요
(user3 계정으로 접속 시, 쉘이 정상적으로 동작하도록 하세요)
'전기기사 > 리눅스' 카테고리의 다른 글
[리눅스1] 리눅스 네트워크, ip 주소 (0) | 2019.01.03 |
---|---|
[리눅스1] 리눅스 권한 (0) | 2019.01.03 |
[리눅스1] 압축 (0) | 2019.01.03 |
[리눅스1] 문서편집기(vi) 주요 명령어 (0) | 2018.12.27 |
[리눅스1]- 리눅스 기본특징 (0) | 2018.12.27 |
댓글