首先我们要了解文件或文件夹所具备的权限。
上图的文件或文件夹,所有拥有的权限如下表:
文件、文件夹 User Group Other
1 rwx rw- r–
1.txt rwx rw- r–
注:
User,即文件或目录的拥有者
Group,即文件或目录的所属群组
Other,除了文件或目录拥有者和所属群组外,其他用户都属于这个范围
r:读取权限
w:写入权限
x:执行权限
-:不具备该项权限
所以,我们结合表得出,1是一个文件夹,User具有读、写、执行的权限;Group具有读、写的权限,不具备执行权限;Other具有读的权限,不具备写、执行权限。
ubuntu是通过chmod命令来修改用户权限的,语法如下:
chmod [-可选参数][<权限范围>+/-/=<权限设置>] 文件/目录
1
chmod的用法分为两种:
修改某类用户的权限
语法如下:
chmod [ u / g / o / a ] [ + / - / = ] [ r / w / x ] file
1
权限范围
u:指的是上文中提到的 “User,即文件或目录的拥有者 ”
g:指的是上文中提到的“”
o:指的是上文中提到的“”
a:指的是 u、g、o (主要的作用:设置它们具有相同的权限)
权限操作
+表示增加权限
-表示取消权限
=表示取消之前的权限,并重新赋予权限
权限代号
r:读取权限,数字代号为 “4”
w:写入权限,数字代号为 “2”
x:执行权限,数字代号为 “1”
-:不具备任何权限,数字代号为 “0”
比如说我想要把文件夹1的权限修改为User具有读写权限,其他用户权限不变
修改之前,权限如下
修改之后,权限如下
代码:
sudo chmod u=+r+w-x 1
1
或者
sudo chmod u=+r+w 1
1
这两段代码效果相同
可以把+理解为添加操作,-理解为去除操作
比如,现在我想使1.txt文件的所有用户具有相同的读写权限。(a = u,g,o )
修改之前:
修改之后:
代码:
sudo chmod a=rw 1.txt
1
或
sudo chmod u=rw,g=rw,o=rw 1.txt
1
同时修改3类用户的权限
语法:
chmod [xyz] file
1
其中x,y,z分别指定User、Group、Other的权限;用三位二进制数表示 ” r , w , x”(注意顺序)三种权限,其中 0 代表没有该权限,1 代表有该权限,如 100 则表示,有 ‘r”权限,无 “w x”权限;再将这个三位的二进制数转为十进制,则是 x (或y,z)的值
0:表示无任何权限
1:表示"x"
2:表示"w"
4:表示"r"
具体表示方法,如下表 :
数字 所拥有的权限
0 无
1 x
2 w
3 wx
4 r
5 rx
6 rw
7 rwx
例如:
sudo chmod 047 1.txt
1
User = 0 :表示无任何权限
Group = 4 :表示拥有“r”权限(仅有r的权限,而五w、x的权限)
Other = 7 :表示拥有“rwx”权限
结果:
” * ” 为通配符,表示对当前所在目录下的所有文件做权限修改操作
sudo chmod 777 *
1
结果:
最后附上可选参数列表
参数 参数说明
-c 当发生改变时报告处理信息
-f 错误信息不输出
-R 处理指定目录及子目录下的所有文件
-v 运行时显示详细处理信息
例如:
sudo chmod -v 764 1.txt
1
结果
————————————————
版权声明:本文为优快云博主「huiwen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/a145127/article/details/82938864