별의 공부 블로그 🧑🏻‍💻
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에서 빼면 됨.
  • 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 : user
    • g : group
    • o : other
    • a : 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로 설정되어 있음.
          • 소유자 실행 권한 위치에 있는 ssetuid가 설정되어 있음을 나타냄.
          • 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 실행 과정

  • setuid의 설정
    • 예) 8진수 400이나 u+s를 사용해서 설정할 수 있음.
      • chmod 4744 test.txt라고 실행하면, test.txtsetuid가 설정되고, 744 권한이 부여됨.
      • chmod u+s test.txt라고 실행하면, 사용자에 setuid를 추가하는 것을 의미함.
  • setuid가 설정된 파일 검색
    • 권한이 4000이 부여된 것을 find 명령으로 검색하면 모두 찾을 수 있음.
# chmod 4700 test.txt            // setuid 설정

(2) setgid

  • 파일 생성자의 그룹 소유권을 얻는 것
  • 예) starrykss라는 사용자가 AAA의 디렉터리에 디렉터리 및 파일을 생성할 수 없음.
    • 하지만, rootchmod 2777 AAA 명령을 사용하여 디렉터리에 setgid를 부여하면 starrykss 사용자가 AAA 디렉터리에 하위 디렉터리를 만들거나 파일을 생성할 수 있게 됨.
  • setgid를 사용하는 것은 메일박스(MBox) 에서 확인할 수 있음.
    • 예) /var/mail 디렉터리
      • 소유자가 root, 그룹이 mail이며 setgid가 설정되어 있음.
      • 일반 사용자는 메일 계정을 생성할 때, mail 디렉터리에 자신의 디렉터리를 생성하고 메일을 보관할 수 있게 됨.
      • 또한 setgid2000이라는 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
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