Linux_About Permission

'ls -l' 커멘드를 통해 나타날때 가장 맨 앞에 써있는 이상한 문자 시퀀스에 대해 알아야 한다.

보면 위와 같이 'drwxr-xr-x' 형식으로 나와있다. 이것은 파일 속성이다.

첫번째 글자 'd'는 폴더인지 파일인지를 구분하는 문자이다. 즉 파일 형식이다.

실제로 .txt 파일은 맨 앞글자가 '-'이고, 폴더는 'd'로 나타나 있는것을 위 사진에서 확인할 수 있다.

대부분은 없거나 'd' 형태가 문자의 맨 앞에 나와 있지만, 루트 디렉토리에서는 다르다.

 

루트디렉토리에서 장치의 준말인 /dev 디렉토리로 이동 후, 'ls -l'을 통해 권한 상태를 확인해보면

앞글자들이 다양하게 있다.

앞에 나오는 글자가 'l', 'c', 'b' 다양하게 있다.

'l'은 심볼링크를 의미한다.

'b'는 블록 디바이스 or 블록 특수파일을 의미한다. → 하드웨어로 엑세스가 가능한 파일이며, 블록 단위로 작업한다.

'c'는 문자 디바이스나 특수파일을 의미한다. → 하드웨어로 엑세스가 가능한 파일이며, 1바이트 단위로 작업한다.

'drwxr-xr-x' 형식의 권한 문자열중 첫번째에 대해 알아보았다.

 

 

권한 문자열에 나오는 나머지 문자들에 대해 알아본다.

 

첫 세글자는 소유자에 대한 권한, 다음 세글자는 그룹에 대한 권한, 세번째는 소유자와 그룹이 아닌 그외의 권한이다.

'r'(첫번째): 읽기 권한

'w'(두번째): 쓰기 권한

'x'(세번째): 실행권한 

 

즉 권한을 나타나내는 문자열은 총 10글자이며,

첫번째는 파일 속성, 나머지는 3글자로 이루어진 3개의 덩어리 형태로 권한을 나타내고 있다.

 

여기서 드는 의문점, 파일의 'w' 권한으로 'nano'커멘드를 통해 파일 내용을 새로 작성하고 쓸 수 있다고 하자.

폴더에서 'w' 권한은 무엇을 의미하는가?

폴더에서 'w' 권한은 폴더의 이름, 삭제 여부뿐만 아니라 폴더 안에 있는 파일의 이름변경, 삭제, 제작등도 포함이다.

파일 권한에서 'x'는 파일이 실행 가능한 파일을 의미하고, 폴더에서는 'cd'로 접근 할 수 있다는 것을 의미한다.

 

 

 

이제 그럼 어떻게 권한을 관리하는지에 대해서 알아보자.

권한을 변경하는 커멘드는 'chmod'이다. 작성법은 이러하다.

 

첫째: 'chmod' 커멘드 뒤에 권한을 부여하고자 하는 대상 작성

u: 사용자

g: 그룹

o: 제 3자

a: 모두

둘째: 권한을 추가하고 싶으면 '+' , 빼고 싶으면 '-', 원하는 권한만 부여하고 싶다면 '='를 작성

셋째: 부여하고자 하는 권한 'r', 'w', 'x'를 작성

 

위 3가지를 사용하여 권한을 부여하거나 제거할 수 있다. 

아래 사용 예시를 보자.

위 사진의 권한 명령문자열을 해석해보면,

첫번째 글자에서 파일 형태임을 알 수 있고,

사용자, 그룹, 제 3자 모두가 읽기 권한만 있다는 것을 알 수 있다.

사용자의 이름은 'juwon'이고 그룹의 이름도 'juwon'이다.

 

여기서 'chmod'를 통해 사용자의 권한을 실행 권한만 있게 만들고 싶다면, 'u', '=', 'x' 이 3가지를 조합하면 된다.

위 사진을 보면, 사용자 권한이 실행 권한만 부여 됬다. 그룹과 제3자의 읽기 권한을 제거한다면,

위 처럼 그룹'g'와 제 3자'o'를 넣고 '-'기호를 사용하여 제거하고 싶은 권한을 제거하였다.

위처럼 이진법을 통한 십진법을 활용하여 권한을 컨트롤 할 수 있다.

예를 들어 '777'을 작성하면 사용자, 그룹, 제3자 모두 'rwx'의 권한을 갖게 된다.

위 처럼 사용자에게 파일 실행 권한만 있는 'permisson.txt' 파일을 십진법을 통한 명령어를 작성하여

사용자에게 모든 권한을 부여하고 나머지에게 읽기 권한만 주고 싶다면 744를 작성하면 될것이다.

실제로 'chmod' 커멘드 뒤에 '744'를 입력한 결과, 사용자는 'rwx' 모든 권한을 갖게 되었고, 

그룹사용자와 제3자는 'r' 읽기 권한만 갖게 되었다.

 

우분투는 루트 사용자로는 로그인이 불가능하다.

리눅스를 사용하다 보면, 사용자 권한이 'root'으로 되어있는 파일의 경우가 있다. '/' 폴더로 이동해서 보면

대부분 'root' 사용자 권한이 필요한데, 'root'의 권한을 갖고 모든 커멘드를 조종하고 싶다면

'sudo' 커멘드를 활용하면 된다.

 

예를 들어 

위 사진의 경우, 'juwon' 사용자는 /etc/sudoers 라는 폴더를 읽을 권한이 없다. 하지만,

'sudo' 커멘드를 통해 비밀번호를 입력하고 해당 작업을 실행할 수 있다.

 

파일이나 폴더의 소유자를 변경하고 싶을땐, 'chown 사용자이름 파일/폴더이름' 명령을 통해 작업할 수 있다.

권한이 거부된다면 앞에 'sudo'를 붙이면 될것이다.

 

파일이나 폴더의 그룹을 변경하고 싶을땐, 'chown :그룹이름 파일/폴더이름'을 작성하면 된다.

 

참고로 그룹을 생성하고 싶을 땐, 'addgroup 그룹이름' 을 명령하면 된다.

그룹에 맴버를 넣고 싶을 땐, 'adduser 유저이름 그룹이름'을 명령하면 된다.

 

'Linux' 카테고리의 다른 글

Linux_Creating commands  (0) 2024.03.30
Linux_About Enviroment  (0) 2024.03.27
Linux_About Grep  (0) 2024.03.21
Linux_Find Excercise  (0) 2024.03.20
Linux_Expansion Exercise  (1) 2024.03.17