/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 계정 편집기로 생성
/etc/passwd 파일에 내용추가
/etc/group 파일에 내용추가
/etc/shadow 파일에 내용추가(편집기 이탈시 :wq!)
결과
정상적으로 계정 접속이 가능
<기본 구조>
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) 접근통제
- DAC(임의적 접근통제) - chmod의 방법
- MAC(강제적 접근통제)
- 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)에 따른 동작 여부
- 실행(x) 권한 유무 = 디렉터리 접근 가능 여부
- 읽기(r) 권한 유무 = 목록 확인 가능 여부
- 쓰기(w) 권한 유무 = 파일 생성 가능 여부
소유권(그룹)에 따른 접근 가능 여부
제 3자에 대한실행 권한이 있다면
그룹에 속해있던 아니던간에 접근 가능하지만
제 3자에실행 권한이 없으면
그룹에 속해있지 않은 사용자는 접근 불가능
Sticky Bit에 따른 파일 삭제 가능 여부
1. dir1 디렉터리에 Sticky Bit를 주지않았을때
dir1 안에 소유자, 소유그룹이 khj2인 file1 파일 생성,
khj1 계정으로 삭제하면 삭제 가능하다.
(또한, root가 소유자, 소유그룹인 파일/디렉터리까지도 삭제 가능하다)2. dir1 디렉터리에 Sticky Bit를 주었을때
khj1 계정은 소유자 혹은 소유그룹이 khj1인 파일/디렉터리만 삭제 가능하다.
(결국 자신이 가지고있지 않은 파일/디렉터리는 삭제할 수 없다.)
(하지만 khj1 계정은 정상적으로 생성과 수정이 가능하다.)