7.27 정리-그룹, 허가권 및 소유권

HakJin Kim·2023년 7월 27일
0
post-thumbnail

그룹

  1. 기본 그룹
    명령어로 기본 그룹 삭제 X
  2. 일반 그룹

/etc/group

[그룹명]:[패스워드]:[그룹 식별자]:[소속원]
khj:x:1001:

그룹 생성

#groupadd [그룹명]

그룹 삭제

#groupdel [그룹명]

그룹에 계정 추가

<usermod로 계정 추가>
#usermod -G [그룹명] [추가시킬 계정명]
#usermod -G khj khj3

<동시에 2개 이상 그룹에 추가>
#usermod -G khj3,khj4 khj6
<gpasswd로 계정 추가>
#gpasswd [옵션] [추가시킬 계정명] [그룹명]
#gpasswd -a khj5 khj

<옵션>
-a : 계정 추가
-d : 계정 삭제
<편집기로 계정 추가>
(vi group으로 일일이 작성)

실습

  • # usermod -G khj2 khj3 = khj2 그룹에 khj3 계정 추가

  • # usermod -G khj khj4 = khj 그룹에 khj4 계정 추가

  • # usermod -G khj khj3 = khj 그룹에 khj3 계정 추가(이동)

  • # gpasswd -a khj5 khj = khj 그룹에 khj5 계정 추가

  • # gpasswd -a khj6 khj = khj 그룹에 khj6 계정 추가

  • # usermod -G khj3,khj4 khj5 = khj3, 4 그룹에 khj5 계정 추가(여러개 그룹에 추가)

khj7 계정 생성 후 수동 삭제

1. vi /etc/passwd	-> 해당 계정 정보 삭제
2. vi /etc/group	-> 해당 계정 정보 삭제
3. vi /etc/shadow	-> 해당 계정 정보 삭제 -> :wq!
4. cd /home			->rm -rf khj7
5. cd /var/mail		->rm -rf khj7

id1 계정 편집기로 생성

  1. /etc/passwd 파일에 내용추가

  1. /etc/group 파일에 내용추가

  1. /etc/shadow 파일에 내용추가(편집기 이탈시 :wq!)


결과

  • 정상적으로 계정 접속이 가능

허가권

  • 리눅스에서의 mod = 허가권/소유권
<기본 구조>
d(파일유형)rwxr-xr-x(허가권). 2(링크수) root(소유자명) root(그룹명) 6(파일크기)  
~ 7월 27 11:00(파일 수정날짜) dir1(파일/디렉터리 이름)

drwxr-xr-x. 2 root root 6  7월 27 11:00 dir1
<파일 유형>
-d : 디렉터리
-'-' : 일반파일
-l : 심볼릭 링크
-b : 블록 장치 파일 (디스크에 저장되는 파일들)
-c : 문자 파일
<허가권>

[rwxr-xr-x???]
rwx(u / 소유자) r-x(g / 그룹) r-x(o / 그 외 사용자)

[rwx???]
Read(r) : 읽기 / 4비트
-> 디렉터리 안에서의 파일/디렉터리 목록 출력(ls) 권한
-> 파일 내용 확인/읽기 권한

Write(w) : 쓰기 / 2비트
-> 디렉터리 안에서의 파일/디렉터리 생성/수정/삭제 권한
-> 파일 내용 생성/수정/삭제 권한

eXecute(x) : 실행 / 1비트
-> 디렉터리 안으로의 진입 권한
-> 파일 내용 실행 권한

<디렉터리 허가권> -> (7)777
- 디렉터리의 기본 허가권 -> rwxr-xr-x(755)

<일반파일 허가권> -> (7)666 / x(실행)은 0비트
- 일반파일의 기본 허가권 -> rw-r--r--(644)

<umask>
- 파일/디렉터리 생성 시 참조 허가권 (기본 : 0022)
0(특수)0(소유자)2(그룹)2(그 외 사용자)

umask

  • etc/bashrc
    기본 umask 설정 가능

  • etc/login.defs
    계정 생성시 적용되는 umask 확인 및 설정 가능

umask 사용 예시 1 (디렉터리)

[디렉터리의 최대 허가권] - 7   7   7 (rwx rwx rwx)
[umask의 설정 허가권]   - 0   2   2 (--- -w- -w-)
[디렉터리의 기본 허가권] - 7   5   5 (rwx r-x r-x)

umask 사용 예시 2 (파일)

[파일의 최대 허가권]	- 6   6   6 (rw- rw- rw-)
[umask의 설정 허가권]	- 0   2   2 (--- -w- -w-)
[파일의 기본 허가권]	- 6   4   4 (rw- r-- r--)

cf) 접근통제

  1. DAC(임의적 접근통제) - chmod의 방법
  2. MAC(강제적 접근통제)
  3. RBAC(역할 기반 접근통제)

