네트워크 관리사

NOS[LINUX-계정 및 권한 관리-명령어 정리]

W_key 2025. 5. 9. 14:57
반응형

1) 계정관리 

useradd(adduser)

- 리눅스에서 사용자 계정을 생성하는 명령어이다.

사용법 useradd [옵션] [사용자 이름] 실행

useradd 옵션

옵션 설명
-u UID 지정
-g GID 지정
-G 기본 그룹 이외 2차 그룹의 GID 지정
-d 사용자 홈 디렉터리 지정
-e 계정 만기일 지정 (YYYY-MM-DD) 형식
-f 계정 유효일 지정(남은 일수만큼을 숫자로 지정)
-s 계정 사용자 로그인 시 사용할 셸 지정
-c 사용자 계정 코멘트 추가
-M 사용자의 홈 디렉터리를 생성하지 않음

 

passwd 명령어

- 계정 생성 후 패스워드를 설정해야 해당 계정을 사용 가능

useradd [사용자 이름] 실행

/etc/passwd 파일 필드 구조 (:콜론으로 구분 user:x:500:500:developer:/home/user:/bin/bash)

필드순서 1 2 3 4 5 6 7
구분 Login
name
Password User ID User 
group ID
comments Home
Directory
shell
역활 사용자 이름 패스워드 UID GID 사용자 계정 코멘트 홈 디렉토리
예시 user x 500 500 developer /home/user /bin/bash

 

1) Login name (사용자 이름) : 사용자의 이름을 나타내고 검색할 때 사용됨, 다른 사용자와 이름이 중복 불가능

2) Passwd(패스워드) : 패스워드가 암호화됨 /etc/shadow 파일에 저장되어 있음

3) User ID(UID) : 사용자의 ID를 의미 관리자는 0번, 일반 사용자는 500부터 시작

4) User group ID(GID) : 사용자가 소속되어 있는 그룹의 ID를 의미한다. 관리자 그룹은 0번이며, 일반 사용자 그룹은 500부터 시작

5) commets(사용자 계정 코멘트) : 사용자 계정에 대한 주석(코멘트)을 기록하는 필드로, 시스템 설정에는 영향을 미치지 않는다.

6) Home Directory(홈 디렉토리) : 사용자의 홈 디렉토리를 의미 관리자는 /root 일반 사용자 /home 디렉토리 하위에 생성됨

Ex) /home/user

7) shell(로그인 쉘) : 사용자가 로그인 할 때 사용할 쉘 파일의 위치를 의미함, /etc/shell 파일에 정의 기본설정은 /bin/bash

 

shadow 명령어

- 계정 생성 후 패스워드를 설정해야 해당 계정을 사용할 수 있는데, 설정된 계정별 패스워드가 저장되는 파일이다.

/etc/shadow 파일 필드 구조 (:콜론으로 구분 user:key12#!:100:3:100:10:1)

필드 순서 1 2 3 4 5 6 7 8 9
구분 Login
name
En-crypted Last
changed
Mini-mum Maxi-mum lnactive lnactive Expire  Re-served
역활 사용자 이름 암호화된 실제 패스워드 마지막
암호 
변경일
암호변경
최소 
주기

암호변경
최대
주기
암호변경
경고
일수
로그인
차단 
일수
로그인 사용금지
일수
예약된 필드
예시 user key12#! 100 3 100 10 1    

1) Login Name(사용자 이름) : 사용자 이름을 나타내고 검색할 때 사용함, 다른 사용자와 이름이 중복 불가능

/etc/passwd 및  /etc/group 파일 내의 사용자 이름과 동일해야 한다.

2) Encrypted(암호화된 실제 패스워드) : 사용자의 실제 패스워드를 암호화하여 보여주는 곳이다.

3) Last Changed(마지막 암호 변경일) : 마지막으로 암호를 변경한 날짜를 경과한 일수만큼 계산하여 표기

Ex) 2025-05-09에 마지막으로 암호를 변경하고  2025-08-17 (100일 경과) 로 표기됨

4) Mini-mum(암호 변경 최소 주기) : 마지막 암호 변경일을 기준으로 최소 주기가 지나야 변경 가능

5) Maxi-mum(암호 변경 최대 주기) : 마지막 암호 변경일을 기준으로 최대 주기가 지나기 전에 패스워드를 변경 가능

6) warn(암호 변경 경고 일수) : 암호 변경 최대 주기가 임박한 경우 며칠 동안 경고를 보낼 것인지를 지정함

Ex) 암호 변경 최대가 100 경고수가 10이면 91일부터 10일 동안 암호 변경 경고 메세지를 보여줌

7) lnactive(로그인 차단 일수) : 사용자의 로그인을 차단하는 일 수이다.

8) Expire(로그인 사용 금지 일수) : 사용자의 로그인 사용을 금지하는 일 수이며, YYYY-MM-DD 형식으로 표기

