공부(3) - 사용자 및 파일 권한 관리 명령어(whoami, adduser, userdel, sermod, chmod, chown, chgrp, umask)

2025. 2. 19. 03:14·리눅스

참고서적 - 모의 해킹으로 알아보는 리눅스 서버 해킹과 보안

drwxr-xr-x라고 나오는 부분: 파일 형식과 권한을 표시

young seoyoung : 해당 파일과 디렉터리의 사용자와 그룹의 소유권을 표시

1번째 필드 2~4번째 필드 5~7번째 필드 8~10번째 필드
파일 형식 사용자(user) 권한 그룹(group) 권한 기타 사용자 권한
-: 파일 r: 읽기 권한 r: 읽기 권한 r: 읽기 권한
d: 디렉터리 w: 쓰기 권한 w: 쓰기 권한 w: 쓰기 권한
s: 소켓 파일 x: 실행 권한 x: 실행 권한 x: 실행 권한

▲ 파일 권한 설명

 

종류 파일 디렉터리
r(읽기 권한) 파일 읽기, 복사(cp 명령어) 가능 ls 명령어로 디렉터리 내 목록 조회 가능
w(쓰기 권한) 파일 수정, 이동, 삭제 가능(rm, mv 가능) 디렉터리 내 파일을 생성, 삭제 가능
x(실행 권한) 파일 실행 가능(실행 파일, 셸 스크립트) cd 명령어로 디렉터리 접근 가능(읽기 권한이 없다면 ls는 불가)

▲ 파일, 디렉터리 권한 종류

 

유형 설명 소유자 변경 명령어
사용자 파일의 소유자 chown
그룹 해당 파일의 그룹 정보 chgrp
기타 사용자 소유자, 그룹에 속하지 않는 모든 사용자  

▲ 파일 소유자 유형

 

다음 예시로 사용자와 권한 종류를 알아보자.

drwxr-xr-x

첫 번째 필드 d -> 파일 형식이 디렉터리.

2~4번째 사용자 권한은 rwx -> 사용자가 읽기, 쓰기, 실행 권한을 가지고 있음.

5~7번째 그룹 권한, 8~10번째 사용자 권한 모두 r-x -> 그룹과 기타 사용자는 읽기와 실행 권한만 가지고 있음.

 

 

 

 


1. whoami, 현재 사용자 확인

 

 

 

 


2. adduser/useradd, 사용자 추가

명령어 형식: adduser <사용자명>

-d 옵션: 홈 디렉터리 변경

-g <그룹ID> 또는 -G <그룹명>: 추가 사용자의 그룹 지정

*사용자의 추가, 제거, 확인 등의 명령은 일반 사용자는 실행할 수 없는 명령으로 sudo 명령어를 이용해 root 권한으로 실행해야 함.

▲ useradd 이용해 testuser 사용자 생성, 그룹 ID를 1로 지정한 testuser2 사용자 생성

▲ 맨밑에 testuser 사용자 확인 가능, 그룹 ID가 1로 지정된 testuser2 사용자 확인 가능.

 

* /etc/passwd 파일엔 사용자의 정보가 사용자 id로 정렬된 상태로 저장되어 있음.

구조: [ 사용자명:비밀번호:사용자 ID:그룹 ID:코멘트:홈 디렉터리:기본 셸 ]

비밀번호는 암호화되어 x로 나오고, /etc/shadow 파일에 저장됨.

 

* cat 명령어는 파일 내용을 간단하게 출력하기 위해 사용하는 명령어. 파일 내용을 볼 수 있다는 점에서 more(페이지 단위 출력), tail(맨 마지막 페이지부터 출력) 명령어와 유사.

 

 

 

 


3. userdel, 사용자 삭제

$ sudo userdel 사용자명

 

 

 

 


4. usermod, 사용자 변경

사용자 설정(홈 디렉터리, 비밀번호, 그룹명 등)을 변경할 때 사용.

