文件的类型
- 普通文件
d 目录
l 链接文件
b 块设备文件--------一般为硬件设备等
c 字符设备文件------一般为硬件设备等
p 管道文件
s 套接字文件
查看目录的属性时加参数-d-----> ll -d
权限针对的对象
owner
文件所有者,u
group
所属组,g
other
其他人,o
权限
可读---read
对于一般文件,表示能读取文件内容(cat)
对于目录文件,表示能够读取目录的内容(ls)
数字表示为4(八进制),字符表示为r
可写--write
对于一般文件,表示能够编辑,新增,修改,删除文件的实际内容(vim)
对于目录文件表示能在目录内新增、删除、重命名文件(touch)
数字表示为2,字符表示为w
可执行--execute
对于一般文件表示能运行 的一个脚本文件(./script)
对于目录文件表示能够进入该目录(cd)
数字表示为1,字符表示为x
除了第一个 “ - ”代表文件类型,其余的“ - ”都是占位符,代表没有权限
user_test.txt依次为所有者权限rw-(6),所属组权限r--(4),其他人权限r--(4),即644。第一个stu代表所属账户(所有者),第二个stu代表所属组,然后是文件占用磁盘大小,最后一次修改时间
默认文件权限是644
默认目录权限是755
chmod---修改文件或目录的权限
# 格式1
chmod [选项] [ugoa][+-=][rwx] 文件或目录...
+:增加权限
-:减少权限
=:精准设置权限
u:拥有者
g:所属组
o:其他用户
a:所有用户
# 格式2
chmod [选项] nnn 文件或目录...`
扩展参数
u+s:设置SUID---------s数字型是4
u-s:取消SUID权限
g+s:设置SGID权限------s数字型是2
g-s:取消SGID权限
o+t:设置SBIT权限------t数字型是1
o-t:取消SBIT权限
rwsrwsr-- ==== SUID+SGID rwxrw-r------->数字表示:特殊权限+一般权限6764
字符形式修改文件权限
a代表所有,为所有人增加x可执行的权限,什么用户都没写(+x)同样代表给所有人加执行权限
-表示删除权限
为文件拥有者添加可执行的权限
数字形式修改文件权限
修改目录权限
与修改文件权限类似,但是如果想递归修改目录下的所有子文件,子目录的权限要加参数-R
chown--修改文件或目录的所有者和所属组
格式:chown 参数 所有者:所属组 文件名
参数:
-R:递归修改,对目录操作时需使用
SUID
s是特殊权限,如果原来有x权限,则表示为s,如果原来没有x权限则表示为S
passwd命令对应的执行文件位置在/bin/passwd中
一种对 二进制程序进行设置的特殊权限,能让二进制程序的执行者临时拥有所有者的权限
原本的x位变为s,代表文件被赋予了SUID权限,一旦一个命令文件设置了SUID权限,那么所有执行该命令文件的人都可以临时获取文件所有者对应的最高权限
SGID
对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限
对目录进行设置时,能让目录内新创建的文件自动降级成该目录原有用户组的名称,通常谁创建一个文件,这个文件就属于谁,,如果需要在某个组中创设置共享目录,让所有人都能读取目录中的内容,那么就可以在创建该目录时,在这个目录设置SGID权限
SBIT
SBIT特殊权限位也称为特殊权限位之粘滞位,,,字符表示t
当某个目录设置了SBIT粘滞位后,该目录中的文件就只能被其所有者执行删除操作
当目录设置了SBIT特殊权限限位后,文件的其他用户权限部分的x权限会被替换为t或T,原有的x权限变成t,原本没有x权限则写成T
/tmp共享文件目录,默认设置了SBIT特殊权限限位
文件的隐藏属性
隐藏权限专用设置命令是chattr,专用查看命令是lsattr,
chattr
change attributes
加隐藏功能则为+参数,删除某个功能则使用-参数
参数:
i:无法对文件修改,若对目录设置该参数,则仅能删除其中的子文件内容,而不能新建或删除文件
a:仅允许补充内容,无法删除/覆盖内容-----通常设置在日志文件(/var/log/message....)
S:文件内容变更后立刻同步到磁盘
s:彻底从磁盘中删除,不可恢复,,,磁盘上的文件会被用零块重新填充
lsattr
全称:list attributes
文件访问控制列表
基于普通文件或目录设置ACL,就是针对指定的用户或用户组设置文件或目录的操作权限,如果某个目录设置了ACL,则其中的文件会继承其ACL权限;若对文件设置了ACL,则其不在继承其所在的目录的ACL权限。ACL权限设置时立即且永久生效的。
setfacl
用来管理文件的ACL权限规则,ACL权限提供的是在所有者,所属组,其他人的r/w/x权限以外的特殊权限,对目录设置时要使用-R递归参数,针对普通文件则要使用-m参数
使用setfacl命令可以针对单一用户或用户组、单一文件或目录进行可读/可写/可执行权限的控制。
全称:set file access control lists
格式:setfacl 【参数】 文件名
参数:
-m修改权限
-M:从文件中读取根权限
-x:删除某个权限
-b:删除全部权限
-R:递归子目录
为用户stu2单独设置权限
此时w1权限末尾的“ . ” 变成了“ + ”,代表设置了ACL
ACL权限恢复
setfacl --restore 备份权限文件名
getfacl
查看文件的ACL权限规则
格式:getfacl [参数] 文件名
权限掩码umask
在Linux中,当用户创建一个新的目录或文件时,系统都会为新建的文件或目录分配默认的权限,该默认权限与umask有关
新建的文件默认权限==0666-umask值(减)==644
新建的目录默认权限==0777-umask值==755