12/120

김건호·2022년 2월 22일
0

centos7 환경 구축

이전 시간까지는 centos8을 사용했는데, 너무 무겁다고 하셔서 강사님께서 centos7 환경 구축을 알려주셨습니다.

virtual box 설치 및 환경설정

virtual box 다운

  1. Window hosts와 VirtualBox 6.1.32 Oracle VM VirtualBox Extension Pack을 다운받아줍니다.
  2. 다운받은 실행파일은 모두 next를 눌러주세요

  3. 설치가 완료되면 호스트 네트워크 관리자에서 다음과 같이 설정되어 있는지 확인해주세요

  4. 환경설정에 들어가서 입력 - 가상 머신 - 호스트 키 조합을 CTRL + ALT로 바꿔주세요
    (VirtualBox에 마우스가 잡혀있을 때, 벗어나는 키입니다)

  5. 네트워크에 들어가시고 (저는 이미 추가했지만) 새로 네트워크를 추가해주세요
  6. 확장에서는 아까받은 Extension Pack을 추가해주세요

  7. Virtual box 환경설정은 끝이에요-!

centos7 설치

  1. 저는 강사님께서 제공해주신 ova파일을 가져오기 했습니다



9. 파일 추가 후, 가져오기를 해주세요

10. 그러면 이제 centos7을 사용할 수 있습니다

11. 아래 버튼을 눌러, 스냅샷을 선택 후 스냅샷을 미리 추가해주세요. 초기설정을 기록해두어서 시스템에 이상이 생기거나 할때 새로 환경을 만들지 않아도 쉽게 초기화할 수 있습니다

강사님이 초기화하세요 하시면 복원 누르기

원격으로 접속하기

virtual box는 화면이 커지지도 않고, 붙여넣기도 안 돼서 제 첫 리눅스 포스팅에 나온 내용처럼 window terminal에서 원격 접속을 할거에요
1. enp0s8연결을 활성화 해주세요

2. 자동연결을 설정해주고 원격 접속할 ip를 확인해주세요

3. inet의 ip를 기억해주세요

4. window terminal 에서 원격 접속

ssh root@inet의 ip


5. 이제 좀 더 편한 환경에서 실습을 할 수 있습니다-!

시스템 사용자 계정관리

계정 관리 파일

/etc/passwd

사용자 정보를 담고 있는 기본 파일

구조

