文件或目录的权限
一、文件属性的讲解:
[root@localhost yuanyi]# ls
a echo.txt ls.txt touch.txt true.txt
cat.txt fals.txt touch2.txt tree.txt vi.txt
[root@localhost yuanyi]# ls -l ls.txt
-rw-r--r--. 1 root root 52 8月 11 18:58 ls.txt
-(文件类型)rw-r–r--(文件权限). 1 root(文件所属于的用户) root (文件所属的组)52(文件大小) 8月 11 18:58(文件日期) ls.txt(文件名)
二、文件的类型
7种类型:
-代表的是普通文件
d代表的是目录(/dev)
l代表的是链接(dev)
c代表的是字符文件(/dev)
b代表的是特殊块文件(/dev)
s socket(套接字文件)
p FIFO(管道文件)
三、权限的分类及作用:
r 读的权限:允许读文件内容或者列目录
w 写的权限:允许修改文件的内容或者创建、删除文件
x 执行权限(可执行或查找):允许执行文件或者允许使用cd命令进入目录
- 无权限(没有读写执行)
执行权限解释
[root@localhost yuanyi]# cat 1.sh 显示编写好的脚本
echo "this is my first linux sh"
[root@localhost yuanyi]# ls -l 1.sh 查看权限
-rw-r--r--. 1 root root 0 8月 12 10:59 1.sh 没有x权限
[root@localhost yuanyi]# ./1.sh 执行脚本
-bash: ./1.sh: 权限不够
[root@localhost yuanyi]# chmod a+x 1.sh 加x权限
[root@localhost yuanyi]# ls -l 1.sh 查看权限
-rwxr-xr-x. 1 root root 0 8月 12 10:59 1.sh 有了x权限
[root@localhost yuanyi]# ./1.sh 执行脚本
this is my first linux sh 成功
备注:文件的拥有者即使对该文件没有任何的权限的情况下,文件的拥有者仍对该文件具有完全的控制权限。
四、权限的(ugo)模型
-----用户的权限 U--------- 组的权限 G---------其他用户的权限 O
[root@localhost yuanyi]# ls -l
drwxr-xr-x. 2 root root 4096 8月 11 20:33 a
Root 用户对这个文件具有rwx
root 组对这个文件具有xr
其他用户对这个文件具有x
五、权限的修改chmod
1.chmod的ugo模型修改法:
修改权限 +:增加权限 -:减少权限
[root@localhost yuanyi]# ls -l vi.txt #查看vi.txt详细信息
-rw-r--r--. 1 root root 13 8月 11 18:43 vi.txt
[root@localhost yuanyi]# chmod a+w vi.txt #进行修改:a=u+g+o
[root@localhost yuanyi]# ls -l vi.txt
-rw-rw-rw-. 1 root root 13 8月 11 18:43 vi.txt
[root@localhost yuanyi]# chmod u-r vi.txt #对u进行修改
[root@localhost yuanyi]# ls -l vi.txt
--w-rw-rw-. 1 root root 13 8月 11 18:43 vi.txt
[root@localhost yuanyi]# chmod g+x vi.txt #对g进行修改
[root@localhost yuanyi]# ls -l vi.txt
--w-rwxrw-. 1 root root 13 8月 11 18:43 vi.txt
[root@localhost yuanyi]# chmod o+x-r vi.txt #对o进行修改
[root@localhost yuanyi]# ls -l vi.txt
--w-rwx-wx. 1 root root 13 8月 11 18:43 vi.txt
2.chmod的数字模型修改法:
权限数字表示法:
-
-w- rwx -wx. 1 root root 13 8月 11 18:43 vi.txt
010 111 011
2 7 3
权限是:273
rwx rwx rwx
111 111 111
7 7 7
权限是:777
案列:用数字法改成如下权限
-wx r-- r-x
011 100 101
3 4 5[root@localhost yuanyi]# ls -l vi.txt
–w-rwx-w-. 1 root root 13 8月 11 18:43 vi.txt
[root@localhost yuanyi]# chmod 345 vi.txt #使用数字权限修改
[root@localhost yuanyi]# ls -l vi.txt
–wxr–r-x. 1 root root 13 8月 11 18:43 vi.txt #与预期结果一致
六、文件的特殊权限(stia)
个人总结:s t i a生效的 S T I A是无效的
1.特殊权限之S权限的讲解
2.特殊权限s的两种模式
set-user-id(SUID):s的权限在user部分;
set-group-id(SGID):s的权限在group部分;
3.特殊权限set-user-id应用场景:
用户管理:
用户分类:
1.系统用户(root)
2.普通用户(自己创建的用户)
将root可以执行的特殊命令让其他任何用户都可以去执行。
[root@localhost yuanyi]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月 22 2012 /usr/bin/passwd
系统的所有命令基本上都放在这儿:echo $PATH(查看目录)
[root@localhost ~]# echo $PATH
/usr/lib64/qt3.3/bin:
/usr/local/sbin: #root用户
/usr/local/bin: #普通用户
/sbin: #root用户
/bin: #普通用户
/usr/sbin: #root用户
/usr/bin: #普通用户
/root/bin #root用户
总结SUID功能:
1.一般针对可执行的命令。
2.执行者若具有该文件的x权限,显示是s。执行者不具有该文件的x权限,显示是S:针对于s是无效的。
3.执行者若具有该文件的x权限,则将具有文件所有者的权限。
4.在程序运行过程中,执行者拥有程序拥有者的权限。
5.权限只在文件执行时有效,执行完毕不再拥有所有者权限。
案例:reboot只能root执行
[root@localhost ~]# which reboot #查找reboot命令存放的路径,一般用于查找命令路径
/sbin/reboot
[root@localhost ~]# su xiaoming #切换到普通用户xiaoming
[xiaoming@localhost root]$ reboot #执行reboot重启命令
reboot: Need to be root #执行失败,普通用户不能使用reboot
修改reboot的u+s权限:
[root@localhost sbin]# ls -l reboot #查看权限
-rwxr-xr-x. 1 root root 14832 6月 25 2013 reboot
[root@localhost sbin]# chmod u+s reboot #修改权限
[root@localhost sbin]# ls -l reboot
-rwsr-xr-x. 1 root root 14832 6月 25 2013 reboot #权限修改成功,成功修改为u+s
测试其他任何用户都能去执行这个reboot
[root@localhost sbin]# su - xiaoming #切换到普通用户
[xiaoming@localhost ~]$ reboot
Broadcast message from root@localhost.localdomain
(/dev/pts/1) at 16:43 ...
The system is going down for reboot NOW! #重启成功
如果是U+S后面给的文件或目录(不含x),会出现S(注意s代表生效S代表不生效)
[root@localhost yuanyi]# ls -l
drwsr-xr-x. 2 root root 4096 8月 11 20:33 a
[root@localhost yuanyi]# chmod a-x a
[root@localhost yuanyi]# ls -l
drwSr--r--. 2 root root 4096 8月 11 20:33 a
4.特殊权限set-group-id应用场景:
- g+s权限演示:
[root@localhost /]# cd yuanyi 。
[root@localhost yuanyi]# mkdir xiaoming #创建一个目录(除用户家目录以外的任意位置创建)
[root@localhost yuanyi]# ls -l
总用量 4
drwxr-xr-x. 2 root root 4096 8月 12 17:02 xiaoming
[root@localhost yuanyi]# chmod o+w xiaoming/ #修改其他具有写的权限
[root@localhost yuanyi]# ls -l
总用量 4
drwxr-xrwx. 2 root root 4096 8月 12 17:02 xiaoming #修改成功
[root@localhost yuanyi]# chmod g+s xiaoming/ #添加g+s权限
[root@localhost yuanyi]# ls -l
总用量 4
drwxr-__s__rwx. 2 root root 4096 8月 12 17:02 xiaoming #修改成功
[root@localhost yuanyi]# touch xiaoming/text.txt #以root身份在这个目录里面创建文件
[root@localhost yuanyi]# cd xiaoming/
[root@localhost xiaoming]# ls -l
总用量 0
-rw-r–r--. 1 root root 0 8月 12 17:04 text.txt
[root@localhost xiaoming]# su xiaoming #切换用户
[xiaoming@localhost xiaoming]$ cd /
[xiaoming@localhost /]$ cd yuanyi
[xiaoming@localhost yuanyi]$ cd xiaoming/
[xiaoming@localhost xiaoming]$ mkdir xiaomingtext #创建目录
[xiaoming@localhost xiaoming]$ ls -l
总用量 4
-rw-r–r--. 1 root root 0 8月 12 17:04 text.txt
drwxrwsr-x. 2 xiaoming root 4096 8月 12 17:08 xiaomingtext #所属组应为小明,在g+s下变为root
[xiaoming@localhost xiaoming]$ touch xiaoming.txt #创建文档
[xiaoming@localhost xiaoming]$ ls -l
总用量 4
-rw-r–r--. 1 root root 0 8月 12 17:04 text.txt
drwxrwsr-x. 2 xiaoming root 4096 8月 12 17:08 xiaomingtext
-rw-rw-r–. 1 xiaoming root 0 8月 12 17:12 xiaoming.txt - 特殊权限之g+s权限的作用:
当g+s的时候,任何用户在g+s目录下面创建文件或目录的时候,创建的文件或目录都能得到g+s目录的组ID属性。
实际用途:g+s 目录里面的所有文件和目录,属于root组
[xiaoming@localhost xiaoming]$ ls -l
总用量 4
-rw-r--r--. 1 root root 0 8月 12 17:04 text.txt
drwxrwsr-x. 2 xiaoming root 4096 8月 12 17:08 xiaomingtext
-rw-rw-r--. 1 xiaoming root 0 8月 12 17:12 xiaoming.txt
以后要为g+s目录下的所有文件或目录修改用户组权限是方便的
[root@localhost xiaoming]# chmod g+w * # *代表目录下的所有文件
[root@localhost xiaoming]# ls -l
总用量 4
-rw-rw-r--. 1 root root 0 8月 12 17:04 text.txt
drwxrwsr-x. 2 xiaoming root 4096 8月 12 17:08 xiaomingtext.txt
-rw-rw-r--. 1 xiaoming root 0 8月 12 17:12 xiaomingtxt.txt
[root@localhost xiaoming]# chmod g-r *
[root@localhost xiaoming]# ls -l
总用量 4
-rw--w-r--. 1 root root 0 8月 12 17:04 text.txt
drwx-wsr-x. 2 xiaoming root 4096 8月 12 17:08 xiaomingtext.txt
-rw--w-r--. 1 xiaoming root 0 8月 12 17:12 xiaomingtxt.txt
5.特殊权限之t权限讲解
t权限(沾滞位):(可以执行和搜索权限)只能针对目录生效
[root@localhost /]# ls -l
drwxrwxrw==t==. 34 root root 4096 8月 12 16:44 tmp
/tmp:保存的一些临时文件。任何用户都可以往里面去存放临时性文件。本系统有root 、xiaoming 、xiaohua 三个用户。
一个目录没有t情况下、任何用户只要进入该目录都具有删除等控制权限
[root@localhost xiaoming]# su xiaoming
[xiaoming@localhost xiaoming]$ ls
root root.txt xiaohua xiaomingtext.txt xiaomingtxt.txt xioahua
[xiaoming@localhost xiaoming]$ rmdir root
[xiaoming@localhost xiaoming]$ ls
root.txt xiaohua xiaomingtext.txt xiaomingtxt.txt xioahua
[xiaoming@localhost xiaoming]$ rm root.txt
rm:是否删除有写保护的普通空文件 "root.txt"?y
[xiaoming@localhost xiaoming]$ ls
xiaohua xiaomingtext.txt xiaomingtxt.txt xioahua
[xiaoming@localhost xiaoming]$ rmdir xiaohua
rmdir: 删除 "xiaohua" 失败: 不是目录
[xiaoming@localhost xiaoming]$ rmdir xioahua
[xiaoming@localhost xiaoming]$ ls
xiaohua xiaomingtext.txt xiaomingtxt.tx
一个目录有t的情况下:任何用户只要进入该目录都只能删除(控制)自己文件(仅仅用于普通用户之间,root用户还是可以删除控制普通用户的文件)
root@localhost yuanyi]# cd xiaoming/
[root@localhost xiaoming]# ls
root root.txt
[root@localhost xiaoming]# su xiaoming
[xiaoming@localhost xiaoming]$ ls
root root.txt
[xiaoming@localhost xiaoming]$ mkdir xiaoming
[xiaoming@localhost xiaoming]$ touch xiaoming.txt
[xiaoming@localhost xiaoming]$ ls
root root.txt xiaoming xiaoming.txt
[xiaoming@localhost xiaoming]$ su xiaohua
密码:
[xiaohua@localhost xiaoming]$ ls
root root.txt xiaoming xiaoming.txt
[xiaohua@localhost xiaoming]$ mkdir xiaohua
[xiaohua@localhost xiaoming]$ touch xiaohua.txt
[xiaohua@localhost xiaoming]$ ls
root root.txt xiaohua xiaohua.txt xiaoming xiaoming.txt
[xiaohua@localhost xiaoming]$ rm root.txt #普通用户不能删除其他用户的文件
rm:是否删除有写保护的普通空文件 "root.txt"?y
rm: 无法删除"root.txt": 不允许的操作
[xiaohua@localhost xiaoming]$ rm -rf root.txt
rm: 无法删除"root.txt": 不允许的操作
[xiaohua@localhost xiaoming]$ rm -rf xiaoming.txt
rm: 无法删除"xiaoming.txt": 不允许的操作
[xiaohua@localhost xiaoming]$ su root
密码:
[root@localhost xiaoming]# ls
root root.txt xiaohua xiaohua.txt xiaoming xiaoming.txt
[root@localhost xiaoming]# rm -rf xiaohua #root不受t权限限制
[root@localhost xiaoming]# ls
root root.txt xiaohua.txt xiaoming xiaoming.txt
6. 特殊权限之 i 权限的讲解
i的权限:不可修改,无论任何人。如果要删除必须把i权限删除
[root@localhost xiaoming]# su root
[root@localhost xiaoming]# ls
root root.txt xiaoming xiaoming.txt
[root@localhost xiaoming]# rm -rf root #删除root目录
[root@localhost xiaoming]# ls
root.txt xiaoming xiaoming.txt #删除成功
[root@localhost xiaoming]# mkdir root
[root@localhost xiaoming]# chattr +i root #增加i权限
[root@localhost yuanyi]# lsattr xiaoming/ #查看i权限
----i--------e- xiaoming/root #成功获得i权限
-------------e- xiaoming/root.txt
-------------e- xiaoming/xiaoming.txt
-------------e- xiaoming/xiaoming
[root@localhost yuanyi]# cd xiaoming/
[root@localhost xiaoming]# rm -rf root #删除带i权限的文件
rm: 无法删除"root": 不允许的操作 #失败,带i权限的文件不允许删除
删除带i权限的文件:
[root@localhost xiaoming]# chattr -i root #去除i权限
[root@localhost xiaoming]# cd ..
[root@localhost yuanyi]# lsattr xiaoming #查看
-------------e- xiaoming/root #去除成功
-------------e- xiaoming/root.txt
-------------e- xiaoming/xiaoming.txt
-------------e- xiaoming/xiaoming
[root@localhost yuanyi]# cd xiaoming/
[root@localhost xiaoming]# rm -rf root #删除文件
[root@localhost xiaoming]# ls
root.txt xiaoming xiaoming.txt #删除成功
[root@localhost xiaoming]#
7.特殊权限之 a 权限
a权限:只追加权限。这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。在没有取消a权限之前不能设置其他权限
应用场景:日志系统。
[root@localhost xiaoming]# chattr +a root.txt #添加a权限
[root@localhost xiaoming]# cd ..
[root@localhost yuanyi]# lsattr
-------------e- ./xiaoming
[root@localhost yuanyi]# lsattr xiaoming/
-----a-------e- xiaoming/root.txt #添加成功
-------------e- xiaoming/xiaoming.txt
-------------e- xiaoming/xiaoming
[root@localhost yuanyi]# cd xiaoming/
[root@localhost xiaoming]# lsattr
-----a-------e- ./root.txt
-------------e- ./xiaoming.txt
-------------e- ./xiaoming
[root@localhost xiaoming]# cat >root.txt #以覆盖方式写入
bash: root.txt: 不允许的操作 #不被允许
[root@localhost xiaoming]# cat >>root.txt #以追加方式写入
aaaaa
root
^C
[root@localhost xiaoming]# cat root.txt
aaaaa
root #成功
[root@localhost xiaoming]# echo "bb" > root.txt
bash: root.txt: 不允许的操作
[root@localhost xiaoming]# echo "bb" >> root.txt
[root@localhost xiaoming]# cat root.txt
aaaaa
root
bb
[root@localhost xiaoming]# rm -rf root.txt #删除命令
rm: 无法删除"root.txt": 不允许的操作 #无法被删除
8.特殊权限数字型权限表示法:
chmod 0644 2.txt
第一位表示特殊权限位
— | –t | -s- | -st | s– | s-t | ss- | sst |
---|---|---|---|---|---|---|---|
000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
SUID:4
SGID:2
SBIT:1
[root@localhost xiaoming]# chmod 4777 root.txt
[root@localhost xiaoming]# ls -l
总用量 8
-rwsrwxrwx. 1 root root 14 8月 12 19:54 root.txt