본문 바로가기
카테고리 없음

[Linux] 권한(허가권, 소유권)

by 떵해이 2020. 11. 3.
300x250

○ 리눅스 권한 관리

    ▷ 리눅스는 파일에 권한이 존재한다.

 

    ▷ 파일의 권한 3가지(허가권) = 파일의 소유권(User), 소속 그룹(Group), 다른 사용자들(Other)

 

리눅스에 # ls -l 로 파일들을 자세히 볼 수 있다.

파일들 자세한 설명은 it-serial.tistory.com/20를 참조하시면 됩니다. 

 

아래 그림으로 파일에 관해 자세히 설명하겠습니다.

맨 앞자리는 파일 타입을 나타내고, 그 뒤부터 3자리씩 묶어 파일 권한을 나타냅니다.

 

    ▷ 파일 타입 : 가장 많은 유형 d(디렉토리)

                                           -(일반적인 파일, 실행파일 포함)이 있습니다.

                      그 외에도 l(링크파일), p(파이프 파일), b 와 c(하드웨어와 반응하는 파일)이 있습니다.

 

    ▷ 파일 권한 종류 & 의미 파악

 

                                      파일 일 때(사용 유무)             디렉토리 일 때(명령 사용 유무)

 

    r(4) : 읽기(read)                 파일 내용 확인              읽기 관련 사용(ls, cat, grep, ..)                

 

    w(2) : 쓰기(write)               파일 내용 수정              쓰기 관련 사용(mkdir, mv, cp, ..)

 

    x(1) : 실행(Execute)             파일 내용 실행              접근 권한(cd)

 

각자의 권한이 없으면 사용 할 수 없습니다.

 

파일 권한 변경은 관리자 or 파일 소유자만 변경이 가능합니다.

 

※ 파일에 w 권한을 부여하기 위해 반드시 r 권한을 부여해야 합니다.

 

※ 디렉토리는 r 또는 w 권한을 부여하기 위해 반드시 x 권한을 부여해야 합니다.

 

 

○ 리눅스 권한 변경 (방법 2가지)

※ 권한을 주기 전 별거 아니지만 중요한 사항이 있습니다.

   파일에 모든 권한을 주었는데도 불가하고 확인이 되지 않을 경우가 발생합니다.

   그럴 경우에는 파일말고 디렉토리를 권한을 확인해야 합니다.

디렉토리가 파일보다 우선순위가 높기 때문에 디렉토리 권한부터 확인하고 파일을 확인해야 합니다.

 

 

# chmod -R 옵션은 하위디렉토리를 포함하여 디렉토리 내부의 모든 파일의 접근 권한을 변경

방법① 기호로 옵션을 추가해 권한을 주는 방법

# chmod [변경 대상][기호] [파일or디렉토리명]

 

변경 적용 대상 : u(소유자 권한), g(소유그룹 권한), o(나머지 권한), a(모든 계정 권한)

 

권한 부여 / 삭제 : +(권한 부여), -(권한 삭제), =(권한 변경)

 

예시를 들어보면 이해가 빠를 수 있습니다.

# touch testfile1 명령어로 테스트파일1을 만듭니다.

지금 rw- r-- r-- 권한을 가지고 있습니다.

 

# chmod u+x testfile1 명령어를 입력하게 되면 소유자에 x권한을 추가

 

# chmod g+w testfile1 명령어를 입력하게 되면 소유그룹에 w권한 추가

 

# chmod o-r testfile1 명령어를 입력하게 되면 나머지 사용자에 r권한 삭제

 

# chmod o=rwx testfile1 명령어를 입력하게 되면 나머지 사용자 권한 rwx로 변경

 

 

방법② 8진수 표기법을 사용해서 권한을 주는 방법

# chmod [변경권한] [파일or디렉토리명]

 

8진수 표기법 (3자리씩 끝어서 2진수로 계산하면 됩니다.)

10진수           2진수

 r : 4              100   

 w : 2             010

 x : 1              001

 - : 0              000

예시) rwx r-x r-x    ->    111 101 101    ->    755 라고 읽습니다.

        rw- r-- r--    ->    110 100 100    ->    644 라고 읽습니다.

(이해가 안가신다면 2진수를 한번 인터넷에 검색해보시면 좋을거 같습니다.)

 

 

예시를 들어보겠습니다.

# mkdir testd1 명령어로 이번에는 testd1디렉토리 생성

 

# chmod 700 testd1 명령어를 입력하게 되면 소유자권한 rwx, 그룹권한 없음, 나머지 권한 없음

 

# chmod 777 testd1 명령어를 입력하게 되면 소유자, 그룹, 나머지 모두 rwx권한으로 변경

 

SetUID와 SetGID는 다른 글에서 다루도록 하겠습니다.

 

 

○ 리눅스 소유권 변경

소유권은 허가권보다 더 간단합니다.

아래 화면처럼 표시된 소유자와 소유그룹을 변경하는 것입니다.

 

 

# chown test2 test 명령어를 입력하게 되면 test파일의 소유자가 test2로 바뀝니다.

 

# chown :test2 test 명령어를 입력하게 되면 test파일의 그룹이 test2로 바뀝니다.

 

# chown test3: test 명령어를 입력하게 되면 test파일의 소유자와 그룹을 test3으로 바뀝니다.

 

# chown test1:test2 test 명령어를 입력하게 되면 test파일의 소유자는 test로, 그룹은 test2로 바뀝니다.

 

 

# chown -R [소유자:그룹명] [파일or디렉토리명]

-R 옵션을 사용할 경우 하위 디렉토리나 파일도 함께 한꺼번에 변경이 됩니다.

 

이런식으로 소유자와 그룹의 소유권을 변경할 수 있습니다. 

 

주의 : 디렉토리 권한은 바로 그 밑 파일까지만 권한이 적용이 됩니다.

        그래서 파일의 권한을 변경할 때 그 파일이 속한 디렉토리 권한도 신경써야 하는 걸 알아두시면 좋습니다.

반응형

댓글