주요 옵션: -d(홈 디렉터리 변경), -g(그룹 id 변경), -p(비밀번호 변경) 

# usermod 명령어 실행 형식
$ usermod <옵션> <사용자명>

# testuser 사용자의 그룹 ID로 홈 디렉터리를 /tmp로 변경
$ sudo usermod -g 1 -d /tmp testuser

 

 

 

 


5. chmod, 파일 권한 변경

파일과 디렉터리의 소유자별 읽기, 쓰기, 실행 권한을 변경할 때 사용.

# chmod 명령어 실행 형식
$ chmod <권한> <파일명>

방식 두 가지

(1) r, w, x 기호를 이용해 표현

: ex) chmod u+rw abc.txt -> 소유자 권한에 읽기, 쓰기 권한을 추가한다는 것.

(2) 2진수의 비트 형태로 표현

: 아홉 자리로 앞에 세 자리는 사용자, 중간 세 자리는 그룹, 마지막은 기타 사용자에 대한 권한

권한 기호 숫자 값
읽기 r 4
쓰기 w 2
실행  x 1
없음 - 0

 

▼ 실습

# copy2.txt에 대한 권한 확인 후, 소유자(u)에 쓰기 권한 제거(-w) -> -rw가 -r로, 3번째 w가 -로 변경됨.

 

▼ 실습

# 비트를 이용해 소유자, 그룹, 기타 사용자 권한 변경

# 6(rw-), 4(r--), 4(r--)로 파일 권한 변경

* 6 (4 + 2) (읽기 + 쓰기)

 

 

 

 


6. chown, 파일 소유권 변경

$ sudo chown <변경사용자> <파일명>

 

 

 

 


7. chgrp, 파일 그룹 변경

$ sudo chgrp <변경그룹> <파일명>

 

 

 

 


8. umask, 초기 파일 접근 권한 설정

옵션 없이 실행하면 현재 초기 파일 접근 권한이 출력됨.

-S 옵션: 비트로 출력되는 접근 권한 값을 r, w, x와 같은 문자로 출력 가능.

# 초기 파일 접근 권한 변경할 때
$ umask <마스크값>

umask의 비트 계산 방법: 파일의 최대 권한(666) - 디렉터리 최대 권한(777) = 결과 비트값이 기본 파일 접근 권한이 됨.

 

① 파일의 최대 권한 설정

rw- rw- rw- (666)

110 110 110 (666, 2진수로 변환)

 

② unmask 값을 설정 (예: 022)
umask 값 022를 2진수로 변환하면:

000 010 010 (022)

 

③ 최대 권한에서 umask 값을 빼기

110 110 110 (666) # 최대 권한
000 010 010 (022) # umask 값
-------------------
110 100 100 (644)
rw- r-- r-- (644)

즉 최종적으로 적용되는 파일 권한은 rw- r-- r--

 

 

 

 


 

'리눅스' 카테고리의 다른 글
  • 리눅스 (1) - 유닉스/리눅스 소개
  • 공부(4) - 네트워크 관리 명령어, 서비스 관리 명령어(ifconfig, netstat, route, ping, systemctl)
  • 공부(2) - 기본 명령어(ls, cd, pwd, rndir, rm, cp, mv, find, du, df, tar, sudo, root)
  • 공부(1) - 설치 및 호스트/사용자 이름 변경
seo_young
seo_young
  • seo_young
    86400개의 발자국
    seo_young
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • 리눅스 (11)
      • 웹 기초 (9)
      • 회로이론1 (1)
      • 자료구조 (15)
      • 백준 - C (7)
      • 백준 - 파이썬 (7)
      • 크롤링 스터디 (0)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
seo_young
공부(3) - 사용자 및 파일 권한 관리 명령어(whoami, adduser, userdel, sermod, chmod, chown, chgrp, umask)
상단으로

티스토리툴바