IT Study/리눅스 권한

Linux 권한(permission) 정리!

ComputerScientist 2020. 10. 26. 22:46

PERMISSION DENIED

후배님 하나를 멘토링하고 있는데, 나름 그래도 2년이라는 백엔드 개발 경험을 갖고 있는 아이였는데,

Linux 권한에 대해 아는게 너무 없어서, 너무 당황스러운 나머지, 혹시나 하는 마음에 


Linux 권한에 대해 정리를 해보고자 합니다.

 

 

 

그럼 이제 Linux 권한에 대해서 알아봅시다.

 

 

먼저 명령창에, 파일 목록 불러오기 (ls -al)를 하시면, 아래 화면과 같은 목록이 나옵니다.

$ ls -al 

-rwxrwxrwx seongmankim seongman 480 Apr 5 20:36 hello_world.txt

 

 

첫번째에 나오는 -rwxrwxrwx 권한을 뜻합니다.


여기서 첫번째 ‘-‘ 는 디렉토리 혹은 파일을 표시합니다.

 

위의 경우에는 '파일'임을 암시하는데, '디렉토리(폴더)'의 경우에는 'd'로 표시됩니다.

예 ) 파일 : -r-x-xrwx, 디렉토리 : drwxrwxrwx

 


 

그렇다면 뒤에 rwx 는 무엇을 의미할까요? 

r : read(읽기)

w : write(쓰기)

x : execute(실행)


 

그런데 왜 3개나 표시가 되어 있을까요?
이는, 각 각의 사용자들의 권한을 표시하기 위입니다.

앞에 디렉토리/파일 인디케이터를 제외한, 
나머지 9개를 3개씩 나눠보면..

rwx / rwx / rwx

첫번째 rwx 소유자를 의미, 
두번째 rwx 그룹권한을 의미, 
세번째 rwx 다른사용자의 권한을 의미합니다. 

따라서 -rwxrwxrwx 는 모든 사용자에게 모든 권한이 부여됐음을 말해주고 있습니다.

 


 

코딩을 하던, 시스템 설정 작업을 하다 보면 종종 permission denied 와 같은 에러를 종종 보게 됩니다.

 

이 때는 보통 “해당 폴더 혹은 파일에 대한 접근 권한 혹은 쓰기 권한" 등이 제대로 설정되지 않아서 발생합니다. 

이번 블로그에서는 설명하진 않았지만, 사용자 권한 때문에 발생하는 경우도 있습니다.
(미들웨어 설치 시 자주 겪는 이슈)

근데, 그럼 권한 에러를 없애기 위해 -rwxrwxrwx 와 같은 설정을 하면 되지 않을까? 라는 생각을 하실 수 있습니다.

하지만 이는 모든 사용자 (외부 사용자 포함)에게 모든 권한을 주는 방법이므로, 일반적으로 보안 이슈가 동반되는 경우가 종종 있습니다.

따라서, 해당 권한 설정을 할 때는 해당파일에 대한 읽기 권한자는 누구이며, 쓰기 권한자는 누구인지를 명확하게 구분 할 필요가 있습니다.

 

이번 블로그에서는 대략적인 Linux 권한 시스템에 대해 설명했다면,
다음 블로그에서는 해당 권한을 어떻게 설정하는지에 대해 구체적으로 서술하도록 하겠습니다.

힌트 : chown / chmod

 

해피 코딩, 해피 개발, 해피 엔지니어링 합시다 !

감사합니다