9) Reserved(예약된 필드) : 시스템 예약 필드로, 공백으로 남겨둠

 

2) 권한 관리

chmod 명령어

- 리눅스에서 파일이나 디렉토리의 시스템 권한을 부여하는 명령어

사용법 chmod [옵션] [권한값] [파일명] 실행 권한값에는 알파벳 숫자로 표현 가능

해당 파일이나  디렉토리 소유주 또는 root 계정주만이 권한을 변경할 수 있다.

chmod 권한구조

파일 종류 Owner Group Other
d r w x r w r w x
디렉토리 4 2 1 4 2 1 4 2 1
영문자나 기호로 표기 최대 7~ 최소 1 최대 7~ 최소 1 최대 7~ 최소 1

 

권한 종류

의미 문자 숫자
읽기 r 4
쓰기 w 2
실행 x 1

 

권한을 설정하는 두 가지 방법

 

1.  Symbolic mode

표기 방법

+ (추가) / - (삭제)

Ex) chmod u+w(사용자에게 쓰기 권한 추가) g+r(그룹에게 읽기 권한 추가 ) o + x (다른 사용자에게 실행 권한 추가) [파일명]

chmod u-w(사용자에게 쓰기권한 삭제 ) g-r(그룹에게 읽기 권한 삭제 ) o-x (다른 사용자에게 실행 권한 삭제 )  [파일명]

keys라는 디렉토리 현재 소유주 rwx 그룹r-x 그외 사용자 r-w임
chmod 명령어로 소유주와 그룹에는 읽기 권한을 삭제 그 외 사용자는 실행 삭제
다음과 같은 결과가 나옴

Ex) chmod ugo + rwx [파일명]

한방에 권한을 추가/삭제 할수 있었음

 

위에서 삭제했던 권한을 다시 주어서 복구한 모습

 

2. Octal mode

표기 방법

4=r 읽기 권한, 2=w 쓰기 권한, 1=x 실행 권한

총 3자리로 표기된 앞에서부터 1,2,4 숫자를 합으로 분해하고 분해된 숫자를 차례대로 유저/그룹/다른 사용자 권한으로 풀이

 

Ex) chmod 751 소유주에겐 7(읽기 4 + 쓰기 2 + 실행 1 = 합 7) 그룹(읽기 4 + 쓰기 0  + 실행 1 = 합 5) 다른 사용자( 읽기 0 + 쓰기 0  + 실행 1 = 합 1) 즉 751임

 

777로 권한을 주었더니

 

아래 디렉토리 권한에 소유주 그룹 그외 사용자들 전부 읽기,쓰기,실행권한을 준 모습
위에 예시와 같이 권한을 주었더니
소유자에겐 7 읽기 쓰기 실행권한 부여 그룹에겐 읽기 실행만 부여 그외 사용자는 실행권한만 부여되는 모습

 

설정된 권한 보는 법

필자의 경우 ls -al로 파일리스트를 열어봄

 

앞에 d는 디렉토리 뒤에 key.txt는 -인건 파일이라는 뜻

 

umask 명령어

- 파일 생성 시마다 매번 권한을 부여할 필요 없도록 디폴트 권한을 지정한 값이다.

리눅스 명령어로 umask를 검색해 보니 022 였고 666에서 해당 값 022를 뺀 값 => 644임 

umask는 022

 

chown 명령어

- 파일의 소유권을 변경하는 명령어이다.

chown [옵션] [소유자:소유 그룹] [파일명] 실행

chown 옵션

옵션 설명
-c 권한 변경 파일 내용 표시
-f 권한 변경되지 않은 파일에 대한 오류 메시지를 출력하지 않음
-v 작업 상태를 상세하게 출력
-R 하위 디렉토리의 모든 파일 권한을 변경
--help 도움말 출력
--version 버전 정보 출력

 

 

chgrp 명령어

- 파일의 소유 그룹을 변경하는 명령어

chgrp [옵션] [그룹 파일명]

chgrp 옵션

옵션 설명
-c 권한 변경 파일 내용 표시
-h 심볼릭 링크의 그룹 변경
-f 권한이 변경되지 않은 파일에 대한 오류 메세지를 출력하지 않음
-v 작업 상태를 상세하게 출력
-R 하위 디렉토리의 모든 파일 권한을 변경

 

chage 명령어

- 계정의 패스워드 및 로그인 정보를 관리하는 명령어이다

chage [옵션] [계정명] 실행

chage 옵션

옵션 실행
-m 패스워드의 최대 유효 일수, 뒤에 일수를 나타내는 숫자가 온다
-e 만료일, 뒤에 YYYY-MM-DD 형식으로 날짜가 온다
-w 사용자가 패스워드를 변경할 때까지 경고할 일수, 뒤에 일수를 나타내는 숫자가 온다.