리눅스에서 권한
리눅스의 모든 파일과 디렉터리는 권한을 가지고 있다. (파일 시스템으로 만들어진다.)
권한을 확인할 때는 ls -l 명령어를 사용하여 확인한다. (ls -al도 상관없음)
권한을 확인하는 방법은 위의 사진과 같이 앞의 첫 번째 문자를 제외하고 나머지 문자를 통해 구분할 수 있다. (앞의 문자는 파일인지(-) 혹은 디렉토리(d)인지 구분해 준다.)
권한을 3개로 나눈 이유로는 각각의 사용자에 따라서 권한을 나누기 위해 구분한 것이다.
위의 예시를 통해서 보면 rwx 권한에 해당하는 것은 파일의 소유자를 의미하고, r-x 권한에 해당하는 것은 사용자 그룹을 의미한다. 마지막으로 r-x는 외부 사용자에 대한 접근 권한을 뜻한다.
권한은 대표적으로 Read, Write, Execute로 필드를 나눠 부여하게 된다.
문자 | 정의 |
'r' | 파일 내용을 읽는 권한 |
'w' | 파일 내용을 쓰는(수정) 권한 |
'x' | 파일 실행 권한 |
권한은 8진수로 이루어져 있고 2진수로 나타낼 수 있다.
해당 표가 중요한 이유는 권한을 부여할 때 chmod 명령어를 통해서 부여하게 되는데 그때 8진수를 통해서 부여하기 때문이다.
chmod 명령어
chmod [권한 숫자] [권한을 부여할 디렉토리 or 파일]
테스트로 testDir 디렉토리에 권한을 부여했다.
원래 권한으로는 rwxr-xr-x로 766으로 되어 있다. chmod로 770 권한을 부여하고 확인해 보면 testDir의 권한이 rwxrwx---으로 바뀐 것을 확인할 수 있다.
디렉토리를 읽고, 쓰고, 실행
디렉토리를 읽고, 쓰고, 실행한다는 것은 어떤 것일까?
디렉토리를 읽는다는 것은 곧 목록을 불러온다는 뜻이고, 쓴다는 것은 새로운 디렉토리를 만든다는 것과 같은 의미이다.
마지막으로 실행하는 것은 해당 디렉토리로 이동한다는 의미이다.
각각의 의미를 명령어로 생각해 보면 ls, mkdir, cd로 해당 명령어를 통해서 권한이 잘 부여됐는지 확인해 볼 수 있다.
지금부터 공부하는 예제는 외부 사용자 권한만을 가지고 테스트를 해볼 것이다.
770 ~ 777까지 권한을 바꿔가면서 디렉토리에 접근하면 어떻게 되는지 확인해 보자.
770 ~ 773
774 ~ 777
770부터 777까지 권한을 바꿔가면서 실행을 해봤다.
root 유저로 접근 권한을 부여하고 yhs라는 사용자를 통해서 접근을 시도했다.
좀 더 눈에 잘 보이게 표로 정리해 봤다.
권한 | 읽기(ls) | 쓰기(mkdir) | 실행(cd) |
770(---) | X | X | X |
771(--x) | X | X | O |
772(-w-) | X | X | X |
773(-wx) | X | O | O |
774(r--) | ▲ | X | X |
775(r-x) | O | X | O |
776(rw-) | ▲ | X | X |
777(rwx) | O | O | O |
여기서 중요하게 봐야 할 점은 2가지이다. 바로 권한이 주어져도 실행 권한이 없으면 해당 기능을 사용하지 못한다는 것과 사용하더라도 예상과 다른 결과를 보여준다는 것이다.
쓰기와 읽기 둘 다 디렉토리 안으로 들어가야 할 수 있는 기능이다. 따라서 실행 권한이 없다면 디렉토리 안으로 들어갈 수 없게 되고 해당 기능 또한 사용하지 못한다.
실행 권한을 어떻게 부여하느냐에 따라서 기능의 사용 유무가 달라지기 때문에 충분히 고려하여 권한을 설정해야 한다.
파일을 읽고, 쓰고, 실행
이제 파일에 관한 권한을 바꿔가면서 테스트를 진행해 보자. 디렉토리와 마찬가지로 외부 사용자 권한만 바꿔가면서 테스트를 진행했다.
파일의 읽기, 쓰기, 실행 명령어는 각각 cat, vi, 파일 이름이다.
770 ~ 773
774 ~ 777
vi 편집기를 사용해서 쓰기 기능을 수행해야 되기 때문에 사진이 많아져서 보기 불편하다.
간단하게 표를 통해서 확인해 보면 아래와 같다.
권한 | 읽기(cat) | 쓰기(vi 편집기) | 실행(파일 이름) |
770(---) | X | X | X |
771(--x) | X | X | X |
772(-w-) | X | ▲ | X |
773(-wx) | X | X | X |
774(r--) | O | X | X |
775(r-x) | O | X | O |
776(rw-) | O | O | O |
777(rwx) | O | O | O |
파일도 디렉토리와 마찬가지로 중요한 점이 있다.
권한이 있어도 기능을 사용하지 못하는 것과 예상과는 다르게 결과가 나오는 경우가 있다.
파일에서는 읽기 권한이 가장 중요하다. 생각해 보면 당연한 결과다.
파일을 쓰거나 실행하려면 기본적으로 어떤 파일인지 알아야 하지만 읽지 못하기 때문에 해당 기능들을 사용할 수 없게 된다.
어떤 파일인지 모르니깐 수정할 수 없고, 실행할 수 없게 된다.
Q. 처음에 파일이나 디렉터리를 만들 때 권한은 어떤 기준으로 부여되는가?
기본 권한은 사용자에 따라서 생성한 파일과 디렉터리가 각각 다른 권한 값으로 설정되는데 아래의 사이트를 통해서 확인할 수 있다.
'리눅스' 카테고리의 다른 글
리눅스 - 네트워크 (0) | 2023.11.05 |
---|---|
리눅스 - 문서 편집 (0) | 2023.11.02 |
리눅스 - 기본 명령어 (0) | 2023.11.02 |
리눅스 (0) | 2023.11.02 |