Linux 허가권과 소유권
디렉토리 구조
d rwxr-xr-x 2 root root 4096 Dec 10 21:23 testdir
1 2 3 4 5 6 7 8 9
파일 구조
- rw-r--r-- 2 root root 4 Dec 10 21:24 testfile
1 2 3 4 5 6 7 8 9
1 : 파일유형
2 : 파일/디렉토리 허가
3 : 링크수 (라느곳에 링크되어있는 수)
4 : 소유자명
5 : 그룹명
6 : 파일/디렉코리 크기
7 : 마지막 변경 날짜
8 : 마지막 변경 시간
9 : 파일/디렉토리 명
허가권(Permission)
-rwx rwx rwx
1 2 3
421 421 421
1 : 사용자(user)
2 : 그룹(group)
3 : 타인(other)
r = 읽기
w = 쓰기
x = 실행
명령어
# chmod [권한] [파일/디렉토리명]
파일 기본값 = -rw-r--r--(644)
리렉토리 기본값 = drwxr-xr-x(755)
※디렉토리의 x(실행권한) = 디렉토리 열기
(x권한을 주지않으면 디렉토리안으로 들어갈수가 없다.)
# umask
0022 <--기본값
# umask 0000
: 값을 0000으로 바꿈
umask파일은 ---> /etc/profile에 위치
소유권 변경
소유자 변경 명령어
# chown [변경할 사용자] [변경할 파일]
# chown test /test
# chown root:root /test
: 그룹과 소유자 동시 변경
그룹 소유권 변경
# chgrp [변경할 그룹명] [변경할 파일]
# groupadd A
: A그룹을 생성
# chgrp A /test
: test파일을 A그룹에 속하게함
Ex)/tmp/1234라는 파일의 소유권은 root, 일반사용자test,test1은 쓰기가능 ,test2는 쓰기불가능
1.새로운group생성
#chown root /tmp/1234
#groupadd A
#usermod -g A test
#usermod -g A test1
#groups test1 (test1그룹확인하기)
#chgrp A /tmp/1234(1234파일의 그룹을 test로 변경)
#chmod 664 /tmp/1234
2.기존group
#chown root /tmp/1234
#usermod -g test test1(test1을 test그룹으로 바꾼다)
#groups test1 (test1그룹확인하기)
#chgrp test /tmp/1234(1234파일의 그룹을 test로 변경)(chown명령어를사용하기때문에 잘사용
하지않음)
#chmod 664 /tmp/1234
3.chown명령어를 사용해 간단하게 끝내기
#usermod -g test test1
#chown root:test /tmp/1234
#chmod 664 /tmp/1234
sticky bit -- 디렉토리,실행권한
SetGID --파일 ,디렉토리,실행권한
SetUID -- 파일,시행권한
SetUID - 적용되어있는 파일을 실행시키면 그 해당파일의 소유자의 권한을 갖는다
실행권한이필요하고 파일이어야한다
rwxr-xr-x 755
setUID적용->rwsr-xr-x 4755
setUID적용->rwSr-xr-x 4655(실행권한이 없으면 대문자S)(비정상)
setGID적용->rwxrwsrwx
sticky bit 적용 ->rwxrwxrwt 1776
sticky bit 적용 ->rwxrwxrwT 1777(실행권한이 없으면 대문자T)(비정상)
찾기
# find [경로] [타입] [내용]
# find / -name passwd 2> /dev/null
-user test
-perm +4000
SetGID : 권한이 없는 사용자가 파일을 실행할때 그룹의 권한을 이용한다.
실행권한 필요, 파일/디렉토리이어야 한다.
sticky bit : 관리자 혹은 소유자 만이 파일/디렉토리를 수정가능.
실행권한필요, 디렉토리어야 한다.대표적으로 /tmp에 stickybit 가 걸려있다
(rwxrwxrwt)