FILE
R read
W write / modify
X excution
DIRECTORY
r ls 권한
w add, delete, 이름 변경
x cd 권한
문제1] 디렉토리에 읽기 권한만 있으면 디렉토리내의 파일의 리스트 볼수 있을까.?
===test 환경===
useradd ptester
mkdir /data/ptest;cd /data/ptest
touch 1
echo "A" > 1
cp -pa 1 2
cp -pa 1 3
cp -pa 1 4
cp -pa 1 5
cp -pa 1 6
cp -pa 1 7
cp -pa 1 8
chmod 444 /data/ptest
===============
tty1 에서 ptester로 로그인
tty2 에서 root로 로그인
===============
답:(파일명만 볼수 있고, 파일의 속성정보를 볼 수 없다.파일의 권한과 상관없이 파일의 내용은 볼 수 없다.)
tty1 에서
cd /data/ptest : 이동할 수 없다.
ll /data/ptest : 파일명만 보인다.
cat /data/ptest/1 : 볼수 없다.
문제2] 디렉토리내의 파일의 내용이나 디렉토리의 모든 정보를 보기 위해선 디렉토리에 무슨 허가권이 있어야 하나?
tty2에서
chmod 441 /data/ptest
tty1에서
cd /data/ptest : 이동가능
ll /data/ptest : 리스트 볼 수 없다.
cat /data/ptest/1 : 파일 1 의 내용을 볼수 있다.(물론 파일 1에 읽기 권한이 있어야 한다.)
-------------------------
tty2에서
chmod 445 /data/ptest
tty1에서
cd /data/ptest : 이동가능
ll /data/ptest : 리스트 볼 수 있음
cat /data/ptest/1 : 내용 볼 수 있음
echo "B" >> 1 : 쓰기 불가능
문제3]디렉토리에 쓰기 권한이 없고 디렉토리안의 파일에는 쓰기 권한이 있을 때 파일을 삭제할 수 있을 까..?(아니오)
tty2 에서
chmod 445 /data/ptest
chmod 442 /data/ptest/1
tty1에서
echo "B" >> /data/ptest/1 : 가능
cat /data/ptest/1 : 불가능
rm -rf /data/ptest/1 : 불가능
-------------------------------
tty2에서
chmod 445 /data/ptest/1
tty1에서
echo "B" >> /data/ptest/1 : 불가능
cat /data/ptest/1 : 가능
rm -rf /data/ptest/1 : 불가능
--------------------------------
tty2에서
chmod 447 /data/ptest/1
tty1에서
echo "B" >> /data/ptest/1 : 가능
cat /data/ptest/1 : 가능
rm -rf /data/ptest/1 : 불가능
문제4] 디렉토리에 쓰기 권한이 있고 디렉토리안의 파일에는 쓰기 권한이 없을 때 파일을 삭제할 수 있을 까?(예)
(디렉에 모든권한이 있다면 파일 권한과 상관없이 삭제가능)
tty2에서
chmod 446 /data/ptest
chmod 445 /data/ptest/1
tty1에서
rm -rf /data/ptest/1 : (디렉에 실행권한이 없으므로 디렉터리에 접근 불가능)
------------------------------
tty2에서
chmod 447 /data/ptest
chmod 445 /data/ptest/1
tty1에서
rm -rf /data/ptest/1 : 가능
-----------------------------
문제5] 디렉토리에 읽기 권한이 없는 경우 touch명령을 사용할 수 있을까? 넵
(쓰기권한과 실행권한만 있으면 됨)
tty2에서
chmod 443 /data/ptest
tty1에서
touch /data/ptest/6 : 가능
------------------------------
참고) 디렉토리의 읽기 권한은 ls를 사용할 수 있는 권한
문제6] 디렉토리에 읽기 권한이 없는 경우 rm이나 mv 명령을 사용할 수 있을 까.?
tty2에서
chmod 443 /data/ptest
tty1에서
mv /data/ptest/6 /data/ptest/7 : 가능
rm -rf /data/ptest/7 :가능
=======================================================
* sticky bit
1]파일에 (---) 쓰기 권한 없어도 디렉토리에 (-WX) 권한이 있는 경우 파일은 삭제가 된다.
2]디렉토리에 쓰기 권한이 있어도 파일에 삭제권한을 제거하려할 때 사용
tty2에서
chmod 443 /data/ptest
tty1에서
rm -rf /data/ptest/5 : 가능
-------------------------------
tty2에서
chmod 1443 /data/ptest
tty1에서
rm -rf /data/ptest/8 : 불가능
------------------------------
tty2에서
chmod 1777 /data/ptest
tty1에서
rm -rf /data/ptest/8 : 불가능
------------------------------
3]파일을 만든 사용자나 관리자만이 파일의 삭제권한을 갖게 된다.
4]디렉터리에 대한 모든 퍼미션을 가질 때 사용하며 공유 디렉토리에 부여하게 된다.
5]sticky bit는 디렉토리에만 줄 수 있다.