文件权限存在的意义
1、文件权限的存在是系统最底层安全设定方法之一
2、保证文件可以被授权的用户做相应的操作
文件权限的查看
ls -l file | 文件权限查看 |
---|---|
ls -ld dir | 目录权限查看 |
ls -LR dir | 递归目录查看 |
ll file | 文件权限查看 |
ll -d dir | 目录权限查看 |
对权限的理解
r:
1、对文件:是否可以查看文件中的内容 —>cat file
2、对目录:是否可以查看目录中有什么子文件或者子目录 —> ls dir
w:
1、对文件:是否可以改变文件里面记录的字符
2、对目录:是否可以对目录中子目录或子文件的元数据进行更改
x:
1、对文件:是否可以通过文件名称调用文件内记录的程序
2、对目录:是否可以进入目录
文件权限的读取
- | rw-rw-r--| 1 | root| root | 0 | Oct 1 14:34 | file
文件类型|文件权限|内容被记录次数|文件所有人|文件所有组|文件大小|文件最后一次被修改时间|文件名称
文件类型
- | 空文件,文本 |
---|---|
d | 目录 |
l | 软链接 |
s | socket套接字 |
b | block块设备 |
c | 字符设备 |
文件权限
rw-|rw-|r--
1 2 3
1.[u] 文件所有者对文件能做操作
2.[g] 文件所有组对文件能做操作
3.[o] 其他人对文件能做操作
内容被记录次数
1、文件:文件的硬链接个数
2、目录:目录中子目录个数
更改文件和目录的所有人、所有组
chown student file ##更改file文件的所有人
chgrp westos file1 ##更改file1文件的所有组
chown student.westos file2 ##同时更改file2文件的所有人、所有组
示例:
此操作在watch监控下完成
watch -n 1 "ls -lR /mnt/mnt" ##-lR 含义:同时监控目录下的文件
chown -R lee.westos file1 ##更改目录本身及目录下的文件
示例:注意对比,没有-R只改变目录的用户和家目录,但其下文件并没有更改。
chgrp 新所有组名称 文件名 ##更改文件所有组
chgrp 新所有组名称 目录名 ##更改目录的所有组
chgrp -R 新所有组名称 目录名 ##更改目录本身与目录下所有文件的所有组
改变文件的权限
chmod <u|g|o><+|-|=><rwx> file|dir
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
chmod a-r /mnt/file6
chmod o=r-x /mnt/file7
示例:
chmod --reference=file|dir file1|dir1 ##复制file或dir的权限给file1或dir1
示例:
数字方式权限指定:
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
4——r
2——w
1——x
umask 命令
从系统存在角度来说,开放权力越大,系统存在意义越高,从系统安全角度来说,开放权力越少,系统安全性越高.
umask ##系统默认umask为0022,umask值中第一位与特殊权限有关
umask 077 ##修改该系统保留权限为077,此设定为临时设定,只当前shell中生效
要想永久修改umask;
vim /etc/bashrc ##shell配置文件
vim /etc/profile ##系统配置文件
source /etc/bashrc
source /etc/profile ##让更改立即生效
示例:第一个为普通用户的umask,第二个为超级用户的umask
进行更改
注意:两个文件的umask值必须都要更改
粘制位sticky
1、作用:
只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除。
2、设定方式:
chmod o+t dir
chmod 1xxx dir
示例:
强制位 sgid
1、作用:
对文件:只针对与二进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组。
对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组。
2、设定方式
chmod g+s file|dir
chmod 2xxx file|dir
示例:
注意观察下两图,用户组改变了
冒险位 suid
1、作用:
只针对与二进制可执行文件,当文件上有suid时任何用户执行这个文件中的程序产生的进程都属于文件的所有人。
2、设定方式:
chmod u+s file
chmod u-s file ##撤销权限
chmod 4xxx file
示例:
acl权限列表
1、作用:让特定用户对特定文件拥有特定权限
2、acl列表查看:
-rw-rwxr--+ 1 root root 0 Jul 21 15:55 file
^ 加号表示acl开启
查看acl开启的文件的权限:
getfacl file ##查看acl开启的文件的权限
acl列表每一行的含义:
#file:file ##文件名称
#owner:root ##文件拥有者
#group:root ##文件拥有组
user::rw- ##文件拥有人的权限
user:student:rwx ##指定用户的权限
group::r-- ##文件拥有组的权限
group:student:rwx ##指定用户组的权限
mask::rwx ##能赋予用户的最大权力阀值
other::r-- ##其他人的权限
3、acl列表的管理
getfacl file
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列表
示例:让tom对file拥有特定的权限
删除 tom 对file的特定权限
发现+仍然存在
关闭acl权限
mask值
当权限列表中mask标示能生效的权利值
当用chmod减小开启acl的文件权限时mask值会发生改变
chmod g-W westos
如果要恢复mask的值
setfacl -m m:rw westos
示例:
acl的默认权限的设定
acl默认权限只针对目录设定
注意:acl权限只针对设定完成之后新建的文件或目录生效,而对已经存在的文件是不会继承默认权限
setfacl -m d:u:student:rwx /mnt/westos
setfacl -k /mnt/westos ##关闭默认权限
示例:建立目录给予权限
在该目录下建立没有默认权限
进行此步操作
再次在该目录下建立文件都会默认权限
权限优先级排序
userperm > acluser > aclgroup > groupperm > otherperm
即:用户权限> acl用户权限 > acl组权限 > 组权限 > 其他用户权限
chatter命令
用chattr命令可以改变一个文件的隐藏属性。
chattr [-RVf][-v version] [mode] files…