본문 바로가기

수업

LINUX 계정

/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부터 시작되는지 확인하세요.

=======================================================================


   

'수업' 카테고리의 다른 글

umask  (0) 2023.06.19
보안뉴스  (0) 2023.06.19
축약  (0) 2023.06.14
축약과 VLSM  (0) 2023.06.14
연습  (0) 2023.06.14