Simple is IT, 누구나 보고 누구나 깨닫는 IT

Linux Part 4. 리눅스의 권한 (특수 권한) 본문

Simple is IT/Server

Linux Part 4. 리눅스의 권한 (특수 권한)

currenjin 2020. 5. 5. 23:08

권한(Permission)

- 파일 및 디렉토리에 접근을 제어한다. (읽기(read), 쓰기(write), 실행(x))

* 리눅스의 모든 파일과 디렉토리는 권한(Permission)을 가지고 있다.

** 파일시스템 상에 권한에 대한 정보를 저장하는 부분이 있다.

ex) ls -l

drwxr-xr--. 3 root root 18 1월 15 09:40 .config

첫 문자는 해당 파일의 종류, 나머지 문자는 권한을 나타냄

첫 root는 소유자의 명, 두 번째 root는 관리 그룹의 명

-> 1 필드 : 소유자 권한 (일반적으로 파일이나 디렉토리를 생성한 사용자, 명령어로 변경 가능)

2 필드 : 관리그룹 권한 (파일이나 디렉토리를 생성한 사용자가 속한 그룹, 명령어로 변경 가능)

3 필드 : 나머지 권한 (소유자도 아니고 관리 그룹에 속한 사용자도 아닌 경우)

command )

-> chmod [권한] [파일 또는 디렉토리 이름]

[권한] : 권한을 입력 시에는 심볼릭 모드와 옥텟 모드의 방식을 이용하여 입력 가능하다.

[파일 또는 디렉토리 이름] : 파일, 디렉토리를 지정할 때는 절대 경로 또는 상대 경로 모두 가능하다.

심볼릭 모드

ex) chmod u+w file, 소유자에게 쓰기 권한

옥텟 모드

r : 4, w : 2, x : 1

umask (기본값은 022)

File : 666 - 022 -> 644

Directory : 777 - 022 -> 755

권한 관련 파일 및 디렉토리의 명령어

명령어

파일

디렉토리

읽기

more, cat, head, tail, grep

ls

쓰기

vi edit mode

touch, mkdir, mv, cp, rm

실행

file name

cd

실습

testdir, testfile 생성 후 ls- al 명령을 입력하면

testdir : drwxr-xr-x.

testfile : -rw-r--r--.

권한 변경(심볼릭)

chmod u+x testfile, chmod g+w testfile

testfile : -rwxrw-r--.

chmod o-r testfile

testfile : -rwxrw----.

chmod go+rwx testfile

testfile : -rwxrwxrwx.

권한 변경(옥텟)

chmod 640 testdir

testdir : drw-r-----.

권한 별 파일 및 디렉토리 테스트

읽기와 쓰기의 제대로 된 권한을 위해선 실행권한을 필요로 한다.

쓰기와 실행의 제대로 된 권한을 위해선 읽기권한을 필요로 한다.

특수 권한

- 일반적인 권한과는 조금 다른 특수한 권한

SetUID:other가 파일을 실행할 때 소유자의 권한으로 접근할 수 있게 해주는 권한 (실행이 x가 아닌 s로 나타남)

- chmod 4xxx [파일이름] 또는 chmod u+s [파일이름]

SetGID: other가 파일을 실행할 때 관리 그룹의 권한으로 접근할 수 있게 해주는 권한 (실행이 x가 아닌 s로 나타남)

- chmod 2xxx [파일이름] 또는 chmod g+s [파일이름]

StickyBit: 디렉토리를 마치 자유게시판처럼 사용할 수 있게 해주는 권한일반적으로 /tmp 디렉토리에 부여 (실행이 x가 아닌 t로 나타남)

- chmod 1xxxx [파일이름] 또는 chmod o+t [파일이름]

실습

SetUID, SetGID 권한 변경 명령

chmod 4777 test

test : -rwsrwxrwx.

chmod 2777 test

test : -rwxrwsrwx.

chmod 1777 test

test : -rwxrwxrwt

find / -perm -4000 > /jhj/setuid_file_list (4000이 포함된 파일을 찾기 위해 앞에 - 붙이기)

Sticky Bit 실습

chmod 777 dir1, chmod 1777 dir2 두 디렉토리의 차이점

1. dir1에서는 사용자끼리 소유물의 권리가 없음

2. dir2에서는 사용자끼리 소유물의 권리가 있음

번외

/etc/shadow에 패스워드가 저장되어야 하는데 권한이 0000임 그래서 일반 사용자가 패스워드를 바꾸게 되면 어떻게 저장하나?

그래서 /usr/bin/passwd : -rwsr-xr-x. 실행되는 만큼은 소유자권한으로 접근(root)


Comments