文件或目录权限chmod、更改所有者和所属组chown

1、文件或目录权限chmod

前面说到 ls 命令的时候,有个 ls -l 的用法,见下图

112828_oR1d_3867265.png

这个命令可以查看文件的详细信息,具体含义详见下图,

112833_kgE4_3867265.png

 

先来回顾一下文件类型:

d 表示目录

- 表示普通文件或是二进制文件

c 表示字符串设备文件

l 表示软链接文件

b 表示块设备文件

s 表示 socket 文件

第一列中除了第一个字符表示文件的类型之外,后面的九位表示文件的权限,有三个属性:是否可读(read,可读为r,不可读为-),是否可写(write,可写为w,不可写为-),是否可执行(可执行为x,不可执行为-)。

①权限的前三位 表示文件所有者的权限,rw-为可读可写不可执行

②权限的中间三位 表示文件所属用户组的权限,r--为只读

③权限的后三位 表示其他用户的权限,即除了文件所有者和文件所属组之外的用户权限。r--为只读

权限还可以用数字表示,r=4,w=2,x=1,例如: rwx=7,rw-=6;--x=1;rw-r--r--=644;rw-r-xr-x=655。

 

现在搞清楚了权限的表达方式,来介绍一个命令 chmod ,它是 change mode 的缩写,意思为更改权限。

做个实验,我们把 2.txt 这个文件更改一下权限,为所有者读写执行,所属组和其他用户全部都没有权限,这个权限就表达为 rwx------=700,现在输入命令 chmod 700 2.txt ,回车,即可设置成功,然后用命令 ls -l 2.txt ,见下图,

112842_Qou9_3867265.png

以上就是 chmod 这个命令对权限更改的用法。

接着再来说一下,权限位后面的那一点 “.”,这个点不是每个文件都有的,这个“.”意味着这个文件受制于 selinux ,如果 selinux 开启了,创建的文件或是创建的目录第一列的最后一位会有一点,

112852_APj8_3867265.png

如果把 selinux 关闭,输入命令 getenforce 查看 selinux 是否关闭,回车,见下图,

112855_Dejy_3867265.png

命令 setenforce 0 是临时关闭 selinux 。彻底关闭的话,需要更改配置文件,输入命令 vi /etc/selinux/config ,这次先不更改,查看下图,

114339_HwFg_3867265.png

默认 SELINUX=enforcing ,enforcing 表示开启,permissive 表示警告, disabled 表示关闭。按字母“:q”退出。

更改配置文件并重启,接下来,我们创建一个新的文件,再用 ls -l 命令查看就不会有一个点了。这个做个了解就可以了。

 

关于 chmod 的用法,还有一个选项 -R ,

举个例子,见下图,

114348_PdS4_3867265.png

用 cd 命令进入目录 /tmp/ ,用 ls -l 命令查看这个目录,再用命令 ls -l 进入目录 lys2 ,可以看到 1.txt 文件,这个文件的权限是 rw-r--r-- ,即 744 ,我们更改一下 1.txt 这个文件的权限,输入命令 chmod 777 lys2 ,回车,再用命令 ls -l lys2 和 ls -ld lys2 做个比较,见下图 ,

114417_t5bG_3867265.png

可以看出目录 lys2 下的文件 1.txt 的权限并没有变化。由此可见, chmod 这个命令对文件也好,对目录也好,它操作生效的仅仅是目录本身,如果想把目录下面的子目录和子文件,全部一次性的批量的更改权限的话,这个时候就用到 -R 这个命令了,输入命令 chmod -R 770 lys2 ,见下图,

114405_tQM0_3867265.png

可以看出,lys2 目录和 1.txt 文件的权限都变成 rwxrwx--- , 770 了。

 

chmod 命令还有一种更简单直观的用法,见下图,

114414_VDLK_3867265.png

114418_xsc1_3867265.png

其中, u=rwx ,即 user 所有者用户的权限。g=r ,即 group 所属组用户的权限。o=r ,即 other 其他用户的权限。上面的命令中,- 不显示出来,直接略过,并且把 - 写上去的命令也是不对的。上图中的这个命令写法比较的繁琐,建议还是用数字表示。

 

chmod 命令还有一种用法,见下图,

114426_L9ZP_3867265.png

