文件权限
1.文件权限存在的意义
系统最底层安全设定方法之一,保证文件可以被可用的用户作相应操作。
2.文件权限的查看
在这里我们用ls -l filename命令来查看文件的属性
ls -l file 即就是ls -l命令可以简写为ll
ls -ld dir (ll -d dir)
-
3.文件权限的读取
- | rw-rw-r-- | 1 | kiosk |kiosk | 0 | Jul 21 09:18 | file
[1] [2] [3] [4] [5] [6] [7] [8]
[1]文件的类型
- ##空文件,或者文本
d ##目录
l ##软链接 (给一个文件创建一个快捷方式,内容一样称为其软链接,例如给file创建一个软链接westos,ln -s file westos,再ls -lwestos一下,可以看到最前面出现了l,打开文件实际打开的是源文件)
##ln命令:ln命令用来为文件创建链接,链接类型分为软链接和硬链接,默认的链接类型是硬链接,如果要创建符号连接必须使用-s选项,如果使用-s选项创建符号连接,则源文件可以使文件或者目录,创建硬链接时,则源文件参数只能是文件。
s ##socket 套结字 程序是封闭的,套接字就是程序对外交互的接口
b ##block 块设备 外界设备插入后
c ##字符设备
[2]
文件的权限
rw-|rw-|r--
1 2 3
1.[u] 文件拥有者对文件能做什么操作
2.[g] 文件所有组对文件能做什么操作
3.[o] 其他人对文件能做什么操作
[3]
对文件:文件硬链接个数(文件内容被记录的次数)
对目录:目录中子目录的个数
[4]
文件所有人
[5]
文件所有组
[6]
对文件:文件大小
对目录:目录中子文件元数据(matedate可以理解为文件的属性)大小;元数据是文件的属性 ###每个字符是一个字节,文件名一个字符是一个字节###
[7]
文件的内容最后一次被修改的时间
[8]
文件的名称
4.如何改变文件的所有人和所有组
chown|chgrp
chown username file|dir ###更改文件或目录的所有者
chown user.group file|dir (eg:chown westos.stude注意:nt /mnt/westos/) ###更改文件或目录的所有者和所有组
rwx
210
r=4
w=2
x=1
r-x|r--|--x
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
chown -R user.group dir (改变文件夹里面所有的) ###递归更改所有者和所有组,即当对目录进行该操作时,将更改目录下包括子目录内所有文件的所有者和所有组
chgrp group file|dir ###更改文件或目录的所有组###
chgrp -R group dir ###递归更改文件的所有组,即当对目录进行该操作时,将更改该目录和所有子目录的所有组
先在/mnt/中建立文件
先对其实时监控,以方便查看变化
chgrp -R group dir 小更改目目录本身及里面所有内容的所有组
注意:若改变目录所有人时不写 -R ,则只会改变目录的所有人,不能改变目录中文件的所有人
5.如何改变文件的权限
(1)对权限的理解
r
对文件:是否可以查看文件中的内容 ----> cat file
对目录:是否可以查看目录中有什么子文件或者子目录----->ls dir
w
对文件:是否可以改变文件里面记录的字符
对目录:是否可以对目录中子目录或许子目录或者子文件的元数据进行更改
X
对文件:是否可以通过文件名称调用文件内记录的程序
对目录:是否可以进入目录
(2)更改方式suid
chmod <u|g|o><+|-|-><<r|w|x> file|dir
chmod u+x /mnt/file1 ###添加所有人的x权限###
chmod g-r /mnt/file2 ###删除所有组的x权限###
chmod ug-r /mnt/file3 ###删除所有人和所有组的r权限###
chmod u-r,g+x /mnt/file4 ###删除所有人的r权限,添加所有组的x权限###
chmod -r /mnt/file5 ###删除所有的r权限###
chmod o=r-x /mnt/file6 (不说往哪加默认为加在u上)
chmod -w /mnt/file7 ###只删除所有人的w权限
chmod -x /mnt/file8 ###删除所有的x权限###
chmod +r/w/x /mnt/file9 ###单独加一个权限时默认是加在所有者上的###
###g或者o使用=r-x是加不上去的,出于安全因素的考虑,r-x表示只加rx权限不加w权限,但是u使用该命令是可以的###
### chmod u=rx /mnt/file 可以加r和x权限,而u=r-x只能加r权限 ###
从下图我们可以看到用chmod命令的一些常用操作。
数字表示:
r w x
2 1 0
r=4,w=2,x=1
r-x|r--|--x
7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x
chmod 755 组名/目录名/文件名
例题:
新建用户组,shengchan,caiwu,jishu
新建用户要求如下:
1)tom是sehngchan组的附加用户
2)harry是caiwu组的附加用户
3)leo是jishu组的附加用户
4)新建admin用户,此用户不属于以上提到的三个部门
新建目录要求如下:
1)/pub目录为公共存储目录对所有用户可以读,写,执行
2)/sc目录为生产部存储目录只能对生产部人员可以写入
3)/cw目录为财务部存储目录只能对财务部人员可以写入
操作如下:
6.文件默认权限umask
umask 系统建立文件时默认保留的权力
umask 077 ##临时设定系统预留权限为077,只对当前shell有效。
临时更改 umask 077
永久更改 umask 077
vim /etc/profile ##系统配置文件
59 if [$UID -gt 199 ]&&["'id -gn'"="'id -un'"]; then
60 umask 002 ##普通用户的umask
61 else
62 usmask 077 ##超级用户的umask##
63 fi
注意:
vim /etc/bashrc ##shell配置文件##
70 if [$UID -gt 199 ]&&["'id -gn'"="'id -un'"]; then
71 umask 002 ##普通用户的umask##
72 else
73 usmask 077 ###超级用户的umask###
74 fi
source /etc/profile ##让更改立即生效,刷新bash配置
source /etc/bashrc ##刷新系统配置
注意:系统默认保留权限022,内核默认保留权限111
7.特殊权限
(1)sticky ###粘制位
作用:
只针对与目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件所有者删除
设定方式:
chmod o+t
chmod 1XXXX ###xxx代表0~7的任意数字###
在未加粘制位之前,student是可以删除tom建立的文件的,那我们再来看看加了stick后吧。
我们可以看到删除文件被拒绝了。
"注意:如果要目录里的文件能删除,需要给目录777的最高权限,否则即使所有者也删除不了"
(2)sgid ######强制位
作用:
对文件: 只针对与二进制可执行文件,注意:
当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组。
设定方式
chmod g+s file|dir
chmod 2XXXX file|dir
退出tom到root用户上执行命令
我们可以看到加上sgid命令后,任何人执行此文件产生的进程都属于文件的组 。
(3)suid ##冒险位
作用:
只针对与2进制可执行文件,程序执行时以root身份运行。
当文件上有suid时任何人执行这个文件中的程序产生的进程都属于文件的所有人
设定方式
chmod u+s file
chmod 4XXX file
注意:此权限设定后,不能使用数字方式取消此权限!
8.acl权限列表
acl=access contral
(1)作用
让特定的用户对特定的文件拥有特定权限
(2)acl列表查看
-rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
^
acl开启
getfacl file ##查看acl开启的文件的权限
#file: file ##文件名称
#owner: root ##文件拥有者
#group: root ##文件拥有组
user::rw- ##文件拥有人的权限
user:kiosk:rwx ##指定用户的权限
group::r-- ##文件拥有组的权利
mask::rwx ##能赋予用户的最大权力伐值注意:
other::r-- ##其他人的权限
注意:当文件上有权限列表时,ls -l能看到的权限是假的。
(3)acl列表的管理(有加号的不准确)
setfacl -m u:username:rwx file ##设定username对file拥有rwx权限
setfacl -m g:group:rwx file ##设定group组成员对file拥有rwx权限
setfacl -x u:username file ##从acl列表中删除username
setfacl -b file ##关闭file上的acl列表
(4)mask值
在权限列表中mask标示能生效的权力值
注意:当开启权限列表(acl)后,再次使用chmod缩小权限时,会改变mask值,此时出现的权限是虚假的
(5)acl的默认权限设定
acl默认权限只针对目录设定
“acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限”
setfacl -m d:u:student:rwx /mnt/westos
限制超级用户的权限:i权限
lsattr file
chattr +i/-i file注意:
查看:lsattr file