1.文件权限存在的意义是什么?
系统最底层安全设定方法之一,保证文件可以被用户做相应操作
(1)权限对于文件
r(read):是否可以查看、读取文件中的内容 --->cat file
w(write):是否可以编辑、修改文件的内容
x(execute):是否可以通过文件名称调用文件内记录的程序(即该文件是否有被系统执行的权限)
(2)权限对于目录
r(read):是否可以查看目录中有什么子文件或者子目录 ---> ls dir
w(modify contents of directory):是否可以对目录中子目录或子文件的元数据进行更改 ;新建新的文件和目录;删除已 经存在的文件和目录;将已经存在的文件和目录重命名(不论该文件的权限为何); 转移该目录内的文件、目录位置。
x(access directory):是否可以进入目录,进行创建,删除文件
"注意":对于目录,只有进入目录后,才能对目录进行写入的操作,即只有在x生效时,w才能生效;
若只有x权限,则只能进入到路径下,而不能进行修改文件元数据,创建或删除的操作;
切换用户后,目标用户可以删除自己创建的文件,但是要根据权限决定能否删除原用户创建的文件
2.文件权限的查看
(1)ls -l file ##显示文件的属性
(2)ls -l dir ##显示目录中的内容的属性
(3)ls -ld dir ##显示目录本身的属性
(4)ll file ##相当于ls -l file
(5)ll - d dir ##相当于ls -ld dir
(6)ls -lR dir ##递归显示目录下的所有内容的属性
3.文件权限的读取
"ls -l "显示的文件或者目录的属性格式如下:
- |rw-rw-r--| 1 |kiosk | kiosk | 0 | Jul 21 09:18 | file
[1] [2] [3] [4] [5] [6] [7] [8]
[1]表示文件的类型
- ##空文件,或者文本
d ##目录
l ##软链接
创建文件或目录软连接 ln -s 源文件名 目标文件名
创建文件的硬链接 ln 源文件名 目标文件名
s ##socket 套接字
b ##block 块设备
c ##字符设备
[2]表示文件的权限
rw-|rw-|r--
该位置总共包含九个字节。前三个字节表示 文件拥有者对文件的权限[u];中间三个字节表示文件所有组对文件的权限[g];最后三个字节表示 其他人对文件的权限[o]。
注意:文件拥有着(即是谁创建的这个文件)和文件所有组(即文件属于的组)没有直接的关系
[3]位置对文件来说表示文件硬链接个数(文件内容被系统记录的次数),对目录而言表示目录中子目录的个数(每个子目录中一定包含 . 和 .. 两个子目录)
[4]表示文件的所有者
[5]表示文件所有组
[6]对文件来说表示文件大小,空文件的大小为0 ;对目录而言表示目录中子文件元数据(matedate可以理解为文件的属性)大小 ,空目录的大小为6个字节
[7]表示文件的内容被修改的时间
[8]是文件的名称
4.如何改变文件的所有人和所有组?
以下演示操作均在 watch -n 1 "ls -lR /mnt"下进行
(1)更改文件或者目录的的所有人
<1> chown username file|dir
例子: 将westos文件的所有人改为student
<2>chown -R username dir
改变该目录和该目录中的所有内容的所有者
(2)更改文件或者目录的所有组
<1> chgrp group file|dir
例子:将westos的所有组改成student
<2> chgrp -R group dir ## 改变该目录和该目录中的所有内容的所有组
(3)同时更改目录或者文件的所有人和所有组
<1>chown user.group file|dir
<2>chown -R user.group dir ##递归更改目录的所有者和所有组
5.如何改变文件的权限?
(1)更改方式
chmod <u|g|o><+|->=<r|w|x> file|dir
chmod <u|g|o><+|->=<数字> file|dir
r w x - 对应数字 4 2 1 0
例子:
(2)文件的可读,可写,可执行权限设置
<1>文件的不可读,不可写,不可执行
<2>文件的可读,可写
<3>文件的可读,可写,可执行
(3) 目录的可读,可写,可执行权限设置
<1>目录的不可读,不可写
<2>目录的只可读
<3>目录的可读,可写,可执行
6.如何更改系统建立文件时默认保留的权力(即预留配置)?
(1)临时设定系统预留权限
umask 077
注意:不同的文件系统预留的配置不同,在linux系统中,目录预留022,文件预留022+111
(2)永久更改umask
<1>第一步,更改系统配置文件 /etc/profile
<2>.第二步,更改系统配置文件 /etc/bashrc
<3>更新/etc/profile 和/etc/bashrc ,让更改立即生效
source /etc/profile
source /etc/bashrc
注意:若不更新这两个配置文件,则系统预留权限依旧不更改。
7.特殊权限的设置
(1)sticky 粘制位
<1>作用:
只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除
<2>命令执行
chmod o+t dir
chmod 1xxx dir
例子:将/mnt/linux目录权限改成sticky,此时切换到student用户,可以读取/mnt/linux下的内容,也可以在该目录下新建 文件,但是不能删除目录下的文件
(2)sgid 强制位
<1>作用
对文件:只针对与二进制可执行文件, 当文件上有sgid时任何人执行此文件产成的进程都属于文件的的组
对目录:当目录的组权限上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
<2>设定方式
chmod g+s file|dir
chmod 2xxx file|dir
例子:将/mnt/linux目录设定为 g+s (sgid)权限,在student用户下,在此目录下创建的文件都属于这个目录的所有 组 root组
(3)suid 冒险位
<1>作用:
只针对与2进制可执行文件,当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件 的所有人
<2>设定方式
chmod u+s file
chmod 4xxx file
8.acl权限列表
注意:以下截图均是在watch -n 1 "ls -lR /mnt/westos;getfacl /mnt/westos"监控下
(1)作用
让特定的用户对特定的文件拥有特定权限
(2)acl列表查看
查看acl开启的文件的权限
getfacl file
(3)acl列表的管理
-rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
^
注意: acl开启"开启后,权限变成列表中的权限,默认权限不生效"
<1> 设定username对file拥有rwx权限(可以用数字设定)
setfacl -m u:username:rwx file
<2>设定group组成员对file拥有rwx权限
setfacl -m g:group:rwx file
例子:设定student用户和student组对/mnt/westos文件有"7"和“5”的权限
<3>从acl列表中删除username
setfacl -x u:username file
<4>从acl列表中删除groupname
setfacl -x g:groupname file
例子:删除student用户和student组在acl列表中的特殊权限
<5>关闭file上的acl列表
setfacl -b file
(4)mask值
<1> 作用:
在权限列表中mask标示能生效的权力值
<2>当用chmod减小开启acl的文件权限时,mask值会发生改变,此时会产生无效的用户权限
例如: chmod g-rwx /mnt/westos
<3>恢复mask值
setfacl -m m:rw westos
(5)acl的默认权限
<1>设定方式
setfacl -m d:u:username:权限 目录名称
例子:setfacl -m d:u:student:rwx /mnt/test
注意: acl默认权限只针对目录设定
"acl权限只针对设定完成之后新建立的目录生效,而已经存在的是不会继承默认权限"
<2>去掉默认权限:setfacl -k /mnt/test
"注意:"只能去掉这一层目录的默认,对于新建的继承默认权限的目录不能