❗️ 참고: 이 글이 작성된 지 이미
일이 지났습니다. 시의성에 유의하세요
🖥 설명:이 글은 Linux 기초를 배우던 당시 작성한 블로그 포스트로, 오래된 WordPress 블로그에서 옮겨온 것입니다.
서문
커맨드 라인을 자주 사용하는 분들은 파일 앞에 -rw-r--r--과 같은 10자리의 문자열을 본 적이 있을 겁니다. 이는 현재 파일/폴더에 대한 다양한 사용자 그룹의 권한을 나타냅니다. 예를 들어:
1 | |
아래에서 왼쪽부터 오른쪽으로 차례대로 설명하겠습니다.
위치 및 문자 의미
- 첫 번째 문자는 현재 파일이 폴더인지 파일인지 나타냅니다. 파일인 경우
-, 폴더인 경우d, 심볼릭 링크인 경우l로 표시됩니다. - 2~4번째 문자는 파일 소유자의 권한을 나타냅니다. 즉, 파일 생성자의 권한입니다.
- 5~7번째 문자는 파일 소유 그룹에 속한 사용자의 권한을 나타냅니다.
- 8~10번째 문자는 현재 그룹을 제외한 다른 사용자의 권한을 나타냅니다.
- 2~4번째, 5~7번째, 8~10번째 문자는 각각 3자리로 구성된 권한 정보를 나타냅니다:
- 첫 번째 문자는 r로 표시되며,
read즉读권한을 의미합니다. 숫자로는 4, 이진수로는 100으로 표현됩니다. 해당 권한이 없을 경우-로 표시됩니다. - 두 번째 문자는 w로 표시되며,
write즉写권한을 의미합니다. 숫자로는 2, 이진수로는 010으로 표현됩니다. 해당 권한이 없을 경우-로 표시됩니다. - 세 번째 문자는 x로 표시되며,
execute즉执行권한을 의미합니다. 숫자로는 1, 이진수로는 001으로 표현됩니다. 해당 권한이 없을 경우-로 표시됩니다.
- 첫 번째 문자는 r로 표시되며,
- root 사용자는 항상 모든 권한을 갖습니다. 즉 rwx로, 숫자로는 777(각 자릿수를 더한 4 + 2 + 1), 이진수로는 111로 표현됩니다.
예시
-r-xrwxr--는 현재 파일이며, 파일 소유자는 읽기와 실행 권한이 있지만 수정할 수 없음을 나타냅니다. 파일 소유 그룹의 다른 사용자들은 읽기, 수정, 실행이 가능하고, 다른 사용자들은 읽기만 가능하며 수정과 실행은 불가능합니다.
기본 사용법
chmod hello.js 파일을 읽기, 쓰기, 실행 가능하도록 변경하는 방법: chmod 777 hello.js 또는 chmod rwx hello.js
기타
숫자로 권한을 표현하는 경우(숫자 표현은 문자 표현의 최상위 -/d/l 정보를 포함하지 않음) 네 자리 숫자로도 표현할 수 있습니다. 즉 권한 앞에 한 자리를 추가하는 것으로, 예를 들어 0777과 같습니다. 여기서 최상위 자리의 0은 suid와 guid 개념을 나타냅니다:
- suid는 해당 스크립트를 실행하는 사용자(실행 권한이 있는 경우)가 파일 소유자의 권한을 갖게 됨을 의미합니다. 숫자 7로 표현됩니다.
- guid는 해당 스크립트를 실행하는 사용자가 파일 소유 그룹의 권한을 갖게 됨을 의미합니다. 숫자 5로 표현됩니다.
suid를 설정하려면 0을 4로 변경하고, guid를 설정하려면 0을 2로 변경합니다: 4777과 2777, 또는 둘 다 설정하려면 6777로 표현합니다.
- EOF -
이 글의 최초 게시:
Linux 파일 권한 메모 - Xheldon Blog
저는 인생의 중요한 선택의 기로에 섰을 때, 누군가 최선의 방법을 알려주어 소중한 시간을 헛되이 보내지 않기를 바라곤 합니다. 그런 마음으로 저는 자주 블로그를 쓰며, 광활한 인터넷의 이 작은 구석에 제게는 단 한 번뿐인 인생 경험을 기록하여 도움이 필요한 분들에게 도움이 되기를 바랍니다.