其中,a+x 中的 a 表示 all 所有的用户,+ 表示加上权限,x 表示可执行权限。命令执行完毕之后,用 ls -l 命令查看,可以发现,所有者、所属组和其他用户的权限里都有 x 这个可执行权限。而 a-x 这个命令就是,所有的用户减去 x 这个可执行权限,用命令 ls -l 查看,可以发现所有的用户权限都没有了 x 这个可执行权限。 

a 是针对所有用户权限的命令,当然也可以只针对单个用户权限的命令,把 a 换成 u 、 g 、o 就是更改相对应用户的权限。见下图,

114432_mbNx_3867265.png

 

以上就是 chmod 命令的用法,总结:

①chmod + 数字权限表达方式 + 文件 ,更改文件的用户权限;

②chmod + 数字权限表达方式 + 目录 ,仅更改目录的用户权限,没有更改目录下的子目录和子文件权限;

③chmod + -R + 数字权限表达方式 + 目录,批量更改目录和目录下的子目录和子文件权限;

④chmod + u=rwx,g=rwx,o=rwx + 目录,u,g,o中的权限自己定义,并非全部写 rwx ,仅更改目录的用户权限,没有更改目录下的子目录和子文件权限;

⑤chmod + (a/u/g/o)+(+/-)+(r/w/x/-)+ 文件/目录,增加或去掉相关用户的相关权限。

 

2、更改所有者和所属组chown

(1)、命令 chown,它是 change owner 的缩写,意思为更改所有者。但是她不仅仅可以更改文件的所有者,还能更改文件的所属组。

先来看看系统的用户有哪些,输入命令 cat /etc/passwd ,回车,见下图,

114703_DP17_3867265.png

上图中的绝大多数用户都是系统自带的,不用去管。后来我们创建了两个用户,分别是 lys 和 user1 ,也就是说,现在有两个普通用户我们是可以用来做实验的。

现在改一下 /tmp/ 目录下面的 yum.log 的所有者,见下图,

114711_xk2v_3867265.png

114717_MwSg_3867265.png

 上图中,!ls 为上一次的 ls 命令。输入命令 chown lys /tmp/yum.log ,回车,可以看到文件的所有者由 root 变为 lys 。

 

(2)、命令 chgrp ,它是 change group 的缩写,意思为更改所属组。现在更改文件 yum.log 的所属组,输入命令 chgrp user1 /tmp/yum.log ,见下图,

114726_xFCQ_3867265.png

更改完成,用命令 !ls ,可以看到文件的所属组由 root 变为 user1 。

以上就是命令 chown 和 chgrp 用法,至于所有者和所属组,后面会讲到,这边就掌握这两个命令的用法即可。

 

(3)、命令 chown 同时更改文件的所有者和所属组,见下图,

114732_w7db_3867265.png

输入命令 chown user1:lys /tmp/yum.log ,然后用 !$ 查看,可以看到文件的所有者变为 user1 ,所属组变为 root 。有了这个命令之后, chgrp 命令就不那么常用了,但是也要知道有这个命令。

 

(4)、命令 chown 只更改文件的所属组,见下图,

114739_9tTE_3867265.png

输入命令 chown :root /tmp/yum.log ,回车,用 !ls 查看,可以看到所属组由 lys 变为 root 。

 

(5)、命令 chown -R ,同命令 chmod -R 的用法一样,见下图,

114744_LNZd_3867265.png

最上面的命令,按了两下“Tab”键,用来查看 lys 开头的目录。输入命令 chown -R user1:lys /tmp/lys2 ,回车,用 ls -l /tmp/lys2/ 查看,发现 lys2 目录下面的文件 1.txt 更改了所有者和所属组。用 ls -ld /tmp/lys2 查看,lys2 目录也更改了所有者和所属组。说明 -R 用法就是批量的更改目录及目录下面的子目录和子文件的所有者和所属组。

 

总结:

①chown + 用户名 + /目录/文件,更改文件的所有者;

②chgrp + 用户名 + /目录/文件,更改文件的所属组;

③chown + 用户名1:用户名2 + /目录/目录,更改文件的所有者和所属组;

④chown + :用户名 + /目录/文件,更改文件的所属组;

⑤chown + -R + 用户名1:用户名2 + /目录/目录,批量更改目录及目录下面的子目录和子文件的所有者和所属组。

 

转载于:https://my.oschina.net/u/3867265/blog/1825101

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值