-
파일 속성 관리linux/centOS 2018. 6. 7. 14:34
☆ chown
: 파일의 소유주와 그룹을 바꾼다.
chown 명령어는 Unix 계통 시스템에서 파일의 소유권을 바꾸기 위해서(change the owner of a file)사용된다. 대부분의 경우, 이것은 오직 슈퍼 사용자에 의해서만 실행될 수 있다. 그들이 소유하고 있는 파일의 그룹을 바꾸고 싶어하는 비특권화된 (일반적인) 사용자들은 chgrp을 사용해야 한다.
[명령어 형식]
# chown user01 file1
# chown user01.other file1 (# chown user01:other file1)
# chown .other file1
# chown -R user01 dir1
# chown -R user01:other dir1
[명령어 옵션]
옵션
설명
-c
바뀌어지는 파일들에 대해서만 자세하게 보여준다.
-f
바뀌어 지지 않는 파일들에 대해서 오류 메시지를 보여주지 않는다.
-v
작업 상태를 자세히 보여준다.
-R
경로와 그 하위 파일들 모두를 바꾼다.
☆ chgrp
: 파일의 사용자 그룹을 바꾼다.
[명령어 형식]
# chgrp user01 file1
[명령어 옵션]
옵션
설명
-c
작업 상태를 자세히 보여주나, 바뀌어 지는 것만 보여준다.
-f
그룹이 바뀌어 지지 않는 파일들에 대한 오류 메시지를 보여주지 않는다.
-v
작업 상태를 자세히 보여준다.
-R
주로 file 이름으로 경로를 사용해서, 그 안에 있는 모든파일도 함께 gourp으로 바꾼다.
☆ chmod
: 파일 접근 권한을 바꾼다.
파일이나 디렉토리를 새로운 권한으로 변경하는 명령이다. 파일의 소유자나 관리자만이 chmod를 사용할 수 있으며 파일의 소유자, 파일의 그룹, 다른 사용자로 나누어 각각의 권한을 설정 할 수 있다.
[명령어 형식]
# chmod u+x file1
# chmod 755 file1
■ 퍼미션(Permission)을 변경하는 방법
- 심볼릭 모드(Symbolic Mode) : # chmod u+x file1
- 옥탈 모드(Octal Mode) : # chmod 744 file1
(1) 심볼모드(symbolic mode)를 이용한 권한 변경
[사용자 기호]
기호
설명
u
user
파일/디렉토리의 소유자
g
group
파일/디렉토리의 그룹
o
other
다른 사용자
a
all
소유자, 그룹, 다른 사용자 모두(아무 표시 안할 경우 기본적으로 설정됨)
[설정 기호]
기호
설명
+
퍼미션 허가
지정한 퍼미션을 허가한다.
-
퍼미션 금지
지정된 퍼미션을 금지시킨다.
=
퍼미션 지정
지정한 퍼미션만 허가하고 나머지는 금지 시킨다.
설명 : 이전에 권한을 어떻게 줬던 지금 설정해주는 권한으로 대체시켜서 사용 가능 (+,-는 내가 이전에 어떠한 권한을 설정해 줬는지 확인해야 하지만 =는 이전에 어떻게 설정하였던 상관없이 설정이 가능한 것이다.)
[권한 기호]
r
w
x
read
write
excute
설명 : 읽기 권한이 없으면 파일 안에 있는 내용을 볼 수 없다. 따라서 파일을 수정하기 위해서는 반드시 read권한을 부여해야지 파일을 열어서 보고 수정 할 수가 있는 것이다. 만약에 write권한만 있다면 파일을 열어 볼 수 없으므로 수정이 불가능 한 것이다. 따라서 파일을 수정하려면 read&write권한이 모두 있어야 한다.
ex)
# chmod u+x file1
# chmod u-x,g+x file1
(2) 수치모드(octal mode)를 이용한 권한 변경
소유자권한비트
그룹권한비트
기타권한비트
r
w
x
r
w
x
r
w
x
1
1
1
1
1
1
1
1
1
4
2
1
4
2
1
4
2
1
파일 소유자 권한 : 400 = 읽기 권한, 200 = 쓰기 권한, 100 = 실행 권한
그룹 사용자 권한 : 40 = 읽기 권한, 20 = 쓰기 권한, 10 = 실행 권한
기타 사용자 권한 : 4 = 읽기 권한, 2 = 쓰기 권한, 1 = 실행 권한
--- : 권한 없음 0
--x : 실행 권한 1
-w- : 쓰기 권한 2
-wx : 쓰기 실행 3
r-- : 읽기 권한 4
r-x : 읽기 실행 5
rw- : 읽기 쓰기 6
rwx : 읽기 쓰기 실행 7
ex)
# chmod 744 file1
# chmod 754 file1
☆ umask
: 파일과 디렉토리가 생성될 때 기본 퍼미션을 조정할 수 있는 명령어.
파일이나 디렉토리 생성시에 파일과 디렉토리에는 기본적으로 적용되는 퍼미션이 있다. 기본적으로 설정되는 퍼미션의 경우 umask에 의해 결정이 된다. umask는 디렉토리와 파일의 기본 퍼미션을 결정해주는 명령어이다.
[기본 퍼미션(Default Permission) 변경]
파일
디렉토리
Default Permission
666
777
umask
022
022
생성 기본퍼미션
644
755
많이 쓰이는 umask 값은 002, 022, 027를 사용한다.
[명령어 형식]
# umask
# umask 027
# umask 022
☆ setUID / setGID
: 파일에 대한 소유권을 잠시 다른 사용자에게 빌려 줌으로 인해 소유권이 없는 사용자가 잠시 동안 파일에 대한 소유권으로 권한을 행사 할 수 있는 것을 말한다.
공유한 디렉토리나 파일에 대한 특별한 퍼미션을 부여하는 것으로서 파일 소유자(owner)나 superuser만이 파일에 대해서는 setuid와 setgid를 설정하고,디랙토리에 대해서는 setgid 퍼미션을 설정 할 수 있다. absolute mode (octal mode)나 symbolic mode를 사용하여 지정하거나 해지할 수 있다.
[특수권한 SetUID, SetGID, sticky bit 퍼미션]
특수권한
소유자권한비트
그룹권한비트
기타권한비트
SetUID
SetGID
sticky bit
r
w
x
r
w
x
r
w
x
1
1
1
1
1
1
1
1
1
1
1
1
4
2
1
천
백
십
일
# chmod 755 file1
# chmod 0755 file1
# chmod 22 file1
# chmod 0022 file1
# chmod 4755 file1 # chmod 6755 file1
(0755 : rwxr-xr-x) (0755 : rwxr-xr-x)
(4755 : rwsr-xr-x) (6755 : rwsr-sr-x)
# chmod 2755 file1
(0755 : rwxr-xr-x)
(2755 : rwxr-sr-x)
# chmod 1777 dir1
(0777 : rwxrwxrwx)
(1777 : rwxrwxrwt)
☆ Sticky Bits
: 파일에 쓰기 권한 없어도 디렉토리에 쓰기 권한이 있는 경우 디렉토리 권한에 의해 파일은 삭제 된다. 특정 디렉토리의 경우 공유의 목적으로 사용 할 때 사용자들에 의해 파일이 생성 될 수 있으나 디렉토리에 파일을 마음대로 삭제 할 수 없도록 sticky 권한을 부여해 줄 수 있다. 디렉토리에 쓰기 (파일생성: touch, vi등) 권한이 있어도 파일에 삭제권한(rm)을 제거하려 할 때 사용한다. 파일의 소유자나 그룹의 경우 또는 관리자의 경우 파일에 대한 소유권을 행사 할 수 경우는 제외 된다. 일반적으로 sticky bit는 디렉토리가 777 권한일 때 사용된다.
ex) 게시판의 경우
특수권한
소유자권한비트
그룹권한비트
기타권한비트
SetUID
SetGID
sticky bit
r
w
x
r
w
x
r
w
x
0
0
1
1
1
1
1
1
1
1
1
1
천
백
십
일
[참고] sticky bit로 설정된 디렉토리
# ls -ld /tmp
drwxrwxrwt 13 root root 4096 Feb 11 09:22 /tmp
# chmod 1777 dir1 (drwxrwxrwx -> drwwrwxrwt)
# chmod 1001 dir1 (d--------x -> d--------t)
# chmod 1776 dir1 (drwxrwxrw- -> drwxrwxrwT)
[EX] sticky bit로 파일 삭제 권한 제거
[TERM1] user01 사용자 터미널
# telnet localhost
user01 사용자로 로그인
$ id
uid=501(user01) gid=501(user01) groups=501(user01)
$ cd /tmp
$ mkdir stickybit
$ echo 1111 > file10
$ echo 2222 > stickybit/file2
$ ls -l | grep user01
-rw-rw-r-- 1 user01 user01 5 3월 18 12:44 file1
drwxrwxr-x 2 user01 user01 4096 3월 18 12:44 stickybit
[TERM2] fedora 사용자 터미널
# telnet localhost
fedora 사용자로 로그인
$ id
uid=500(fedora) gid=500(fedora) groups=500(fedora)
$ cd /tmp
$ mkdir linux
$ echo 3333 > file3
$ echo 4444 > linux/file4
$ ls -l | grep fedora
-rw-rw-r-- 1 fedora fedora 5 3월 18 12:45 file3
drwxrwxr-x 2 fedora fedora 4096 3월 18 12:45 linux
$ vi file3
3333
4444 <----- '새로운 라인 추가'
$ rm -rf linux
$ rm file3
$
$ ls -l file10
-rw-rw-r-- 1 user01 user01 5 3월 18 12:44 file10
$ rm file10
rm: remove write-protected 일반 파일 `file10'? y
rm: cannot remove `file1': 명령이 허용되지 않음
$ mv file10 file2
mv: cannot move `file1' to `file2': 명령이 허용되지 않음
$ cp file10 file2
$ ls -l file10 file2
-rw-rw-r-- 1 user01 user01 5 4월 14 10:46 file1
-rw-rw-r-- 1 fedora fedora 5 4월 14 10:51 file2
결론] 자신이 소유권을 가지지 않은 파일에 대해서는 원본 파일을 수정할 수 있는 명령어는 허용되지 않는다.
'linux > centOS' 카테고리의 다른 글
유용한 명령어 (0) 2018.06.12 vi 편집기 (0) 2018.06.10 파일 종류 (0) 2018.06.07 디렉토리 파일 관리4 (0) 2018.06.06 디렉토리 파일 관리3 (0) 2018.06.05