/etc/passwd구조 중요
login.defs
#은 주석
MAIL_DIR var/spool/mail 메일함위치
login.defs 기본값 디폴트
기본값은 1000이다
CREATE_HOME이 YES여야지 디렉토리도 되고 그럼
[ID] : [X] :[UID] : [GID] : [별명] : [홈디렉토리 정보] : [쉘]
$USER X $UIF [$GID comment $HOME $SHELL
==============================
skel을 바꾸면 useradd 했을때 skel의 내용이 그대로 반영
================================
### 계정명령 ###
add 추가 ( addtion)
mod 변경 ( modify)
del 삭제 ( delete )
** 명령 > 파일 > 실행 **
useradd 추가
usermod 변경
userdel 삭제
groupadd 추가
groupmod 변경
groupdel 삭제
=====================================
계정생성 기본파일 ( login.defs 에서 참조하는 내용)
MAIL_DIR /var/spool/mail 메일함위치
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
-===============================
계정 문서파일
/etc/passwd 사용자계정정보 ***
/etc/shadow PW정보
/etc/group 그룹정보
root:x:0:0:root:/root:/bin/bash
sevas:x:1000:1000:sevas:/home/sevas:/bin/bash
[ ID ] : [ X ] : [UID] : [GID] : [별명] : [홈디렉토리 경로] : [쉘 ]
$USER : X : $UID : $GID : comment : $HOME : $SHELL
root 관리자 UID : 0
일반사용자 UID : 1000
UID_MIN 1000
UID_MAX 60000
GID_MIN 1000
GID_MAX 60000
CREATE_HOME yes
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
ENCRYPT_METHOD SHA512
$1 md5
$6 sha2 (sha-512)
/etc/group => group 정보문서
sevas:x:1000:
[ 그룹명] : x : GID :
=======================================================
계정생성시 파일 추가
/home/사용자명 홈디렉토리
/var/spool/mail/사용자명 메일파일
내용추가
/etc/passwd
/etc/shadow
/etc/group
useradd 계정생성
/etc/default/useradd => useradd 기본 설정문서 (홈디렉토리경로,쉘)
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file (useradd 옵션 미설정 기본설정)
GROUP=100 =>기본 GID (UID =GID)
HOME=/home =>기본 $HOME base dir
INACTIVE=-1 =>PW 유효기간 (-1 비활성)
EXPIRE= =>PW 만료기간 (비활성)
SHELL=/bin/bash =>기본 $SHELL
SKEL=/etc/skel =>기본 skel 경로
CREATE_MAIL_SPOOL=yes =>메일 파일 생성여부
실습)
mkdir -p /sevas1 /export/sdb/home
ls -ld /sevas1 /export/sdb/home
touch /sevas1/sevas_test
mkdir /backup
cp -a /etc/default/useradd /backup
#문서편집변경
vi /etc/default/useradd
# useradd defaults file
GROUP=100
#HOME=/home
HOME=/export/sdb/home
INACTIVE=-1
EXPIRE=
#SHELL=/bin/bash
SHELL=/bin/sh
#SKEL=/etc/skel
SKEL=/sevas1
CREATE_MAIL_SPOOL=yes
useradd -D = cat /etc/default/useradd
#명령어변경
useradd -D
-b $HOME basedir
-s $SHELL 변경
useradd -D -b /home -s /bin/bash
useradd -D 확인후
원복
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
**계정관련 디렉토리**
/etc/skel => 홈디렉토리 기본 구성파일 저장소 (.bash_profile,kshrc등등)
/home => 기본 홈디렉토리 생성 base저장소 (/home/사용자명)
/var/spool/mail => 메일파일 저장소 (메일함)
========================================================
계정 생성
( 모든 실습뒤 확인은 /etc/passwd /etc/shadow /etc/group 을 확인)
useradd 옵션
sevas : x : 1000 : 1000 : linux_account : /home/sevas : /bin/bash
-u -g -c -d -s
-G -b
-u UID 지정
useradd -u 1100 test1
(그룹 미지정시 uid와 같은 gid 생성)
-g GID 지정 (1차그룹 : 주그룹)
useradd -g test1 test2
id test2
***-G 그룹가입 (2차그룹 : 보조그룹 )
useradd -G test1 test3
id test3
-c 별칭 ( GUI display )
useradd -c bravo test4
**로그인시에는 반드시 pw 설정을 해야한다**
=========================================
-d 계정 접속위치 지정 **** (create home =yes 에 의해 적용)
mkdir -p /export/home
ls -ld /export/home
useradd -d /export/home/test5 test5 (추천)
useradd -d /export/home test55 ( 가급적 사용X )
** -d 사용시 가급적 계정명과 동일한 경로까지 기재 **
=========================================================
-s 쉘지정
useradd -s /bin/csh test6
-m -k (-mk) (1회성) 스켈 지정 ( 기본값 /etc/skel )
mkdir /sk
touch /sk/1
useradd -mk /sk -s /bin/csh test8
ls -al /sk /home/test8
** 잠깐 기초지식 **
쉘확인
cat /etc/shells
/bin/sh => 커널쉘 (본쉘)
/bin/bash => 리눅스기본쉘 (기능쉘) [ sh+ksh ]
/usr/bin/sh => 응용프로그램
/usr/bin/bash => 응용프로그램
/bin/tcsh => 확장된 프로그램 전용쉘
/bin/csh => 프로그램밍전용쉘
user -> shell -> kernel -> OS
shell => kernel에게 명령어를 전달해주는 해석기
kernel => HW/SW 를 연결해주는 중계프로그램 ( 자원메모리관리 )
OS => operating system 조작시스템 ( 인터페이스 제공 )
===========
유저 옮기기
find / -name mod 확인 위치확인
tail -3 /etc/passwd 위치확인
다르면 find랑 같게 위치를 바꿔준다 usermod -d /home/mod mod
그다음에 옮기기 usermod -md local/home/mod mod
====================
유저삭제하기
ls -l ~삭제할거
userdel /남을 홈디 ./남을메일파일 /삭제할문서파일
tail -3 /etc/passwd 확인 계정 남아있음 로그인도됨
userdel -r /완전삭제할 계정
find / -name 삭제확인할 계정
=====================
### 계정명령 ###
add 추가 ( addtion)
mod 변경 ( modify)
del 삭제 ( delete )
** 명령 > 파일 > 실행 **
useradd 추가
usermod 변경
userdel 삭제
groupadd 추가
groupmod 변경
groupdel 삭제
=====================================
계정생성 기본파일 ( login.defs 에서 참조하는 내용)
** 문서파일 ***
/etc/passwd => 계정 정보 문서
MAIL_DIR /var/spool/mail
root:x:0:0:root:/root:/bin/bash초
[ ID ] : [ X ] : [UID] : [GID] : [별명] : [홈디렉토리 경로] : [쉘 ]
$USER : x : $UID : $GID : comment : $HOME : $SHELL
ex) cat /etc/passwd |grep root:x
root 관리자 UID : 0
일반사용자 UID : 1000
UID_MIN 1000
UID_MAX 60000
GID_MIN 1000
GID_MAX 60000
CREATE_HOME yes
/etc/shadow => PW 정보문서
sevas2 : $6$ ~~ : 18963:0:99999:7:[]:[]:
ID : PW : 비밀번호생성일수 : 비밀번호 변경가능일수 : 비번최대유효기간 : 만료경고일수 : 계성활성여부(비활성) : 만료일수(비활성)
** 해쉬번호 **
$1 md5
$6 sha2 (sha-512)
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
NCRYPT_METHOD SHA512
/etc/group => group 정보문서
sevas:x:1000:
[ 그룹명] : x : GID :
=============================================================
#주요 파일#
계정생성 기본값파일
*문서파일*
/etc/passwd =>계정정보문서
/etc/shadow => PW 정보문서
/etc/group => group 정보문서
USERGROUPS_ENAB yes
/etc/default/useradd => useradd 기본설정문서 (홈디렉토리경로,쉘 등등)
cat /etc/default/useradd
# useradd defaults file (useradd 옵션 미설정 기본설정)
GROUP=100 =>기본 GID (UID =GID)
HOME=/home =>기본 $HOME base dir
INACTIVE=-1 =>PW 유효기간 (-1 비활성)
EXPIRE= =>PW 만료기간 (비활성)
SHELL=/bin/bash =>기본 $SHELL
SKEL=/etc/skel =>기본 skel 경로
CREATE_MAIL_SPOOL=yes =>메일 파일 생성여부
실습)
mkdir -p /sevas1 /export/sdb/home
touch /sevas1/sevas_test
mkdir /backup
cp -a /etc/default/useradd /backup
#문서편집변경
vi /etc/default/useradd
# useradd defaults file
GROUP=100
#HOME=/home
HOME=/export/sdb/home
INACTIVE=-1
EXPIRE=
#SHELL=/bin/bash
SHELL=/bin/sh
#SKEL=/etc/skel
SKEL=/sevas1
CREATE_MAIL_SPOOL=yes
useradd -D = cat /etc/default/useradd
#명령어변경
useradd -D
-b $HOME basedir
-s $SHELL 변경
useradd -D -b /home -s /bin/bash
useradd -D 확인후
원복
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
**계정관련 디렉토리**
/etc/skel => 홈디렉토리 기본 구성파일 저장소 (.bash_profile,kshrc등등)
/home => 기본 홈디렉토리 생성 base저장소 (/home/사용자명)
/var/spool/mail => 메일파일 저장소 (메일함)
=======================================================
#주요 파일#
계정생성 기본값파일
*문서파일*
/etc/passwd =>계정정보문서
/etc/shadow => PW 정보문서
/etc/group => group 정보문서
**계정관련 디렉토리**
/etc/skel => 홈디렉토리 기본 구성파일 저장소 (.bash_profile,kshrc등등)
/home => 기본 홈디렉토리 생성 base저장소 (/home/사용자명)
/var/spool/mail => 메일파일 저장소 (메일함)
========================================================
계정 생성
( 모든 실습뒤 확인은 /etc/passwd /etc/shadow /etc/group 을 확인)
tail -n3 /etc/passwd /etc/shadow /etc/group
useradd 옵션
sevas : x : 1000 : 1000 : linux_account : /home/sevas : /bin/bash
-u -g -c -d -s
-u UID지정
useradd -u 1100 test1
(그룹 미지정시 uid와 같은 gid 생성)
-g gid 지정 ( 1차그룹 : 주그룹 )
useradd -g test1 test2
id test2
***-G 그룹가입 (2차그룹 : 보조그룹 )
useradd -G test1 test3
id test3
-c 별칭 ( GUI display )
useradd -c bravo test4
**로그인시에는 반드시 pw 설정을 해야한다**
===============================================
-d 계정 접속위치 지정 ****
(create home =yes 에 의해 적용 )
mkdir -p /export/home
useradd -d /export/home/test5 test5 (추천)
useradd -d /export/home test55 ( 가급적 사용X )
** -d 사용시 가급적 계정명과 동일한 경로까지 기재 **
-s 쉘지정
useradd -s /bin/csh test6
-m -k (-mk) (1회성) 스켈 지정 ( 기본값 /etc/skel )
mkdir /sk
touch /sk/1
useradd -mk /sk -s /bin/csh test8
ls -al /sk /home/test8
** 잠깐 기초지식 **
쉘확인
cat /etc/shells
/bin/sh => 커널쉘 (본쉘)
/bin/bash => 리눅스기본쉘 (기능쉘) [ sh+ksh ]
/usr/bin/sh => 응용프로그램
/usr/bin/bash => 응용프로그램
/bin/tcsh => 확장된 프로그램 전용쉘
/bin/csh => 프로그램밍전용쉘
user -> shell -> kernel -> OS
shell => kernel에게 명령어를 전달해주는 해석기
kernel => HW/SW 를 연결해주는 중계프로그램 ( 자원메모리관리 )
OS => operating system 조작시스템 ( 인터페이스 제공 )
======================================================
group add/mod/del
groupadd g1
groupadd -g 1221 g2
groupadd g3
tail -5 /etc/group
-g 그룹번호지정
groupdel g3
groupmod -g 1220 g1
vi /etc/group
맨 아래 g2와 g1내용 삭제 후 저장
groupadd gtest
tail -5 /etc/group
user와 group은 개념이 다르다.
========================================================
** usermod **
**모든 실습뒤 확인은 **
tail -n3 /etc/passwd /etc/group
/etc/passwd
*********************************************
sevas : x : UID : GID : 별칭 : 홈디렉토리 : 쉘
-u -g -c -d -s
*********************************************
useradd mod
-u UID 변경
usermod -u 1500 mod
-g GID 변경 ( 1차그룹)
usermod -g sevas mod
**-G 그룹가입 ( 2차그룹)
usermod -G sevas mod
usermod -G gtest mod
*다중그룹가입*
usermod -a -G sevas,gtest mod
cat /etc/group |grep mod
=================================================
*** 사전에 /export/home/이 있는지 확인 ***
-d 디렉토리 경로만 변경 실제 디렉토리 이동X
(-md) 디렉토리경로와 실제 디렉토리가 일치해야함
0. tail -3 /etc/passwd 확인 (mod 홈디렉토리 확인)
1. usermod -md /export/home/mod mod (디렉토리가 이동)
2. usermod -d /home/mod mod
3. tail -3 /etc/passwd 와 find / -name mod 확인
( 홈디렉토리 경로는 바꼇으나 실제 디렉토리 이동X)
이상황에서 어떻게 하는게 가장 안전할까요?
** usermod -d /export/home/mod mod (위치마추고)
usermod -md /home/mod mod (-md사용)
*** 사용전 /etc/passwd 와 실제 홈디렉토리 위치가 일치함을
반드시 확인하고 쓸것 ****
=========================================================
**막간 문제**
mkdir /backup
usermod -d /backup/mod mod
[root@localhost /]# usermod -d /backup/mod mod
[root@localhost /]# find / -name mod
/home/mod
/var/spool/mail/mod
[root@localhost /]# tail -3 /etc/passwd
korea8:x:1207:1207::/home/korea8:/bin/sh
test9:x:1208:1208::/home/test9:/bin/sh
mod:x:1500:1000::/backup/mod:/bin/bash
mod 계정이 /local/home/mod 에 접속되도록 하세요
mkdir -p /local/home
usermod -d /home/mod mod
usermod -md /local/home/mod mod
==============================================================
-s usermod -s /bin/sh mod
===========================================================
[계정삭제]
**계정생성시 추가되는 문서파일
/etc/passwd 사용자계정정보문서파일
/etc/shadow pw 정보문서파일
/etc/group group정보 문서파일
**계정생성시 추가되는 파일/디렉토리
$HOME 홈디렉토리
/var/spool/mail/계정명 메일파일
userdel /etc/passwd /etc/shadow /etc/group (문서파일만 삭제)
(홈디렉토리와 메일파일 남음) (계정 정지)
userdel -r /etc/passwd /etc/shadow /etc/group (문서파일)
$HOME , /var/spool/mail/계정명 (파일/디렉토리)
(영구삭제)
useradd del1
useradd del2
touch /home/del1/del1_test
touch /home/del2/del2_test
userdel del2
find / -name del2 (파일은 남음)
tail -n3 /etc/passwd /etc/shadow /etc/group
(내용은 삭제됨)
useradd del2
로그인해보면 이전 홈디렉토리 내용이 남아있음
=======================================
userdel -r del2
find / -name del2 (파일지워짐)
tail -n3 /etc/passwd /etc/shadow /etc/group
(내용도 삭제됨)
useradd del2
로그인해보면 이전 홈디렉토리 내용이 없음
=================================================
수동적 계정정리 (실무에서 절대 쓰지말것 X )
/etc/passwd O
/etc/shadow O
/etc/group O
$home ( /home /export/home /local/home /export/sdb/home )
/var/spool/mail
===================================
=============
#다음을 만족하는 계정을 만드세요~ (각계정은 만드신후 로그인해볼것)
1) 계정명 = sevas100
주석(설명,별명) = testuser
shell = /bin/sh
2) mkdir /sevaskel 디렉토리 생성후
/etc/skel의 내부 내용을 /sevaskel로 복사한뒤
(이름변경복사하지마세요....)
/sevaskel를 스켈경로로 참조하여 sevas200을 만드세요
3) 계정 기본생성경로를 /localhost/home 로 만드시고
스켈경로를 /sevaskel로한 sevas300을 만드세요.
4) useradd -D 명령을 사용하여 다음환경과 같은 기본값을 만들고
옵션을 쓰지말고 sevas 400을 만드세요
shell : /bin/sh
home : /export/sdb/home
5) /etc/default/useradd 파일을 다음과 같으 문서 편집하세요
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
==========================
다음 내용을 가진 joa 계정을 한번에 만드세요~ (usermod 사용금지)
/local_host/home/joa/public_html/index.html(sevas)
1. uid 1700
2. g1그룹에 joa계정 가입
3. 별칭 20210618
4. 홈디렉토리베이스 /local_host/home
5. 쉘: 본쉘
6. skel 참조 : /skel2 <<<<<<자동구성 환경을 만드세요~
7. 자동구성 환경 $HOME/public_html/index.html <<<< index.html안에 sevas 내용 입력
가) 마지막 sevas GID 1000만 남기고 작업한 사용한계정을 삭제하세요
(userdel -r 계정들 삭제)
나) 삭제후 sevas2 계정 생성시 1001부터 시작되는지 확인하세요.
=======================================================================