Backend/LINUX

[Chapter1] 리눅스의 추억7(feat. 막힘없이 실무까지)

GreatSaiyaman 2022. 6. 28. 07:18

본 포스팅은 2020년에 작성했던 포스팅입니다, blog를 이관하게 되어 재포스팅 하였습니다.


 

아래 포스팅은 제가 수강하였던 동영상 강의, 각종 블로그 혹은 공식 홈페이지에서 습득한 자료들 제 나름대로 재구성하여 포스팅 한 자료입니다. 잘못된 내용이 있을 수도 있습니다. 최대한 글 읽으시는 시간이 헛되지 않게 검토하여 올리겠습니다. 편하게, 재미있게 제 글을 읽어주셨으면 좋겠습니다. 틀린 부분이 있으면 댓글이나 메일 주시면 수정하여 놓겠습니다. 제 글을 읽어주셔서 감사합니다^^


- 목차 -

Chapter1. 리눅스 맛보기

Chapter2. 리눅스 활용하기

Chapter3. 리눅스 개발 및 운영하기


(20). 리눅스 파일 보는 법

저번 포스팅에 이어서, 바로 아래의 한 줄을 보겠습니다.

drwxr-xr-x 2 harry harry 4096 9월 8 22:15 permission-test-folder
 

저는 이 부분이 무척 중요하다고 생각합니다. 볼 때마다 헷갈리지만 보는 법을 모르면 안 되는 부분 이라서요.

저도 글을 기재하면서 한 번 더 정리하도록 하겠습니다.

drwxr-xr-x
 

요것부터 보면, 한자 한자씩 끊어서 봐야 합니다. 조금 더 자세히 보도록 하겠습니다.

d : 이 자리는 파일의 유형을 알려주는 자리입니다. - 이렇게 나오면 일반 파일, d 이렇게 나오면 디렉토리라는 뜻입니다. b는 블록 디바이스, c는 문자 디바이스를 나타냅니다.

 

이 뒤부터는 또 3개씩 끊어 주셔야 합니다. 맨 앞자리의 1글자를 제외한 뒤의 9글자는 '허가'에 대해서 표시해 주는 알파벳들입니다. 각각의 자리가 어떤 자리인지를 이야기하기 전에 우선 rwx가 각각 뜻하는 바가 무엇이냐면요...

 

r: read / w: write / x: execute입니다.

이것은 각각 2진수로도 표기할 수 있습니다.

4 / 2 / 1 이렇게요.

-wx 이런 식으로 되어있으면 읽기 권한은 없고 쓰기와 실행 권한만 있는 것이고, 2진수로 표기하면 3입니다.

r-x 이런 식으로 되어있으면 읽기 권한과 실행 권한은 있는데 쓰기 권한이 없는 것입니다. 2진수로 표기하면 5입니다.

drwxr-xr-x
 

위를 2진수로 표현하면 631이 되는 것입니다. 2진수 표기법을 알려드린 이유는 나중에 '권한을 부여'할 때 쓰이기 때문입니다. 다시 돌아와서... 그렇다면 왜 3개씩 끊어야 한다고 말씀드렸을까요?

첫 번째 3덩이(rwx)는 User(소유자)의 권한을 뜻하고

두 번째 3덩이(r-x)는 Group(그룹)의 권한을 뜻하고

세 번째 3덩이(r-x)는 Other(그 밖의 사용자)의 권한을 뜻하기 때문입니다.

이때까지 설명드린 것을 바탕으로 위 디렉토리의 권한을 말씀드려보면 저 디렉토리의 소유자는 읽기, 쓰기, 실행하기 다되고, 소유 그룹은 읽기와 실행하기, 그 밖의 사용자도 읽기와 실행하기가 가능하다는 해석을 할 수 있습니다.

 

 

그 뒤의

2
 

이것은 링크의 수를 나타냅니다.

 

 

그 뒤의

harry
 

이것은 해당 디렉토리를 보유한즉 소유권을 가진 소유자를 나타냅니다.

 

 

그 뒤의

harry
 

이것은 해당 디렉토리를 보유한 그룹을 나타냅니다.

그런데 그룹이 사용자 이름으로 되어있어서 좀 이상하죠? default가 사용자 이름 혹은 root로 지정되어 있게끔 되어있어서 그렇습니다. 아래 명령어를 처서 그룹으로 지정해 주도록 합니다.

harry@brandon-VirtualBox:/$ chown harry:developers permission-test-folder
 

*chmod와 chown 명령어에 대해서는 파일/디렉토리 읽는 법이 끝나면 말씀드리도록 하겠습니다.

 

 

다시 조회해보면

drwxrwsr-x   2 harry developers  4096  9월  8 22:15 permission-test-folder
 

위와 같이 잘 나옵니다. 다시 파일읽기로 돌아와서 ....

 

 