특수 허가권

  • 실행 권한에 대한 것

1. Sticky Bit(t:1)

제 3자의 실행 비트

2. SetGID(s:2)

그룹의 실행 비트

3. SetUID(s:4)

소유자의 실행 비트

소문자? 대문자?

  • 소문자 비트 = 기존 실행 권한 있음
  • 대문자 비트 = 기존 실행 권한 없음
    (실행이 되어야 root권한이 부여됨->실행안되면 무용지물)
  • 현재 dir1 디렉터리에는 SetGUI O, 실행권한 X
    dir2 디렉터리에는 SetGUI O, 실행권한 O

Sticky Bit / t

  • 모든 사용자에 대해 쓰기(W)권한이 부여된 tmp 디렉터리
    해당 파일/디렉터리만큼은 해당 파일/디렉터리의 소유자만 삭제 가능
    (소유자 외 모든 사용자=생성, 수정까지만 가능, 소유자=생성, 수정, 삭제까지)

SetGID, SetUID / s

  • SetUID = 실행할 때만 root 권한을 획득
  • /usr/bin/passwd 파일에 SetUID를 설정하지않으면 다른 사용자가 passwd 명령어를 사용 못함.
    즉, passwd 파일에 SetUID가 적용되었다면 일반 사용자라도 실행하는 순간에는 root 권한을 얻게된다.
  • /etc/passwd 파일의 비밀번호 설정이 안되어있다는 x를 삭제하면 패스워드 요구 없이 로그인이 가능하다. (문자 x가 존재 자체로 의미가 있다.)

허가권 변경

<기본구조>
#chmod [옵션] [허가권 비트] [파일/디렉터리 이름]

<ex>
#chmod 777 dir1 -> dir1 디렉터리 안에서의 777권한 부여
#chmod 777 *	-> 모든 파일/디렉터리에 777권한 부여
#chmod 777 f*	-> f로 시작하는 파일/디렉터리에 777권한 부여

<옵션>
-R : 하위 디렉터리까지 변경

사용자 심볼

-u : 사용자
-g : 그룹
-o : 그 외 사용자
-a : 모든 사용자

권한 심볼

-r : 읽기
-w : 쓰기
-x : 실행
-s : SetUID, SetGID
-t : Sticky Bit

액션

+ : 권한 부여(추가)
- : 권한 제거
= : 권한 부여(설정)

ex)

#chmod u+w dir1			-> 소유자에게 쓰기 권한 부여
#chmod a-w dir1			-> 모두에게 쓰기 권한 제거
#chmod u+x,g+w,o+r dir1	-> 소유자 실행, 그룹 쓰기, 3자 읽기 권한 부여
#chmod ug-x,o-rwx dir1	-> 소유자 쓰기, 3자 모든 권한 제거
#chmod ug+s dir1		-> 소유자, 그룹에게 SetUID, GID 부여
#chmod o+t dir1			-> 3자에게 sticky bit 부여
#chmod a=r dir1			-> 모두에게 쓰기 권한 부여

소유권

<소유자,그룹 변경>
#chown khj.khj dir1
#chown khj:khj dir2
#chown khj. dir3
#chown khj: dir4
<소유자 변경>
#chown khj dir7
<그룹 변경>
#chown .khj dir5
#chown :khj dir6
  • 소유권 실습 결과

허가권/소유권 실습

  • 허가권(rwx)에 따른 동작 여부
  1. 실행(x) 권한 유무 = 디렉터리 접근 가능 여부
  2. 읽기(r) 권한 유무 = 목록 확인 가능 여부
  3. 쓰기(w) 권한 유무 = 파일 생성 가능 여부

  • 소유권(그룹)에 따른 접근 가능 여부
    제 3자에 대한 실행 권한이 있다면 그룹에 속해있던 아니던간에 접근 가능하지만
    제 3자에 실행 권한이 없으면 그룹에 속해있지 않은 사용자는 접근 불가능

  • Sticky Bit에 따른 파일 삭제 가능 여부

1. dir1 디렉터리에 Sticky Bit를 주지않았을때

dir1 안에 소유자, 소유그룹이 khj2인 file1 파일 생성,
khj1 계정으로 삭제하면 삭제 가능하다.
(또한, root가 소유자, 소유그룹인 파일/디렉터리까지도 삭제 가능하다)

2. dir1 디렉터리에 Sticky Bit를 주었을때

khj1 계정은 소유자 혹은 소유그룹이 khj1인 파일/디렉터리만 삭제 가능하다.
(결국 자신이 가지고있지 않은 파일/디렉터리는 삭제할 수 없다.)
(하지만 khj1 계정은 정상적으로 생성과 수정이 가능하다.)

profile
처음 시작하는 사람

0개의 댓글

관련 채용 정보