리눅스 파일권한 설정
리눅스의 특정 파일을 실행할 경우 아래의 에러메세지를 마주하게 될 때가 있다.
bash: ./foo.pl: Permission denied
이는 현재 사용자가 해당 파일을 실행할 권한이 없을 때 나오는 에러 메세지이다.
ls -al
을 입력하면 현재 디렉토리의 모든 파일 및 디렉토리의 권한이 표시된다. 하나의 파일 또는 디렉토리는 아래와 같이 표시된다.
-rw-rw-rw- 2 user group 2351 May 11 20:56 a.sh drwxrwxr-x 2 user group 2351 May 11 20:56 b
위 예에서 앞줄에 나온 -rw-rw-rw- 형태(9개의 문자)가 현재 파일의 권한을 나타내는 것인데, 의미는 순서대로 아래와 같다.
[d:디렉토리?] [r:owner의 읽기권한] [w:owner의 쓰기권한] [x:owner의 실행권한] [r:group의 읽기권한] [w:group의 쓰기권한] [x:group의 실행권한] [r:all의 읽기권한] [w:all의 쓰기권한] [x:all의 실행권한]
위 예에서 첫번째 줄에 있는 a.sh 의 권한은 owner/group/all 모두가 읽기/쓰기가 가능하고 맨 앞에 d 가 없으므로 파일 이라는 의미이다.
두번째 줄인 b 의 경우 맨 앞에 d 가 있으니 디렉토리이고, owner/group 의 경우 읽기/쓰기/실행 모두 가능하고 all 의 경우 읽기/실행 만 가능하다는 의미이다.
이 상태에서 a.sh 를 수행해봤자 실행되지 않는다. 따라서 chmod 커맨드를 이용해 권한을 변경해줄 필요가 있다.
chmod 775 a.sh
775 의 의미는 2진수 111 111 101 의 의미이다. 위에 설명한 9개의 필드중에 2~9 번째 필드를 나타낸 것이다.1)
따라서 위 명령 수행 후 ls -al
을 해보면 아래와 같이 나오게 된다.
-rwxrwxr-x 2 user group 2351 May 11 20:56 a.sh drwxrwxr-x 2 user group 2351 May 11 20:56 b
이제 a.sh 를 실행할 수 있게 되었다.
chmod 의 더 자세한 용례는 여기를 참고
출처 : http://z3moon.com/%EB%A6%AC%EB%88%85%EC%8A%A4/%EB%A6%AC%EB%88%85%EC%8A%A4%ED%8C%8C%EC%9D%BC%EA%B6%8C%ED%95%9C%EC%84%A4%EC%A0%95
'OS > Linux' 카테고리의 다른 글
[리눅스] cat 명령어로 로그 통계 추출하기 (0) | 2019.05.03 |
---|---|
ln (link) 명령어 (0) | 2017.09.24 |
계정에 sudo 권한 부여하기 (0) | 2017.09.17 |
리눅스 사용자 추가 및 변경 (CentOS 사용자 변경) (0) | 2017.09.17 |
CentOS 7 싱글모드로 부팅해서 패스워드 변경하기 (0) | 2017.09.17 |