权限限制是针对非root用户的
- root用户是不受权限限制的
1. 查看文件权限的方法
ls -l [文件路径]
- 1.类型:
-
普通文件,d
表示目录文件,b
块特殊文件(设备),c
字符特殊文件(终端),l
符号链接(快捷方式),f
命名管道(进程通信相关),s
套接字文件(进程通信相关); 文件创建之后类型就固定了不可以更改; - 权限字符:
r
:可读;w
:可写;x
:可执行; - 2,3,4 权限前三位: 创建文件的用户对该文件有什么权限
- 5,6,7 权限中间三位: 创建文件的用户的用户组对该文件有什么权限
- 8,9,10 权限后三位: 其他用户对该文件有什么权限
r=4
,w=2
,x=1
- 目录权限的表示方法:
x
可以进入目录;rx
显示目录内的文件名;wx
修改目录内的文件;
例图:
2. 修改权限命令
2.1 chmod 修改文件/目录权限
2.1.1 字符权限操作
chmod [被修改对象][操作符][权限] [文件路径]
[被修改对象]
取值范围(u,g,o,a) u=属主, g=属组, o=其他用户, a=所有用户[操作符]
取值范围(+,-,=) +增加权限,-减少权限,=设置权限[权限]
取值范围(r,w,x) 多个一起设置- 例1:
chmod u+x abcfile
abcfile的属主新增执行权限 - 例2:
chmod u-r abcfile
abcfile的属主减少读取权限 - 例3:
chmod u=wx abcfile
abcfile的属主权限设置为 wx,r就没有了
2.1.2 数字权限设置
chmod [数字权限] [文件路径]
- 实际上权限就是3个3位的二进制数
111
111
111
和rwx rwx rwx
含义一样- 那么我们只需要直接给3个数字就可以代表赋予的权限了
- 例: 我们希望给
afile
文件rw- r-x --x
的权限 - 那么转化为三个二进制数为:
110 101 001
- 即:
6 5 1
- 那么我们只需要执行:
chmod 651 afile
即可!
2.2 chown 更改属主/属组
chown [用户名] [文件路径]
修改文件的属主chown :[用户组名] [文件路径]
修改文件的属组
2.3 chgrp 可以单独更改属组,不常用
chgrp [用户组名] [文件路径]
修改文件的属组
特殊权限
-
suid
用于二进制可执行文件, 执行命令时取得文件属主权限
例:
必须以属主的身份来执行 -
sgid
用于目录,在该目录下创建新的文件和目录,权限自动改为该目录的属组 -
sbit
用于目录,该目录下新建的文件和目录,仅root和自己可以删除
例:/tmp
-
修改特殊权限:
chmod 4xxx /afile
设置suid
权限
chmod 1xxx /afile
设置sbit
权限