上一章咱们学习了用户的权限以及用户的管理,这一章咱们就来学习文件的权限和管理
linux
这一章的内容十分重要,由于Linux中的一切都是文件。因此文件的管理显得尤其重要shell
文件权限vim
1.文件属性的查看:安全
ls -l filenamebash
-|rw-r--r--.|1| root| root| 46| Oct 1 05:03 |filenameide
1 2 3 4 5 6 7 8学习
在这里,咱们把这个命令的输出人工的分为了9段(输出中间的分隔符“|”是咱们为了方便观察本身加上去的哦),接下来咱们意义来解释这9段分别是什么ui
1.文件类型
spa
- ##普通文件
3d
d ##目录
c ##字符设备
s ##套接字
p ##管道
b ##块设备
l ##链接
2.文件读写权限
rw-|r--|r--
* $ @
* 拥有者的权限
$ 拥有组的权限
@ 其它人的权限
3.文件内容被记录的次数
4.文件拥有者
5.文件拥有组
6.文件内容的大小
7.文件最后一次被修改的时间
8.文件名字
文件拥有人拥有组的管理
chown username file|directory ##更改拥有人
chown username:groupname file|directory ##更改拥有人拥有组
chown -R username directory ##更改目录自己及里面全部内容的拥有人
chgrp -R groupname directory ##更改目录自己及里面全部内容的拥有组
监控命令:watch -n 1 ls -lR /mnt
经过上面这张截图咱们能够看到,咱们刚开始有一个名为westos的文件,它的拥有者是westos
而后咱们执行了chown 0 westos操做(0=root),它的拥有者就变成了root
文件普通权限
rw-|r--|r--
u g o
u:文件拥有者对文件能够读写
g:文件拥有组对文件能够读
o:其它人对文件可读
u优先匹配,g次优先,o当u,g不匹配时匹配
r
对文件:能够查看文件中的字符
对目录:能够查看目录中文件的信息
2.w
对文件:能够更改文件内字符
对目录:能够在目录中删除添加文件
3.x
对文件:能够运行文件
对目录:能够进入目录中
4.字符方式修改文件权限
chmod [-R] [u|g|o] [+|-|=] [r|w|x] file|dir
chmod u-x file1 ##file1拥有者去掉x权限
chmod g+w file1 ##file1拥有组添加w权限
chmod u-x,g+w file1 ##file1拥有者去掉x权限,拥有组添加w权限
chmod ugo-r file2 ##file2的用户组其它人去掉r权限
chmod ug+x,o-r file3 ##file3拥有者和拥有组添加x权限,其它人去掉r权限
5.数字方式修改文件权限
在linux中
r=4
w=2
x=1
文件权限数字表示方式:
rw-|r--|r--
u g o
u=rw-=4+2+0=6
g=r--=4+0+0=4
o=r--=4+0+0=4
因此文件权限表示为644
chmod 修改后权限值 file
chmod 777 file
7=rwx
6=rw-
5=r-w
4=r--
3=-wx
2=-w-
1=--x
了解了这些之后,你们必定都想试试看,看本身touch一个文件或目录权限是否都是777
可是试过的同窗必定会发现,并非这样。
咱们mkdir一个新的目录,会发现它的权限显示这样 drwxr-xr-x 也就是755
而touch一个新文件则,它的权限则是 -rw-r--r-- 也就是644
这是为何呢?
在咱们建立一个文件或者目录时,系统默认会在777的基础上减去022,这是为了安全着想。咱们只给拥有者写和执行的权力,让拥有组和其它人只有读的权利。然而文件在建立的初始为了安着想,则不能给任何人执行的权力,因此要在755的基础上再减去111,就有了644这个结果,以下图:
固然,022是系统的默认选项,咱们也能够去更改它
umask 077 ##修改系统保留权限为077,此设定为临时设定,只当前shell中有效
永久修改方式:
vim /etc/bashrc ##shell
在第71行到74行以下:
71 umask 002 ##普通用户umask
72 else
73 umask 022 ##超级用户umask
74 fi
vim /etc/profile ##系统
在第60到63行以下
60 umask 002 ##普通用户umask
61 else
62 umask 022 ##超级用户umask
63 fi
只须要把这里的umask进行更改就是永久更改
以上两个文件umask设定值必须保持一致
source /etc/bashrc
source /etc/profile
让设定当即生效
特殊权限
suid ##冒险位
只针对二进制可执行文件
做用:能够设定文件内程序被执行时是以文件拥有者身份执行的,而不是真正的执行者
老师举的例子很形象:就是你借了邻居的锅作饭,加了suid就能够借了他的锅还让他给你作饭。
设定方式:
1.参数方式:chmod u+s file
由于suid=4,因此还有一个数字方式
2.数字方式:chmod 4xxx file
2.sgid ##强制位
对文件:只针对二进制可执行文件
做用:能够设定在任何人运行二进制可执行文件时产生的进程的全部组都是文件的全部组
对目录:当目录拥有sgid权限后,目录中新建的全部文件的全部组都自动归属到目录的全部组当中,和文件创建者所在的组无关(注意,这里是 新建 的全部文件!新建的!!!)
设定方式:
1.参数方式:chmod g+s file|directory
由于sgid=2,因此有数字方式
2.数字方式:chmod 2xxx file|directory
3.sticky ##粘制位
t权限:
只针对目录,当一个目录上有t权限,那么目录中的文件只能被拥有者删除
设定方式:
1.命令方式:chmod o+t directory
由于t=1,因此有数字方式
2.chmod 1xxx directory