1.文件权限存在的意义
系统最底层安全设定方法之一
保证文件可以被可用的用户做相应的操作
2.文件权限的查看
ls -l file
ls -l file | 查看文件信息 |
---|---|
ls -ld file | 查看目录本身的信息 |
ll file | 相当于ls -l file |
ll -d file | 相当于ls -ld dir |
ls -lR dir | 递归显示子目录 |
3. 文件权限的读取
- | rw-r--r-- | 1 | root | root | 32 | Oct 9 01:18 | file
[1] [2] [3] [4] [5] [6] [7] [8]
[1] 文件类型
- | 空文件,或者文本 |
---|---|
d | 目录 |
l | 软连接,相当于快捷方式 |
s | socket套接字(一个程序对外开放的门) |
b | block块设备 |
c | 字符设备 |
p | 管道 |
[2] 文件权限
| rw- | r-- | r-- | 三位为一组,分别代表的是user,group,other(简写u,g,o)
u: 文件拥有者对文件能做什么操作
g:文件所有组对为文件能做什么操作
o:其他人对文件能做什么操作
r:读
对文件:可以查看文件中的字符
对目录:可以查看目录中文件的信息
w:
对文件: 可以更改文件内字符
对目录:可以在目录中添加删除文件
x:
对文件:可以运行文件内记录的程序动作
对目录:可以进入目录
[3] 文件内容被系统记录的为次数: “1” (硬连接)
[4] 用户名: “root” (文件的所有人)
[5] 用户组名字:“root” (文件的所有组)
[6] 文件内容的大小:“32“
[7]文件最后一次被修改的时间 : “Oct 9 1:18”
[8]文件名字:“filename” (文件的名称)
4.如何改变文件的所有组和所有人
使用命令chown或者chgrp
chown username file 或者 dir | 更改文件或者目录的拥有着 |
---|---|
chown user:group file 或着 dir | 更改文件或者目录的用户和用户组 |
chown -R user:group dir | 递归更改目录及目录中子文件的用户和用户组 |
使用:watch -n 1 ls -lR /mnt/ 监控实验效果
(1) chown 新用户名 文件或者目录
(2) chown 新用户名:新用户组 文件或者目录
(3)chown -R 新用户名:新用户组 目录
chgrp group file或者dir | 更改文件或者目录的拥有着 |
---|---|
chgrp -R group dir | 递归更改文件目录的用户组 |
(4)chgrp group file或者dir ##更改文件或者目录的所有组
chgrp -R group dir ##递归更改目录及目录中所有文件的所有组
5.如何改变文件权限
更改方式
格式:
chmod <u|g|o><+|-|=><rwx> file|dir
eg:
chmod u+x /mnt/file1
chmod g-r /mnt/file2
chmod ug-r /mnt/file3
chmod u-r,g+x /mnt/file4
chmod -r /mnt/file5 #u,g,o权限都减r
chmod a-r /mnt/file6 #同上,与 -r相同
chmod o=rw- /mnt/file7 #将o权限改为rw-
chmod u+x /mnt/file1
chmod g-r /mnt/file2
6.数字方式更改文件权限
–x=001=1
-w-=010=2
-wx=011=3
r–=100=4
r-x=101=5
rw-=110=6
rwx=111=7
格式:chmod 修改后的权限值 file
eg:chmod 777 file
8.系统默认权限
• 从系统角度上讲,开放权力越小,系统安全性越高
• 当你创建一个新的文件或目录时 , 该文件或目录有默认权限
umask 的值指的是 该默认值需要减掉的权限
umask 默认值为022 ##系统建立文件时默认保留的权力
umask 077 ##临时设定系统预留权限为077
• 在默认权限的属性上 , 目录与文件是不一样的
• 文件的最大权限为 666, 目录的最大权限为 777
永久更改umask
步骤一:编辑/etc/profile 文件
vim /etc/profile ##系统配置文件,更改超级用户umask 077
59 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
60 umask 002 ##普通用户的umask
61 else
62 umask 077 ##超级用户的umask
63 fi
步骤二: 编辑/etc/bashrc 文件
vim /etc/bashrc ##shell配置文件,更改超级用户umask 077
70 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
71 umask 002 ##普通用户的umask
72 else
73 umask 077 ##超级用户的umask
74 fi
步骤三:激活修改文件
source /etc/profile ##让更改立即生效
source /etc/bashrc
步骤四:命令行输入 umask
显示如下:
9.特殊权限
1.sticky #粘滞位
作用:
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的拥有者删除
设定方式:
chmod o+t dir
chmod 1xxx dir
2.sgid ##强制位
作用
对文件: 只针对与二进制可执行文件,当文件上有sgid时,任何人执行此文件产生的进程都属于文件的组
对目录: 当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组
设定方式
chmod g+s file|dir
chmod g-s file|dir ##撤销权限
chmod 2xxx file|dir
3.suid ##冒险位
只针对与二进制可执行文件,当文件上有suid时,任何用户执行这个文件中的程序产生的进程都属于文件的所有人
设定方式
chmod u+s file
chmod u-s file ##撤销权限
chmod 4xxx file
10.文件的访问控制(acl列表)
1.作用
让特定用户对特定文件拥有特定权限
2.acl列表查看
-rw-rwxr--+ 1 root root 0 Jul 21 15:55 file
^ 其中加号表示acl开启
getacl file ##查看acl开启的文件的权限
#file:file ##文件名称
#owner:root ##文件拥有者
#group:root ##文件拥有组
user::rw- ##文件拥有人的权限
user:student:rwx ##指定用户的权限
group::r-- ##文件拥有组的权限
group:student:rwx ##指定用户组的权限
mask::rwx ##能赋予用户的最大权力阀值
other::r-- ##其他人的权限
如何设定特定权限
|
setfacl -m u:用户名:权限 文件名 | 设置用户名对文件拥有的权限 |
---|---|
setfacl -m g:组名:权限 文件名 | 设置组成员对文件拥有的权限 |
setfacl -x u:用户名 文件名 | 删除指定用户 |
setfacl -b 文件名 | 关闭文件的acl列表 |
setfacl -m u:用户名:权限 文件名
setfacl -m g:组名:权限 文件名
setfacl -x u:用户名 文件名 #删除指定用户
setfacl -b 文件名 #关闭文件的acl列表