Linux中的文件权限
文件权限
1.文件权限的意义
系统最底层的安全设定
保证文件可以被用户做指定的相应操作
2.文件权限的查看
ls -l file
ls -ld dir
ll file file
ll -d dir
3.文件权限的读取
(1)使用上述查看命令查看文件属性,会出现这样的信息:
- |rw-rw-r–| 1 |kiosk| |kiosk| 0 Oct 27 03:14 | file
[1] [2] [3] [4] [5] [6] [7] [8]
[1] 文件的类型
- 空文件或文本
d 目录
l 软链接
s socket套接字
b block块设备
c 字符设备
[2] 文件权限
rw-|rw-|r–
a [b] [c]
[b]:用户组对文件或目录的权限
[c]:其他用户对文件或目录的权限
[3] 文件被硬链接的次数
[4]文件所有人
[5]文件所有组
[6] 文件大小
[7] 文件最后修改日期
[8] 文件名
4权限的设置和修改
1.在linux中文件的权限分为用户权限,用户组权限,others权限。
为了方便观察,使用监控命令
watch -n 1 ls-lR dir
初始信息为:
2.chown 改变所有者(组)
chown username file/dir 改变文件或目录的所有人
chown username.groupname file/dir 改变文件或目录的所有人和所有组
以上命令适用于修改单个文件或目录的信息,不会修改目录中文件的所有人和所有组。
chown -R username dir 改变目录及里面内容的所有人
chgrp 改变用户组
chgrp -R groupname dir 修改目录及里面内容的所有组
**3.chmod 改变文件或目录的权限
要修改权限,首先要理解权限
1.关于文件的普通权限,分析如下:
(1)r
对文件:可以查看文件中的字符
对目录:可以查看目录中文件的信息
(2)w
对文件:可以更改文件内字符
对目录:可以在目录中添加删除文件
(3)x
对文件:可以运行文件内记录的程序动作
对目录:可以进入目录中
chmod u[+/-][r/w/x] file1
chmod g[+/][r/w/x] file1
chmod o[+/-][r/w/x] file1
chmod ugo[+/-][r/w/x] file1
修改文件权限:
修改目录权限:
除此之外,还有一种便捷的方法:直接赋值数字
规则为:r=4,w=2,x=1
也就是说u,g,o三者分别的最大权限为7,那对所有用户可读,可写,可执行就是‘777’
3.umask
umask 为系统建立为建立目录默认保留的权力,新建目录时默认从‘777’减去的权力。
一般默认为:umask 022
临时更改umask值:
永久更改umask:修改配置文件
vim /etc/profile
vim /etc/bashrc
更改前:
更改后:
更改完成后需使用source命令重新读取两个配置文件中的值,两个文件分别表示在进程或bash中创建时默认umask值,这两个文件中的值必须保持一致。
4.特殊权限
(1):sticky ##粘制位
作用:只针对目录生效,当一个目录具有sticky权限时,此目录中的文件只能被所有者删除
chmod o+t dir
chmod 1xxx dir
(2):sgid ##强制位
作用: 文件:如果文件具有sgid ,那么任何人执行该文件产生的进程都属于该文件的所有组 (只针对二进制可执行文件)
目录:如果目录具有sgid,那么任何人在此目录中建立的文件都属于该目录的所有组
chmod g+s dir|file .
chmod 2xxx dir|file
(3):suid ##冒险位
作用: 文件:如果文件suid,那么任何人执行该文件产生的进程都属有该文件的用户
chmod u+s file
chmod 4xxx file
5:文件访问控制列表acl
acl能干什么:简单来说,就是让特定的用户对特定的文件拥有特定的权限
-rw-rw-r–+ 1 root root…
“+”符号表示此文件acl列表已开启
如何对acl列表进行操作?
getfacl file 查看file文件的acl列表(前提时file文件已开启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列表
其中mask表示能授予用户或用户组的最大权限,在开启acl列表后,mask值会随着chmod命令的执行而改变,虽然授予了权限,但生效的最大范围仅为mask的权限值,所以需要将改变后的mask值改回来,用此命令:
setfacl -m m:rwx file ##将file文件acl列表的mask改为rwx。
acl的默认权限设定:
需要注意的是,acl的默认权限只针对目录设定,且只对设定完成后新建的文件或目录生效,已经存在的文件或目录不会生效
setfacl -m d:u:student:rwx dir ##建立默认权限
setfacl -k dir ##删除默认权限