리눅스에서 "ls -al" 명령어를 통해 file 및 directory를 확인하는 경우 아래와 같이 출력됩니다.

합계 24 밑줄을 보면 drwxrwxr-x 로 시작하는데요.

맨 앞에 d는 directory를 의미하고 -인 경우 file임을 의미하죠.

 

다음에 rwxrwxr-x 부분이 file 및 directory 권한에 관한 표기 입니다.

9개 문자에서 3개씩 나누면 rwx가 반복 되는군요.

 

 

그 의미에 대해 알아봅시다. 

 

앞서 말한대로 맨 앞 d또는 -는 directory인지 file인지 표기하는 문자이고요. 다음 rwx는 읽기, 쓰기, 실행을 의미 합니다.

3번 반복되는 것은 현재 login되어 있는 user, user가 속한 group, 그리고 user나 group이 아닌 기타 사용자의 권한을 순서대로 표기한 것입니다.

 

file명이 녹색으로 나타나는 hello file의 경우를 보면 -rwxrwxr-x 이렇게 표기가 되어 있는데요. 이 의미는 이것은 파일이고, user는 읽기/쓰기/실행 모두 가능, group역시 읽기/쓰기/실행 모두 가능, 마지막으로 other는 읽기와 실행은 가능하지만 쓰기는 불가하다는 의미이지요.

 

그럼 file이나 directory의 권한을 어떻게 바꿀까요?

 

chmod 명령어를 사용합니다. chmod 명령어 뒤에 권한 설정 명령을 덧붙이고 그 뒤에 file또는 directory명을 덧 붙여서 사용하지요. 

도와달랬는데 참 복잡하네요. ^^

 

chmod [user][권한] [file]

이렇게 이해하시면 될 것 같습니다. 물론 중간에 option이 있는데 ubuntu 기준으로 권한 설정 변경이 기본인지 굳이 -c를 붙이지 않아도 변경 설정이 잘 되는군요.

 

[user]는 권한을 설정하려는 user입니다. Login하고 있는 user 즉 나의 권한을 변경할 때는 u, 그룹은 g, others 즉 기타 사용자는 o이고 셋 모두의 권한을 한번에 변경하려면 a 입니다.

[권한]은 읽기/쓰기/실행 권한 입니다. 읽기 가능으로 변경하려면 +r, 불가는 -r, 쓰기 가능은 +w, 불가면 -w 이런 식입니다.

[file]은 권한을 변경하려는 file이나 directory의 이름이고요.

 

녹색 실행 파일인 hello를 login user가 실행 못하게 막겠다면 chmod u-x hello 라고 입력하면 됩니다.

그럼 아래와 같이 -rwxrwxr-x에서 -rw-rwxr-x로 변경이 됩니다. 이 file을 실행하려고 하면 권한이 없다고 나올 거에요. 

 Login user 권한이 rwx에서 rw-로 바뀐 것 보이시죠?

 

이 상태에서 실행을 해보면 허가 거부라고 뜨는 것도 보이네요.

 

다시 chmod u+x hello 로 login user에게 실행 권한을 줬습니다. -rw-rwxr-x에서 -rwxrwxr-x로 변경 되었네요.

 

실행도 잘 되어서 Hello world~ 문구가 출력되었고요.

 

u+r, u-r, g-x, o+w등 다양하게 설정하려는 권한에 맞춰 조정해주면 됩니다.

이렇게 문자와 기호를 이용하여 권한 설정을 해봤는데요. 숫자를 통해서도 가능합니다. u+r 이런 [user][권한] 자리에 숫자를 넣는거죠. Login user, Group, Others 한번에 권한 설정 할 경우 편합니다.

2진수와 16진수를 아실런지요..? 2진수는 각 비트(칸)에 0또는 1 숫자만 들어가는거고 16진수는 2진수를 4칸씩 묶어서 읽는다고 이해하시면 됩니다.

 

 

위에서 본 표가 조금 복잡해졌죠? 0~7까지 숫자를 연속 3개 사용하는데요. 0은 불가, 1은 가능을 의미합니다.

표에서 보면 Login user의 file 권한을 읽기가능/쓰기불가/실행가능으로 설정한다면 1/0/1이 되어 숫자 5가 됩니다.

 

chmod 555 hello로 하면 Login user, Group, Others 모두 hello file에 대해 읽기나 실행은 가능하지만 쓰기, 즉 수정은 불가능 해지겠죠. chmod 777 hello로 하면 모두 읽기/쓰기/실행이 가능해지고요. chmod 750 hello로 하면 Login user는 모두 가능, Group은 쓰기만 불가, Others는 모두 불가가 됩니다. 

 

보시는 것 처럼 권한이 계속 바뀌고 있죠? 그럼 오늘은 이만~

 

+ Recent posts