그 뒤의

4096
 

이 숫자는 디렉토리의 크기입니다. 기본적으로 KB 단위이고요.

 

 

그 뒤의

9월 8 22:15
 

이 부분은 파일/디렉토리의 최종 수정 일시입니다.

그 뒤는 말씀 안 드려도, 디렉토리의 이름인 것 아시죠!?

휴, 드디어 파일 읽기에 대한 설명이 끝났습니다.

파일을 생성하게 되면 파일의 기본 권한 666은입니다. 읽을 수 있는 권한과 쓸 수 있는 권한이 주어진다는 것입니다.

 

(21) 권한 가져오기, 권한 부여하기

휴우, 다시 돌아와서... permission-test-folder 폴더는 이제 harry의 것입니다.

그렇다면 폴더를 누구의 이름으로 돌리고, 다시 누구에게 주고 이러한 개념을 알겠습니다.

 

이제 '특정 그룹만 폴더에 접근하거나 무엇을 할 수 있게끔' 해보는 것은 어떨까요?

지금은 sudo 권한이 없더라도 변환을 할 수가 있습니다. 왜냐하면 harry의 폴더니까요.

다시 조회를 해보면 그룹도 developer가 되었습니다. sudo 권한 없이요.

 

(21)-1.chown

harry@brandon-VirtualBox:/$ chown harry:developers permission-test-folder
 

아까 중간에 chown이라는 명령어를 사용하신 것을 기억하실 겁니다.

이 명령어는 무엇일까요? own... owner. owner는 주인이라는 영어 단어이죠.

맞습니다. 파일/디렉토리의 소유주를 변경하는 명령어가 chown입니다.

chown 소유주:소유그룹 디렉토리명
 

위와 같이 사용해 주시면 됩니다.

 

(21)-2.chmod

chmod는 '두 가지 방법'으로 파일/디렉토리에 권한을 부여하거나 권한을 뺄 수 있습니다.

첫 번째 방법은 아까 말씀드렸던 2진수 표기법으로 권한을 부여하는 것입니다.

harry@brandon-VirtualBox:/permission-test-folder$ touch test.txt
harry@brandon-VirtualBox:/permission-test-folder$ ls -al
total 8
drwxrwsr-x  2 harry developers 4096  9월  9 01:24 .
drwxr-xr-x 26 root  root       4096  9월  8 22:15 ..
-rw-rw-r--  1 harry developers    0  9월  9 01:24 test.txt
harry@brandon-VirtualBox:/permission-test-folder$ chmod 777 test.txt
harry@brandon-VirtualBox:/permission-test-folder$ ls -al
total 8
drwxrwsr-x  2 harry developers 4096  9월  9 01:24 .
drwxr-xr-x 26 root  root       4096  9월  8 22:15 ..
-rwxrwxrwx  1 harry developers    0  9월  9 01:24 test.txt
 

파일을 하나 만들어서 2진수 표기법으로 모든 권한을 부여했더니 어랏? 모든 유저와 모든 그룹 그 밖의 모든 사람들이 모든 것이 가능하게끔 변경되었습니다. 아마 이럴 수 있는 건 거의 없겠죠..!

결론적으로는

chmod 부여하고자하는2진수3자리 파일/디렉토리명
 

위와 같이 사용해 주시면 됩니다

 

두 번째 방법은 +,-를 이용하는 것입니다.

harry@brandon-VirtualBox:/permission-test-folder$ chmod o-x test.txt 
harry@brandon-VirtualBox:/permission-test-folder$ ls -al
total 8
drwxrwsr-x  2 harry developers 4096  9월  9 01:24 .
drwxr-xr-x 26 root  root       4096  9월  8 22:15 ..
-rwxrwxrw-  1 harry developers    0  9월  9 01:24 test.txt
 

chmod 뒤를봐주시면, o-x라고 되어있습니다. o(Other)의 권한 중에서 x(excute) 권한을 -(제외) 한다는 것입니다. 정말 직관적이죠? 그렇다면 다시 ....

harry@brandon-VirtualBox:/permission-test-folder$ chmod o+x test.txt 
harry@brandon-VirtualBox:/permission-test-folder$ ls -al
total 8
drwxrwsr-x  2 harry developers 4096  9월  9 01:24 .
drwxr-xr-x 26 root  root       4096  9월  8 22:15 ..
-rwxrwxrwx  1 harry developers    0  9월  9 01:24 test.txt
 

다시 권한이 더해졌습니다.

휴.

파일 하나 읽는 것도 쉽지가 않은 Linux군요. 하지만 재미있긴 정말 재밌는 것 같습니다 ㅎㅎ.

다음 시간에는 이번 포스팅에서 배운내용을 토대로 파일시스템에 대해서 조금 더 알아보는 포스팅을 작성해보도록 하겠습니다.

 

Thanks for reading!