[root@localhost ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

각 필드는 : 로 구분

사용자이름암호UID(user id)GID(group id)comment홈 디렉토리login_shell
시스템에 등록된 사용자x로 표시 /etc/shadow에 암호화하여 저장사용자를 구분하는 숫자사용자가 실행한 명령어에서 기본으로 사용할 그룹사용자의 추가적인 정보 저장로그인할 때 최초 위치하는 디렉토리사용자의 명령어를 해석하는 shell

/etc/shadow

사용자의 암호화된 패스워드를 담고 있는 파일

구조

[root@localhost ~]# head -2 /etc/shadow
root:$6$GiUyXgh6uO2gSoUS$HGVNkS3Jr/Pdx6qyi68cBa415PIEWzpTqRlRSYxmB8yX.lNs9rfB/3m8NyjMIz33SG6GpyNA3ywFijWqBKgrQ/::0:99999:7:::
bin:*:17632:0:99999:7:::
사용자이름해시화된 암호lastchangeminmaxwarninginactiveexpire
해시암호 값현재 사용중인 암호가 설정된 시기암호 설정 후 변경 불가 기간변경 없이 최대 사용 가능한 기간암호 만료 전 경고 기간계정 만료까지의 유예기간계정 만료 시기
해시화된 암호
$알고리즘 종류$salt값$입력한 비밀번호의 해시값
$1=MD5, $5=SHA-256,$6=SHA-512비밀번호 생성시 랜덤으로 생성되는 값입력한 패스워드와 salt 값으로 암호화한 값

해시값은 항상 같기 때문에 보안에 취약함, salt값을 추가하여 암호화

/etc/group

사용 그룹의 정보를 담고 있는 파일

구조

[root@localhost ~]# head -2 /etc/group
root:x:0:
bin:x:1:
그룹 이름비밀 번호gid그룹에 속한 사용자 이름

사용자

사용자는 일반 유저, 시스템 유저, 슈퍼 유저(root)로 구분

UID 범위

  • 0번 : root
  • 1~200 : 미리 어떤 시스템을 사용할지 할당된 시스템 사용자
  • 201~999 : 파일을 소유하지 않은 시스템 사용자

일반사용자는 1000번부터 부여받음

사용자 정보 확인

  • id : 현재 사용자의 정보 출력
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
  • who : 접속중인 사용자 목록
[root@localhost ~]# who
root     pts/0        2022-02-22 19:36 
  • whoami : 현재 사용자 이름
[root@localhost ~]# whoami
root
  • who am i : 접속 사용자 이름
[root@localhost ~]# who am i
root     pts/0        2022-02-22 19:36 

사용자 전환

  • su : 사용자만 전환, 대상 아이디의 패스워드 입력
[root@localhost ~]# su centos
[centos@localhost root]$ pwd
/root
[centos@localhost root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • su - : 사용자 환경까지 획득, 대상 아이디의 패스워드 입력
[root@localhost ~]# su - centos
마지막 로그인: 화  2월 22 20:32:10 KST 2022 일시 pts/0
[centos@localhost ~]$ pwd
/home/centos
[centos@localhost ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/centos/.local/bin:/home/centos/bin
  • sudo -i : su - 와 동일, 본인 패스워드 입력
  • sudo : 관리자 권한 임시 획득, 본인 패스워드 입력
[centos@localhost ~]$ touch filea
[centos@localhost ~]$ sudo touch fileb

로컬 시스템 관리자에게 일반적인 지침을 받았으리라 믿습니다.
보통 세가지로 요약합니다:

    #1) 타인의 사생활을 존중하십시오.
    #2) 입력하기 전에 한 번 더 생각하십시오.
    #3) 막강한 힘에는 상당한 책임이 뒤따릅니다.

[sudo] centos의 암호:
[centos@localhost ~]$ ls -l file*
-rw-rw-r--. 1 centos centos 0  2월 22 20:33 filea
-rw-r--r--. 1 root   root   0  2월 22 20:34 fileb

wheel 그룹 : sudo 명령어를 사용할 수 있는 그룹
사용시 /var/log/secure에 기록
/etc/sudoers 참조

사용자 관리

사용자 생성

# useradd [option] [username]

생성 시 /etc/default/useradd(useradd 시 기본적으로 적용되는 설정) & /etc/login.defs 참조

[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
GROUP=100HOME=/homeINACTIVE=-1EXPIRE=SHELL=/bin/bashSKEL=/etc/skelCREATE_MAIL_SPOOL=yes
사용자 생성시, 기본적으로 속하는 그룹 지정홈 디렉토리의 위치 '/home/사용자명'으로 생성패스워드의 사용 기한이 지난 후 로그인을 막는 유예기간, -1은 설정되지 않음계정 유효기간, 날짜형식으로 지정사용자 생성시 할당되는 Shell사용자 생성 시에 제공되는 파일 및 디렉토리가 들어있는 디렉토리사용자 생성시 메일 파일을 생성할 지 지정, yes -> /var/spool/mail에 메일관련 파일 생성

/etc/skel❓ skeleton의 약자로 홈 디렉토리를 만드는데 필요한 기본이 되는 파일

[root@localhost ~]# ls -al /etc/skel/
합계 24
drwxr-xr-x.   3 root root   78  4월 11  2018 .
drwxr-xr-x. 143 root root 8192  2월 22 16:37 ..
-rw-r--r--.   1 root root   18  4월 11  2018 .bash_logout
-rw-r--r--.   1 root root  193  4월 11  2018 .bash_profile
-rw-r--r--.   1 root root  231  4월 11  2018 .bashrc
drwxr-xr-x.   4 root root   39  2월 21 14:50 .mozilla

/etc/login.defs

이미지 출처

// 수정 시,
# vi /etc/login.defs


...

옵션

  • -s : 사용자 shell 지정
  • -b : 사용자 홈 디렉토리 변경
  • -f : inactive 변경
  • -u : uid 변경
  • -d : 특정 디렉토리 지정
  • -g : 기본 그룹 지정
  • -G : 보조 그룹 지정
  • -D : 사용자 생성 default 값 확인 및 default 값 수정
    단독으로 사용하면 -default 값 확인
    다른 옵션과 함께 사용하면 vi 편집기 없이 /etc/default/useradd 내의 값 수정 가능
  • -m : /etc/login.defs에서 홈디렉토리 생성 항목이 no로 되어 있을 시에 홈디렉토리 생성 위해서 사용하는 옵션

사용자 수정

# usermod [option] [username]

추가옵션

useradd의 옵션을 기본적으로 사용할 수 있음

  • -a : 보조그룹을 추가 (-G와 함께 사용)
    a옵션만 단독으로 쓰면 덮어쓰기
[root@localhost ~]# id user04
uid=3001(user04) gid=3001(user04) groups=3001(user04),10(wheel)
[root@localhost ~]# usermod -G adm,nobody user04
[root@localhost ~]# id user04
uid=3001(user04) gid=3001(user04) groups=3001(user04),4(adm),99(nobody)
root@localhost ~]# usermod -aG adm,nobody user04
[root@localhost ~]# id user04
uid=3001(user04) gid=3001(user04) groups=3001(user04),4(adm),10(wheel),99(nobody)
  • -m : 홈디렉토리의 변경할때 사용(-d와 함께 사용)
    단독으로 사용하면, 설정만 변경되고 실제 디렉토리는 옮겨지지 않음 d옵션과 함께 사용
  • -l : 계정명 변경
[root@localhost ~]# usermod -md /home/testuser -l testuser user05
  • -L : 계정 잠금(로그인하지 못 하게)
[root@localhost ~]# usermod -L testuser
  • -U : 계정 잠금 해제
[root@localhost ~]# usermod -U testuser

사용자 삭제

# userdel [option] [username]
// user04 로 파일 생성
[root@localhost ~]# su - user04
[user04@localhost ~]$ touch important
[user04@localhost ~]$ vi important
[user04@localhost ~]$
[user04@localhost ~]$ exit
logout
[root@localhost ~]# su - centos
[centos@localhost ~]$ cd ~user04/ 
-bash: cd: /home/user04/: 허가 거부 // 다른 사용자는 접근 불가

[root@localhost ~]# userdel user04 // -r 없이 삭제
[root@localhost ~]# ls -l /home
합계 0
drwx------. 5 centos centos 128  2월 22 15:38 centos
drwx------. 3 user01 user01  78  2월 22 15:15 user01
drwx------. 3 user02 user02  78  2월 22 15:17 user02
drwx------. 3 user03 centos  78  2월 22 15:19 user03
drwx------. 5   3001   3001 161  2월 22 15:37 user04 // 유저는 사라졌지만 홈디렉토리는 남아있음
[root@localhost ~]# useradd -u 3001 testuser01
[root@localhost ~]# su - testuser01
[testuser01@localhost ~]$ cd ..
[testuser01@localhost home]$ ls -l
합계 0
drwx------. 5 centos     centos     128  2월 22 15:38 centos
drwx------. 5 testuser01 testuser01 107  2월 22 15:39 testuser01
drwx------. 3 user01     user01      78  2월 22 15:15 user01
drwx------. 3 user02     user02      78  2월 22 15:17 user02
drwx------. 3 user03     centos      78  2월 22 15:19 user03
drwx------. 5 testuser01 testuser01 161  2월 22 15:37 user04 // 새로운 유저가 할당받음

[testuser01@localhost home]$ cd user04 // 새로운 유저가 기존 유저가 만들었던 파일에 접근 가능
[testuser01@localhost user04]$ ls
important
[testuser01@localhost user04]$ vi important

userdel을 사용할 때, -r 옵션을 주지 않으면 홈 디렉토리가 같이 삭제되지 않으므로 -r 옵션에 주의하자(-r 옵션은 사용자와 홈디렉토리까지 삭제하는 옵션)

그룹 관리

그룹 생성

# groupadd [option] [username]

옵션

  • -g : gid 부여가능
[root@localhost ~]# groupadd -g 4000 testgroup1
[root@localhost ~]# tail -2 /etc/group
testgroup:x:3003:
testgroup1:x:4000:

그룹 수정

# groupmod [option] [username]

옵션

  • -g : gid 부여가능
  • -n : 그룹명 변경
[root@localhost ~]# groupmod -g 5000 -n test testgroup1
[root@localhost ~]# tail -2 /etc/group
testgroup:x:3003:
test:x:5000:

그룹 삭제

# groupdel [option] [username]

사용자 계정 관리

passwd

로그인한 사용자의 암호를 설정하는 명령어
root 사용자는 모든 계정 변경 가능

[user01@localhost root]$ passwd
user01 사용자의 비밀 번호 변경 중
user01에 대한 암호 변경 중
(현재) UNIX 암호:

chage

해당유저에 대한 정보 확인 및 암호 속성을 변경하는 명령어
root만 사용가능

[root@localhost ~]# chage -l user01
마지막으로 암호를 바꾼 날                                       : 2월 22, 2022
암호 만료                                       :안함
암호가 비활성화 기간                                    :안함
계정 만료                                               :안함
암호를 바꿀 수 있는 최소 날 수          : 0
암호를 바꿔야 하는 최대 날 수           : 99999
암호 만료 예고를 하는 날 수             : 7

옵션

  • -l 계정명 : 계정 암호속성 확인
  • -m : 암호최소변경일
  • -M : 암호최대사용일 수정
  • -W : 암호최대사용일 경고일 수정
  • -I : inactive 설정
  • -E : 계정 만료기간 설정
  • -d : 암호변경일 설정
[root@localhost ~]# chage -d 0 user01

[root@localhost ~]# chage -m 1 -M 7 -W 10 user01
[root@localhost ~]# chage -l user01
마지막으로 암호를 바꾼 날                                       : 2월 22, 2022
암호 만료                                       : 3월 01, 2022
암호가 비활성화 기간                                    :안함
계정 만료                                               :안함
암호를 바꿀 수 있는 최소 날 수          : 1
암호를 바꿔야 하는 최대 날 수           : 7
암호 만료 예고를 하는 날 수             : 10

참고자료 : useradd 파일, [login.defs]

profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글