따라하면서 배우는 IT - 리눅스 기초
실행
ls-l
명령어를 이용해서 확인했을 때 특수 권한이 부여된 파일은 소유자의 권한 부분 중 실행 권한 부분이 x가 아닌 s로 나타난다. chmod 4xxx [파일이름]
또는 chmod u+s [파일이름]
명령어로 설정할 수 있다.ls -l
명령어를 이용해서 확인했을 때, 특수 권한이 부여된 파일은 관리 그룹의 권한 부분 중 실행 권한 부분이 x가 아닌 s로 나타난다. chmod 2xxx [파일이름]
또는 chmod g+s [파일이름]
명령어로 실행할 수 있다. ls -l
명령어를 이용해서 확인했을 때 특수 권한이 부여된 파일은 나머지 사용자의 권한 부분 중 실행 권한 부분이 x가 아닌 t로 나타난다.
chmod 1xxx [파일이름]
또는 chmod o+t [파일이름]
명령어로 설정할 수 있다.
StickyBit 는 디렉토리에 부여한다.
대표적인 예로 /tmp 디렉토리가 있다.
StickyBit가 부여된 디렉토리 내에서는 누구나 자신의 파일을 생성하거나 수정, 삭제가 가능하다.
하지만 다른 사용자의 파일을 수정하거나 삭제할 수는 없다.
해당 디렉토리는 마치 인터넷의 자유게시판처럼 사용된다.
- 특수 권한 설정해보기
- 특수 권한을 설정해보고 그에 따른 결과 확인해보기
- 특수 권한이 설정된 파일 찾아보기
- find 명령어와 -perm 옵션을 이용하여 특수 권한이 설정된 파일 찾아보기
1)
touch file
빈 파일을 만든다.
2)chmod 4755 file
로 setuid 를 부여하고,
3)find / -perm -4000
으로 확인하면, 아래에 /root/bsj/file 파일이 목록에 추가된 것을 알 수 있다.
※-perm
은 권한, -4000은 4000이라고만 적으면 딱 setuid만 있는 파일들만을 찾는데,-
옵션이 있으면 포함된 것을 찾아준다.
4)find / -perm -4000 > /root/bsj/setuid_file_list
로 찾아본다.
※>
는 해당 내용을 다른 곳으로 옮길 수 있게 해주는 것을 말한다.
cat setuid_file_list
로 확인하면 해당 목록들을 볼 수 있다.
5)
touch file2
빈 파일을 만든다.
6) file2에도 똑같이 부여해주고,
7) 파일명을check_file_list
로 4) 명령어처럼 실행한다.
8)diff check_file_list setuid_file_list
을 통해 비교한다.!!!
이렇게 내용 비교를 통해 확인할 수 있게 된다.
앞에 내용 다 삭제하고
권한을 각각 chmod 777(dir1)과 1777(dir2)로 각각 다르게 주었다.
자유게시판처럼. 이 사용자가 생성한 파일이나 디렉토리는
이 사용자가 얼마든지 수정 삭제가 가능하지만, 남이 생성한건 수정삭제가 불가능
사용자 추가 생성하기
양쪽에서 빈 파일을 test_file / prana_file로 만들어준다.
rm -rf /home/bsj/dir1/prana_file
로 왼쪽 터미널에서 삭제해준다.
삭제가 가능한 이유는, dir1 디렉토리 안에서는 삭제 가능하니까!
(변경시킬 수 있게 쓰기 권한이 있음)
그다음 dir2 디렉토리로 넘어와서
왼쪽 터미널에는 test_file 생성, 오른쪽 터미널에는 prana_file을 생성,
왼쪽 터미널에서 prana_file을 삭제하려고하면, stickybit가 있어서 삭제할 수 없다.
cat prana_file
을 실행해봤더니 잘 나오는 것을 확인할 수 있다. (조회는 가능, 수정 삭제가 안됨!)보통은 특정 디렉토리에 stickybit 부여
-> 대표적: /tmp 디렉토리
- 여러가지 프로그램/시스템 동작하면서, 필요한 파일들을 잠깐동안 저장해두는 곳
- 윈도우에도 있음 tmp 디렉토리가
그래서 stickybit는 directory에 보통 쓰이며, 실습 내용처럼 사용한다는 것을 알 수 있다.