ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Chapter1] 리눅스의 추억7(feat. 막힘없이 실무까지)
    Backend/LINUX 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!

     

    댓글

Designed by Tistory.