r (읽기, 4): 디렉터리 목록 확인 권한
w (쓰기, 2): 디렉터리 안에서 파일을 생성, 삭제할 수 있는 권한
x (실행, 1): 디렉터리의 경로 변경, 디렉터리 안에 있는 항목을 읽을 수 있는 권한
0 : 접근 권한 없음 (---)
1 : 실행 가능 (--x)
2 : 쓰기 가능 (-w-)
3 : 쓰기,실행 가능 (-wx)
4 : 읽기 가능 (r--)
5 : 읽기,실행 가능 (r-x)
6 : 읽기,쓰기 가능 (rw-)
7 : 모든 접근 가능 (rwx)
chmod 파일의 허가권 변경
unmask 개체가 생성될 때 부여되는 기본 permission 설정
setuid 일시적으로 소유자의 권한으로 파일을 실행함
setgid 일시적으로 소속그룹의 권한으로 파일을 실행함
sticky bit 모든 권한 할당(단, 삭제는 소유주만 가능함)
가장 맨 앞:
d로 시작하면 디렉토리, 하이픈 시작하면 파일
첫번째:
소유자 또는 사용자
두번째:
그룹
세번째:
소유자와 그룹에 해당이 안되는 사용자
chown 파일의 소유권 변경
chgrp 파일의 소속그룹 소유권 변경
리눅스에서 디렉터리와 파일들의 관계를 형상화하면 트리(tree) 구조 형태를 띄고 있음
모든 디렉터리 경로는 /(루트) 로 부터 시작하여 / 하위에 위치
절대 경로란 특정한 파일의 경로를 표현할 때 / (루트 디렉터리) 부터 시작하는 경로
상대 경로란 특정한 파일의 경로를 표현할 때 현재 사용자가 접근해 있는 현재 경로를 기준으로 시작하는 경로
. : 현재 접근해 있는 디렉터리를 의미
.. : 부모(상위) 디렉터리를 의미
~ : 현재 리눅스에 접속해 있는 계정의 홈 디렉터리를 의미
./ee.jpg : 현재 경로의 ee.jpg 파일. 절대경로로 표기하면 /opt/aaa/window/window/ee.jpg
../../bbb : 상위 디렉터리의 상위 디렉터리에 있는 bbb 디렉터리 /opt/bbb
~ : ~가 의미하는것은 현재 계정의 홈 디렉터리 이므로 접속한 계정에 따라 경로가 달라짐.
root 계정인 경우 /root를 의미
일반적인 권한과는 조금 다른 특수한 권한
SetUID:other가 파일을 실행할 때 소유자의 권한으로 접근할 수 있게 해주는 권한 (실행이 x가 아닌 s로 나타남)
chmod 4xxx [파일이름] 또는 chmod u+s [파일이름]
SetGID: other가 파일을 실행할 때 관리 그룹의 권한으로 접근할 수 있게 해주는 권한 (실행이 x가 아닌 s로 나타남)
chmod 2xxx [파일이름] 또는 chmod g+s [파일이름]
StickyBit: 디렉토리를 마치 자유게시판처럼 사용할 수 있게 해주는 권한일반적으로 /tmp 디렉토리에 부여 (실행이 x가 아닌 t로 나타남)
chmod 1xxxx [파일이름] 또는 chmod o+t [파일이름]
스티키 비트(1000)가 설정된 디렉터리는 누구나 파일을 만들수 있지만 자신의 소유가 아닌 파일은 삭제할 수 없습니다.
즉 일종의 공유 디렉터리라고 볼수 있는데 sticky bit 가 붙은 가장 유명한 사례는
유닉스의 임시 파일을 쓰는 디렉터리인 /tmp 입니다.
디렉터리에 스티키 비트를 붙일 때 누구나 읽고, 쓰고, 실행할 수 있도록 777 권한을 줘야 함
SetUID, SetGID 권한 변경 명령
chmod 4777 test
test : -rwsrwxrwx.
chmod 2777 test
test : -rwxrwsrwx.
chmod 1777 test
test : -rwxrwxrwt
find / -perm -4000 > /jhj/setuid_file_list (4000이 포함된 파일을 찾기 위해 앞에 - 붙이기)
chmod 777 dir1, chmod 1777 dir2 두 디렉토리의 차이점
dir1에서는 사용자끼리 소유물의 권리가 없음
dir2에서는 사용자끼리 소유물의 권리가 있음
x 권한이 있으면 s(소문자) //rws rwx rwx
x 권한이 없으면 S(대문자) //rwS rwx rwx
절대경로 ex) www/css/style.css
상대경로 ex) ../css/style.css
./ :현재경로 이후의 모든 디렉토리, 파일들
../ :상위경로 이후의 모든 디렉토리, 파일들
umask 000
새 폴더: 777
새 파일: 666
umask 001
새 폴더: 776
새 파일: 666
umask 022
새 폴더: 755
새 파일: 644
-R: 경로와 그 하위 파일들을 모두 변경한다.
~/../BAE BAE 상대경로
cd ~ home
cd - 이전 경로로 이동
cd / 최상위 디렉토리로 이동
rwsrwxrwx
rwSrwxrwx
rwsrwxrwx == 4777 x 권한이 있으면 s(소문자)
rwSrwxrwx == 4677 x 권한이 없으면 S(대문자)