INFRA/Linux

Linux 계정 관리

sshhhh 2024. 6. 27. 23:33

계정

  • 사용자를 식별하고 인증을 받거나 로컬/네트워크 자원에 접근하는 것을 가능하게 해줌
  • 권한을 편리하게 할당하기 위하여 사용
  • ex) 관리자 계정만 파일 볼 수 있음
  • 리눅스는 서버로서 많은 사람들이 접속함 → 계정을 구분해 접근 권한을 나눠야함
[test02@localhost ~]$ nl /etc/shadow 
nl: /etc/shadow: 허가 거부 --$ 일반계정 # root 관리자계정

 

 

 - switch user

[test02@localhost ~]$ su -
암호:
[root@localhost ~]# --root로 변경되었음
[root@localhost ~]# su - test02 --root는 암호없이 바로 변경가능
[test02@localhost ~]$ id --접속된 id 확인
uid=1001(test02) gid=1001(test02) groups=1001(test02)

--uid=0(root) gid=0(root) groups=0(root)

  
  


계정 관리 파일

- /etc/passwd : 사용자 계정 기본 정보

[root@localhost test]# cat -n /etc/passwd --==nl : 행번호 줘서 열겠다.
1 root:x:0:0:root:/root:/bin/bash
...생략...
37 test01:x:1000:1000:test01:/home/test01:/bin/bash
38 test02:x:1001:1001::/home/test02:/bin/bash

 

① root 사용자 계정 이름
② x 패스워드가 암호화되어 /etc/shadow파일에 저장되어 있음
③ 0 uid : 해당 계정에 대한 고유번호
→ OS가 겹치지 않도록 관리
(
관리자 : 0, 일반계정 : 500 이상)
④ 0 gid : 그룹
(관리자 : 0, 일반계정 : 500 이상)
⑤ root 계정 정보(comment)
⑥ /root 사용자의 홈 디렉터리
관리자 : /root , 일반계정 : /home/계정이름
⑦ /bin/bash 사용자의 shell 정의
(default : bash)

 

 

- pwunconv

[root@localhost ~]# pwunconv --예전처럼 passwd+shadow파일 동기화 시킴
[root@localhost ~]# nl /etc/passwd
--shadow파일 형식으로 열림
37	test01:$6$YHRA6tr4/d4Ia2PG$YaMuvNvnJrxPtuX7QmA5zKufiBj6Bqu.dBseGaeWNN05p7DL.JWLCnFK52VRw9ybwit42Epc0c.mWV1WitRzK0:1000:1000:test01:/home/test01:/bin/bash
38	test02:$6$dcYarZYeDe8tfixH$NmsN28eYKMKzM8UpnGfnhKe6muk.hez65iqvalIlNARTbQHQaD2g53Gz7/y.jW08vB98fxFoB2k/pZvaEK48w1:1001:1001::/home/test02:/bin/bash

[root@localhost ~]# nl /etc/shadow
nl: /etc/shadow: 그런 파일이나 디렉터리가 없습니다

[root@localhost ~]# pwconv
[root@localhost ~]# nl /etc/passwd
--passwd파일 형식으로 열림
[root@localhost ~]# nl /etc/shadow --열림

 

 

- /etc/shadow : 암호화된 패스워드 및 정책 설정 정보
(원래는 /passwd에 같이 저장되어 있었으나 보안상의 이유로 /shadow에 따로 저장)

[root@localhost test]# nl /etc/shadow
root:$6$cWvp1XfTVLecNgVT$QE4cgrQtLQIRVOOAoA6HH08mUFsmDGaEqJbUsAvywcpP.AxOdDbUxgWirPunqbW8LU3Ri7keEQbDVxggbsqwJ/:19870:0:99999:7:::
...생략...
test01:$6$YHRA6tr4/d4Ia2PG$YaMuvNvnJrxPtuX7QmA5zKufiBj6Bqu.dBseGaeWNN05p7DL.JWLCnFK52VRw9ybwit42Epc0c.mWV1WitRzK0
:19863:0:99999:7:::
test02:$6$dcYarZYeDe8tfixH$NmsN28eYKMKzM8UpnGfnhKe6muk.hez65iqvalIlNARTbQHQaD2g53Gz7/y.jW08vB98fxFoB2k/pZvaEK48w1
:19870:0:99999:7:::

--:~암호화된 패스워드 값:
--평문으로 보여주지 않음

 

 

 

 

계정 관리 명령어


useradd : 사용자 계정 생성

  • useradd -e : 사용자 계정의 만료일 설정
[root@localhost ~]# useradd -e 2024-05-31 test04
[root@localhost ~]# nl /etc/shadow
test04:!!:19870:0:99999:7::19874: --19874 4일후 계정만료

--test03->:19870:0:99999:7:::




passwd : 사용자 패스워드 설정 

  • 사용자 계정의 패스워드 생성 및 설정 변경
  • [root@localhost test]# useradd test02 
    [root@localhost test]# passwd test02 test02 
    사용자의 비밀 번호 변경 중 새 암호: 새 암호 재입력: 
    passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
  • 관리자는 모든 계정의 패스워드 변경 가능, 사용자 계정은 자신의 패스워드만 변경 가능
  • passwd -l : 패스워드 lock → 임시 휴직시 패스워드에 lock걸어두고 나중에 -u unlock (계정에 lock 건게 아님)
[root@localhost ~]# passwd -S test03
test03 PS 2024-05-27 0 99999 7 -1 (비밀번호가 설정되어있습니다, SHA512 암호화.  )
[root@localhost ~]# passwd -l test03
test03 사용자의 비밀 번호를 잠급니다
passwd: 성공

[test02@localhost ~]$ su - test03
암호:
su: 인증 실패

[root@localhost ~]# passwd -u test03
test03 사용자의 비밀 번호 잠금 해제 중
passwd: 성공

 

 

userdel -r :사용자 계정 + 홈 디렉터리까지 함께 삭제

[root@localhost test]# userdel -r test04

 

 

 

-G : 그룹 구성원 추가

[root@localhost test]# groups test02
test02 : test02

--그룹명 계정명
[root@localhost test]# usermod -G testgroup test03

[root@localhost test]# tail -5 /etc/group
test01:x:1000:
test02:x:1001:
test03:x:1002:
sajang:x:1004: --원래는 계정명으로 그룹이 만들어짐
testgroup:x:1005:test03 --그룹이름:암호화된패스워드:그룹관리자:그룹구성원

 

 

etc/skel 디렉터리

  • 사용자 계정의 홈 디렉터리에 제공 할 기본 환경설정 파일이 저장되어 있음
  • 계정이 만들어지면 skel 디렉터리 내용을 가져다 붙임
  • 활용법 : 계정 새로 생성시 꼭 봐야할 공통파일들 넣어놓으면 좋음
--work 디렉터리 만들어서 테스트중
[root@localhost ~]# mkdir /etc/skel/work

--계정을 만든다
[root@localhost ~]# useradd test03

--계정을 만들었더니 계정이름과 동일한 디렉터리가 /home 경로에 만들어짐
[root@localhost ~]# ls -a /home/test03
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla  work

--skel 디렉터리 내용 붙여넣어졌음
[root@localhost ~]# ls /etc/skel
work