chgrp, chown, chmod命令

改变文件属性和权限

一个文件有其属性和权限, 这对于文件的安全尤为重要。 但是有时我们会发生这样的事, 比如说:我们以普通用户登录,但是我们想查看/root目录下的文件, 我们会发现执行ls /root命令会显示ls: 无法打开目录'/root': 权限不够的字样。返回的信息也说了我们为何打不开/root目录, 是因为权限不够。
上面那个只是拿/root目录实验, 在实际情况中, /root目录一般是不会让普通目录访问的。我们还可能会遇到权限的其他问题, 那么有那些命令可以更改文件的权限呢?
这就是我们接下来要学习的更改权限的命令:chgrp, chown, chmod

chown

我们知道Linux中有用户和用户组的概念, 即一个文件属于某一用户, 这个用户又属于某个用户组。因此Linux提供了两种命令分别改变文件所有者和用户组用户的权限。chown改变文件的所有者,chgrp改变文件的所属用户组。还有一个命令chmod改变文件的权限。我们先来介绍改变文件的所有者命令chown
chownchange owner的缩写形式,用于改变文件所有者。我们可以使用如下的方式:

chown [-R] 用户名 文件或目录    

demo.txt文件的所有者更改为helloyong

chown helloyong demo.txt //改变demo.txt文件所有者为helloyong

如果你想更改的是一个目录, 且你想让目录下所有的文件权限也随之改变, 那么可以在chown下添加参数-R

chown -R helloyong /demo //改变目录/demo及其子文件的所有者为helloyong

-R的参数表示为递归持续更改, 即连同下面的子目录及文件
我们可以使用这个命令同时改变文件的用户组, 只需在用户和用户组之间加上冒号:即可, 如用户:用户组

chown helloyong:root demo.txt   //改变demo.txt的所有者为helloyong, 用户组为root

:也可以换成点. , 但是一般建议为冒号:
也可以只改变用户组:

chown demo.txt :root    //改变demo.txt的用户组为root, 只要不写用户即可

改完后, 可以使用ls -l 文件名的方式查看权限的变化.如:

ls -l demo.txt

chgrp

既然chown命令是change owner, 那么chgrp命令就是change group, 即改变用户组.用法为:

chgrp [-R] 用户组 文件名

[-R]的作用和上面一样.
我们更改demo.txt的所属用户组

chgrp root demo.txt //更改demo.txt的用户组为root用户组

chmod

这个命令更改文件的权限, 我们知道权限有三种, 文件所有者权限, 用户组权限, 其他用户权限. 每种权限分别有r, w, x(对应为读, 写, 执行)的权限. 在Linux中的文件一文提到, 这三个参数可以用数字代替. r对应4, w对应2, x对应1.
每中权限累加为一个数字, 三种权限就有三个数字.

chmod [-R] xyz 文件或目录    //x,y,z分别表示所有者, 用户组, 其他用户的权限

我们砸一次拿demo.txt举例:

chmod 745 demo.txt  //7=4+2+1, 4=4, 5=4+1

文件所有者权限为7, 即4+2+1, 我们可以退出所有者权限为rwx
用户组权限为4, 即其有权限为r, r--
其他用户权限为5, 那么权限为r-x
我们还有一种形式设置文件权限.

chmod u=rwx,g+x,o-wx demo.txt  //对demo.txt设置权限

上面的例子中, 设置了用户(u)的权限为rwx, 用户组(g)的权限增加x权限, 除去其他用户(o)的wx权限. 上面个的形式可以用下面的表格来代替.

命令 对象 动作 权限 目标
chmod u, g, o, a +, -, = r, w, x 文件或目录

u: user, 表示文件所有者权限
g: group, 表示用户组权限
o: other, 表示其他用户权限
a: all, 表示以上所有的权限
+: 增加权限
-: 减少权限
=: 设置权限

例如:

//对于demo.txt, 文件所有者增加执行权限x, 设置用户组的权限为rw
chmod u+x, g=rw demo.txt

//对所有用户增加执行权限
chmod a+x demo.txt

猜你喜欢

转载自blog.csdn.net/helloyongwei/article/details/80265886