# touch a.txt
# ls -l a.txt
-rw-r--r-- 1 root root 0 Sep 5 11:06 a.txt
# chmod --help
chmod [OPTION]... MODE[,MODE]... FILE...
:
-rw-r--r-- -> -rwxrw-r-x
# chmod u+x,g+w,o+x a.txt
-rwxrw-r-x -> ---x-----x
# chmod u-rw,g-rw,o-r a.txt
---x-----x -> -r-xr-x-wx
# chmod u+r,g+rx,o+w a.txt
-r-xr-x-wx -> --w--w-r--
# chmod u=w,g=w,o=r a.txt
or
# chmod ug=w,o=r a.txt
--w--w-r-- -> -r-xr-x--x
# chmod ug=rx,o=x a.txt
or
# chmod ugo=rx,o-r a.txt
or
# chmod a=rx,o-r a.txt
or
# chmod a=x,ug+r a.txt
ugoa+-=rwx,
----------
# chmod a= a.txt
아래 권한들을 맞추기
# ls -l /etc/shadow (400)
-r-------- 1 root abc 1284 Sep 5 09:28 /etc/shadow
# ls -l /bin/bash (755)
-rwxr-xr-x 1 root root 735804 Jul 22 2011 /bin/bash
# ls -l /dev/sda1 (640)
brw-r----- 1 root disk 8, 1 Sep 4 09:44 /dev/sda1
# ls -ld /etc (755)
drwxr-xr-x 81 root root 4096 Sep 5 09:28 /etc
- 특수 권한
[root@localhost ~]# ls -l a.txt
---------- 1 root root 0 Sep 5 11:06 a.txt
[root@localhost ~]# chmod ug+s,o+t a.txt
[root@localhost ~]# ls -l a.txt
---S--S--T 1 root root 0 Sep 5 11:06 a.txt
[root@localhost ~]# chmod u+x a.txt
[root@localhost ~]# ls -l a.txt
---s--S--T 1 root root 0 Sep 5 11:06 a.txt
[root@localhost ~]# chmod g+x a.txt
[root@localhost ~]# ls -l a.txt
---s--s--T 1 root root 0 Sep 5 11:06 a.txt
[root@localhost ~]# chmod o+x a.txt -v
mode of `a.txt' changed to 7111 (--s--s--t)
rwsr-xr-x
권한을 변경할 수 있는가 ?
권한에 대한 의미를 파악할 수 있는가 ?
Set-uid, Set-gid, sticky bit 의 의미를 파악할 수 있는가 ?
r(읽기) 권한의 의미를 파악할 수 있는가 ?
w(쓰기) 권한의 의미를 파악할 수 있는가 ?
x(실행) 권한의 의미를 파악할 수 있는가 ?
find [디렉토리]... -옵션 값 ...
# find /bin -name bash
# find /bin -perm 755
# find /bin -perm 4755
# find /bin /usr/bin /usr/sbin -perm -4000 -ls
- set-uid 의 비밀
# grep ^user1 /etc/shadow
user1:$6$/8mkpuL.$x7FMVTxlCoSCx6.ktqDFEY1k ...
# su - user1
$ passwd
Changing password for user user1.
Changing password for user1
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
$ exit
# grep ^user1 /etc/shadow
user1:$6$DIE6HW8T$tkyiS7a0qm3TJ.4l41G28oL ...
# ls -l /etc/shadow
-r-------- 1 root root 1348 Sep 5 13:00 /etc/shadow
# ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 23420 Aug 11 2010 /usr/bin/passwd
- sticky bit 디렉토리 연습
- sticky bit가 걸려있는 디렉토리는 자신이 만든 파일은 자신만이 지울 수 있다.
[root@localhost ~]# chmod o-t /tmp
[root@localhost ~]# ls -ld /tmp
drwxrwxrwx 5 root root 4096 Sep 5 11:26 /tmp
[root@localhost ~]# touch /tmp/root.txt
[root@localhost ~]# ls -l /tmp/root.txt
-rw-r--r-- 1 root root 0 Sep 5 13:10 /tmp/root.txt
- 일반 유저 user1이 root 가 생성한 파일을 삭제할 수 있다.
[root@localhost ~]# su - user1
[user1@localhost ~]$ rm -fv /tmp/root.txt
removed `/tmp/root.txt'
[user1@localhost ~]$ ls -l /tmp/root.txt
ls: /tmp/root.txt: No such file or directory
[user1@localhost ~]$ exit
logout
- 다시 원래의 권한으로 변경하고 파일을 다시 생성한다.
[root@localhost ~]# chmod o+t /tmp/
[root@localhost ~]# touch /tmp/root2.txt
[root@localhost ~]# ls -ld /tmp/
drwxrwxrwt 5 root root 4096 Sep 5 13:12 /tmp/
[root@localhost ~]# su - user1
[user1@localhost ~]$ ls -l /tmp/root2.txt
-rw-r--r-- 1 root root 0 Sep 5 13:12 /tmp/root2.txt
- sticky bit가 디렉토리에 걸려있음로 삭제가 안된다.
[user1@localhost ~]$ rm -fv /tmp/root2.txt
rm: cannot remove `/tmp/root2.txt': Operation not permitted
[user1@localhost ~]$ exit
- 잘못된 디렉토리 때문에 파일을 일반유저가 수정할 수 있는 경우
[root@localhost ~]# touch /tmp/root2.txt
[root@localhost ~]# chmod 777 /tmp/
[root@localhost ~]# ls -ld /tmp/
drwxrwxrwx 5 root root 4096 Sep 5 13:31 /tmp/
[root@localhost ~]# ls -ld /tmp/root2.txt
-rw-r--r-- 1 root root 3 Sep 5 13:31 /tmp/root2.txt
~~~
[root@localhost ~]# su - user1
[user1@localhost ~]$ vi /tmp/root2.txt
....
:w!
[user1@localhost ~]$ ll /tmp/root2.txt
-rw-r--r-- 1 user1 user1 20 Sep 5 13:34 /tmp/root2.txt
~~~
vi 에서 저장시 강제로 저장한다.
'OS > [Linux] CentOS' 카테고리의 다른 글
[CentOS] 10-1. suidtest (0) | 2016.07.10 |
---|---|
[CentOS] 9. 환경변수 테스트 (0) | 2016.07.10 |
[CentOS] 7-2. 리눅스 퍼미션 (0) | 2016.07.10 |
[CentOS] 중간 정리 (0) | 2016.07.06 |
[CentOS] 7-1. 리눅스퍼미션 (0) | 2016.07.02 |