728x90
728x170
49. 리눅스 권한 관리
1. umask
- 리눅스의 권한 관리
- 소유자, 그룹, 다른 사용자
- 각각은 읽기, 쓰기, 실행 권한을 가질 수 있음.
- 권한 종류
- 읽기 :
r
- 쓰기 :
w
- 실행 :
x
- 예)
rwx
: 읽기, 쓰기, 실행 모두 가능rw-
: 읽기, 쓰기 가능rw-rw-rwx
- 파일을 만든 소유자 : 읽기, 쓰기 가능
- 같은 그룹의 사용자 : 읽기, 쓰기 가능
- 다른 사용자 : 읽기, 쓰기, 실행 가능
- 읽기 :
- 권한 종류
- 파일을 만들 때마다 사용자가 매번 권한을 부여하는 것은 귀찮기 때문에, Default 권한 을 적용시켜 사용함.
umask
값은 Default 권한 값을 가지고 있음.- 예)
umask
값이022
일 경우0
: 소유자2
: 그룹2
: 다른 사용자6
으로 빼면 그 권한을 확인할 수 있음.- 666 - 022 = 644가 됨.
- r : 4
- w : 2
- x : 0
- 4 + 2 + 0 = 6이 되므로, 소유자는 읽기, 쓰기 권한을 가지고 있다는 것을 의미함.
- 디렉터리의 경우
7
에서 빼면 됨.
- 666 - 022 = 644가 됨.
- 예)
umask
값 변경하기
# umask // umask 값 확인하기
0022
# umask 0000 // umask 값 변경하기
# umask
0000
2. chmod
chmod
명령으로 사용자에게 권한을 부여할 수 있음.- 사용자 :
u
옵션에rwx
권한 부여 - 그룹 :
g
옵션에rwx
권한 부여 - 사용자 :
o
옵션애rwx
권한 부여
- 사용자 :
chmod [옵션] 파일명
- 최고 권한 :
777
- 각각의 형식은 읽기, 쓰기, 실행이 들어감.
- 각각의 숫자를 모두 더하면
777
이 되며, 읽기, 쓰기, 실행에 대하여 모든 유저가 권한을 가지게 됨.
유저 | 그룹 | 다른 사용자 | ||||||
읽기 | 쓰기 | 실행 | 읽기 | 쓰기 | 실행 | 읽기 | 쓰기 | 실행 |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
# ls -alp
total 68
파일 권한 소유자 그룹
drwxrwxr-x 13 ubuntu ubuntu 4096 Feb 2 07:13 ./
drwxr-xr-x 6 ubuntu ubuntu 4096 Apr 28 11:09 ../
-rwxrwxr-x 1 ubuntu ubuntu 8352 Sep 6 2020 HeapTest
-rw-rw-r-- 1 ubuntu ubuntu 165 Sep 6 2020 HeapTest.c
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 26 2020 IPCProgram/
drwxrwxr-x 2 ubuntu ubuntu 4096 Sep 4 2020 Interrupt/
drwxrwxr-x 2 ubuntu ubuntu 4096 Feb 2 07:14 LinuxMasterStudy/
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 29 2020 MmapProgram/
drwxrwxr-x 4 ubuntu ubuntu 4096 Aug 26 2020 ShellProgramming/
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 29 2020 StatProgram/
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 25 2020 SystemCallProgram/
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 29 2020 ThreadProgram/
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 25 2020 link/
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 25 2020 pidProgram/
drwxrwxr-x 2 ubuntu ubuntu 4096 Aug 25 2020 processTest/
- 적용 예
# chmod 771 abc // abc 파일에 대하여 유저와 그룹은 쓰기/읽기/실행 권한이 주어지며, 다른 사용자에게는 실행 권한만 주어짐.
chmod
- 리눅스에서 권한을 부여하는 명령
- 예)
# chmod 764 test.txt
# ls -alp test.txt
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Apr 28 11:12 ./
drwxrwxr-x 14 ubuntu ubuntu 4096 Apr 28 11:12 ../
-rwxrw-r-- 1 ubuntu ubuntu 0 Apr 28 11:12 test.txt
chmod
명령은 위의 에처럼 숫자 를 사용해서 권한을 부여할 수도 있지만, 문자 를 써서 권한을 부여하거나 삭제할 수도 있음.- 리눅스 파일의 종류
u
: userg
: groupo
: othera
: all+
: 추가-
: 삭제r
: 읽기w
: 쓰기x
: 실행
- 예1) 다른 사용자(Other User)의 읽기, 쓰기, 실행 권한 삭제
# chmod o-rwx test.txt
# ls -alp test.txt
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Apr 28 11:12 ./
drwxrwxr-x 14 ubuntu ubuntu 4096 Apr 28 11:12 ../
-rwxrw---- 1 ubuntu ubuntu 0 Apr 28 11:12 test.txt
- 예2) 다른 사용자의 읽기, 쓰기, 실행 권한 추가
# chmod o+rwx test.txt
# ls -alp test.txt
total 8
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Apr 28 11:12 ./
drwxrwxr-x 14 ubuntu ubuntu 4096 Apr 28 11:12 ../
-rwxrw-rwx 1 ubuntu ubuntu 0 Apr 28 11:12 test.txt
3. chown
- Change Owner
- 파일에 대한 사용자와 그룹을 변경할 수 있는 명령어
chown [option] [UID:GID][디렉터리/파일명]
형식으로 사용됨.-R
옵션 : 하위 디렉터리 및 파일 모두에 적용-c
옵션 : 권한 변경 파일 내용 출력
(1) chown
명령어 옵션
-R
: 하위 디렉터리의 모든 권한 변경-c
: 권한 변경 파일 내용 출력
(2) chown
명령어 대상
u
: user 권한g
: group 권한o
: other 권한a
: 모든 사용자 권한
(3) chown
명령어 인자 값
+
: 해당 권한 추가-
: 해당 권한 제거=
: 해당 권한 그대로 변경
(4) 권한
r
: 읽기 권한w
: 쓰기 권한x
: 실행 권한
사용 예
# ls -alp test.txt
-rwxrw-rwx 1 ubuntu ubuntu 0 Apr 28 11:12 test.txt
# chown starrykss test.txt // 소유자를 ubuntu에서 starrykss로 변경
# ls -alp test.txt
-rwxrw-rwx 1 starrykss ubuntu 0 Apr 28 11:12 test.txt
4. chgrp
- 파일이나 디렉터리의 소유 그룹을 변경하는 명령어
chgrp [옵션][그룹파일]
형태로 사용- 옵션
-c
: 실제 변경된 것을 보여줌.-h
: 심볼릭 링크 자체의 그룹 변경-f
: 그룹이 변경되지 않는 파일에 대해서 오류 메시지를 보여주지 않음.-v
: 작업 진행 상태 설명-R
: 하위 모든 파일도 지정한 그룹으로 변경
- 사용 예
# ls -alp test.txt
-rwxrw-rwx 1 starrykss ubuntu 0 Apr 28 11:12 test.txt
# chgrp starrykss test.txt
# ls -alp test.txt
-rwxrw-rwx 1 starrykss starrykss 0 Apr 28 11:12 test.txt
5. 특수 권한
(1) setuid
setuid
권한이 설정된 파일을 다른 사용자가 실행하게 될 경우- 실행될 때 그 파일의 소유자 권한으로 실행됨.
- 예)
/etc/passwd
root
가 소유자이고, 일반 사용자가 로그인 등을 수행할 때/etc/passwd
파일을 실행하게 됨.- 즉,
/etc/passwd
파일을 실행할 때,root
권한으로 실행됨.
- 즉,
-rwsr-xr-x
로 설정되어 있음.- 소유자 실행 권한 위치에 있는
s
가setuid
가 설정되어 있음을 나타냄. s
- 소문자 : 실행 권한이 있음.
- 대문자 : 실행 권한이 없음.
/usr/bin/passwd
를 실행하여/etc/passwd
파일의 내용을 변경할 수 있기 때문에/usr/bin/passwd
실행 파일에setuid
가 설정되어 있음.
- 소유자 실행 권한 위치에 있는
- 예)
- 실행될 때 그 파일의 소유자 권한으로 실행됨.
# ls -alp /usr/bin/passwd
-rwsr-xr-x 1 root root 45396 May 26 2012 /usr/bin/passwd // 소유자에 setuid가 설정되어 있음. 실행 시, 소유자인 root 권한으로 사용됨.
setuid
의 설정- 예) 8진수
400
이나u+s
를 사용해서 설정할 수 있음.chmod 4744 test.txt
라고 실행하면,test.txt
에setuid
가 설정되고,744
권한이 부여됨.chmod u+s test.txt
라고 실행하면, 사용자에setuid
를 추가하는 것을 의미함.
- 예) 8진수
setuid
가 설정된 파일 검색- 권한이
4000
이 부여된 것을find
명령으로 검색하면 모두 찾을 수 있음.
- 권한이
# chmod 4700 test.txt // setuid 설정
(2) setgid
- 파일 생성자의 그룹 소유권을 얻는 것
- 예)
starrykss
라는 사용자가AAA
의 디렉터리에 디렉터리 및 파일을 생성할 수 없음.- 하지만,
root
가chmod 2777 AAA
명령을 사용하여 디렉터리에setgid
를 부여하면starrykss
사용자가AAA
디렉터리에 하위 디렉터리를 만들거나 파일을 생성할 수 있게 됨.
- 하지만,
setgid
를 사용하는 것은 메일박스(MBox) 에서 확인할 수 있음.- 예)
/var/mail
디렉터리- 소유자가
root
, 그룹이mail
이며setgid
가 설정되어 있음. - 일반 사용자는 메일 계정을 생성할 때,
mail
디렉터리에 자신의 디렉터리를 생성하고 메일을 보관할 수 있게 됨. - 또한
setgid
는2000
이라는 8진수 권한을 부여할 수 있음.
- 소유자가
- 예)
(3) Sticky Bit
- 공용 디렉터리를 만들어서 모든 사람이 자유롭게 사용할 수 있도록 하기 위해 만든 것
- 권한 부여 :
1000
- Sticky Bit이 부여된 디렉터리
- 누구나 자유롭게 사용할 수 있음.
- 해당 디렉터리의 삭제는 해당 디렉터리 소유자만 가능함.
- 예)
/tmp
디렉터리- 권한 :
drwxrwxrwt
t
: Sticky Bit
- 권한 :
- 특수 권한 파일 종류
setuid
- 실행 파일에서 사용
/usr/bin/passwd
setgid
- 동일한 프로젝트(Project)에 실행 권한을 부여하기 위해 사용
- Sticky Bit
- 디렉터리 내에 인가된 사용자만 쓰기(write)가 가능하도록 하기 위해 사용
- 예)
/tmp
- 모든 사용자가 사용 가능함.
- 삭제는 파일의 소유자만 가능하도록 함. (
root
예외)
내용 출처 : 이기적 네트워크관리사 1·2급 필기 (임호진, 황성하 공저, 영진닷컴)
728x90
그리드형(광고전용)
'Certificate > Network Manager' 카테고리의 다른 글
53. RPM 패키지 (0) | 2021.04.29 |
---|---|
52. vi 편집기 (0) | 2021.04.29 |
51. 프로세스 (0) | 2021.04.28 |
50. 리눅스 명령어 (0) | 2021.04.28 |
48. 리눅스 계정 관리 (0) | 2021.04.28 |
47. 리눅스 파일 시스템 (0) | 2021.04.27 |
46. 리눅스(Linux) 개요 (0) | 2021.04.27 |
45. FTP 서버 (0) | 2021.04.27 |