본문 바로가기

리눅스/리눅스 - 데비안 계열

[데비안] 파일, 디렉토리 관리 / 소유자 및 접근 권한 변경(chown, chmod)

반응형

파일과 디렉토리 정보를 아래의 명령어를 통해 표시하면 drwxr-xr-x를 비롯한 여러 값들이 나타난다.


$ ls -al 


합계 108
drwxr-xr-x  25 root root  4096  4월 27 03:13 .
drwxr-xr-x  25 root root  4096  4월 27 03:13 ..
drwx------   2 root root  4096  4월 28 14:33 .pulse
-rw-------   1 root root   256  4월 25 00:02 .pulse-cookie
drwx------   2 root root  4096  4월 27 03:13 .w3m
drwxr-xr-x   2 root root  4096  4월 24 23:39 bin
drwxr-xr-x   3 root root  4096  4월 25 00:00 boot
drwxr-xr-x  15 root root  3280  4월 28 14:33 dev
drwxr-xr-x 136 root root 12288  4월 28 15:25 etc
drwxr-xr-x   4 root root  4096  4월 27 17:22 home
lrwxrwxrwx   1 root root    30  4월 24 23:20 initrd.img -> /boot/initrd.img-3.2.0-4-amd64
drwxr-xr-x  16 root root  4096  4월 24 23:53 lib
drwxr-xr-x   2 root root  4096  4월 24 23:23 lib64
drwx------   2 root root 16384  4월 24 23:16 lost+found
drwxr-xr-x   4 root root  4096  4월 24 23:16 media
drwxr-xr-x   2 root root  4096 12월 14 21:56 mnt
...
...


여기서 drwxr-xr-x  16 root root  4096  4월 24 23:53 lib을 분석하면 아래와 같다.
파일|디렉토리정보 : drwxr-xr-x
링크수 : 16
소유아이디 : root
소유그룹 : root
크기 : 4096
수정된시간 : 4월 24 23:53
이름 : lib


파일 | 디렉토리 정보


drwxr-xr-x


맨 앞의 d 값은 디렉토리라는 의미다.

d값 대신에 올 수 있는 값은 아래와 같다.


- : regular (file)

d : directory

c : character special

b : block special

p : fifo

I : symbolic link

s : socket


맨 앞의 값을 제외한 rwxr-xr-x 값은 3개씩 잘라서 값의 의미를 갖는다.

rwx : 유저 권한

r-x : 그룹 권한

r-x : 그외 권한


유저 권한은 해당 소유자가 할 수 있는 권한을 말한다.

그룹 권한은 해당 그룹 내의 유저가 갖는 권한을 말한다.

그외 권한은 위에 해당하지 않는 유저가 갖는 권한을 말한다.


rwx를 다시 의미있게 분석하면

r : 읽기 권한

w : 쓰기 권한

x : 실행 권한


이렇게 된다.

소유자가 root이므로 root만이 rwx권한을 갖고 root의 그룹내 유저들만이 r-x 권한을 갖으며 그외 유저들은 r-x 권한을 갖는 것이다.




권한 변경


파일 또는 디렉토리의 권한은 chmod의 명령어를 통해 변경하게 된다.


$ chmod 777 lib


위 명령어는 lib의 권한을 777로 변경했다.

유저 권한 : 7

그룹 권한 : 7

그외 권한 : 7

값으로 변경된 것이다.


여기서 숫자의 값은 유저가 갖는 3가지 권한의 합을 나나낸다.

즉 rwx의 합을 말한다.


각각의 값은 아래에 나온 값의 의미를 갖는다.

r : 4

w : 2

x : 1


읽고, 쓰고, 실행가능한 값은 4+2+1=7이다.

만약 읽기만 가능하도록 하면 4+0+0=4이다.

따라서 777이란 의미는 모든 유저가 읽고, 쓰고, 실행이 가능하다 라는 뜻이다.


그럼 해당 소유자만 모든 권한을 갖고 그외 유저는 모두 접근 못하게 한다면 700을 입력하면 될 것이다. (rwx------)

그럼 해당 소유자만 모든 권한을 갖고 그룹 유저들은 읽고 쓰기만 가능하고 그외 유저는 읽기만 가능하게 한다면 764가 될 것이다. (rwxrw-r--)

그럼 마지막으로 해당 소유자가 읽고,쓰기만 하고 그룹 유저들은 읽기만 가능하며, 그외 유저는 실행만 가능하게 한다면 621 값을 가지게 될 것이다. (rw--w---x)

 



소유자 변경


소유자와 그룹 소유자를 변경하려면 chown 명령어를 사용하면 된다.

$ chown root:root lib


위 명령어는 소유아이디가 root, 그룹 아이디가 root인 lib로 변경한 것이다.


만약 계정 아이디가 m이 있고, root소유를 m에게 넘긴다면 아래와 같은 명령어를 사용하면 된다.

$ chown m lib


만약 그룹 아이디가 m이 있고, root 그룹 소유를 m그룹에게 넘긴다면 앞을 비우고 :뒤에 그룹 아이디를 적으면 된다.

$ chown :m lib 


위처럼 둘다 소유자 및 그룹 소유자를 변경한다면

$ chown m:m lib 


lib는 디렉토리다. 만약 디렉토리 내부의 모든 디렉토리와 파일까지 같이 변경한다면 옵션 -R을 사용하면 된다.

$ chown -R m:m lib 




반응형