Linux 入门详解 09

88 阅读3分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

变更权限

1、更改文件属组(chgrp)

chgrp [-R] 属组名文件名
  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2、更改文件所属用户以及文件属组(chown)

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
  • -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

3、更改文件属性(chmod)

ls -al

Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。

首先第一个字符用来标识是文件还是目录,这里只列出两个有代表性的:

  • 当为[ - ]则代表文件
  • 当为[ d ]则是目录

Linux文件属性有两种设置方法,一种是数字,一种是符号

数字类型改变文件权限

假设一个文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

  • r:4
  • w:2
  • x:1

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:

  • owner = rwx = 4+2+1 = 7
  • group = rwx = 4+2+1 = 7
  • others= --- = 0+0+0 = 0
chmod [-R] xyz 文件或目录
  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,亦即连同此目录下的所有文件都会变更

符号类型改变文件权限

Linux有user 、group 、others三种身份。用u, g, o来代表三种身份的权限。

参数表示含义
uuser即文件或目录的所有者
ggroup即与文件属主有相同组ID的所有用户
oothers表示“其他用户”
aall表示“所有用户”系统默认值
例子等价于含义
-rwx------700-:文件, u=rwx(读/写/执行), g=---(无权限), o=---(无权限)
-rw-r--r--644-:文件, u=rw-(读/写), g=r--(读), o=r-- (读)
drwxrw-rw-766d:目录,u=rwx(读/写/执行), g=rw-(读/写), o=rw- (读/写)
drwxrwxrwx777d:文目录,u=rwx(读/写/执行), g=rwx(读/写/执行), o=rwx(读/写/执行)
其中『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。

操作符号:

  • +添加某个权限

例如给所有人添加可写入权限:

chmod a+w hello.txt

【a+w】: a 代表所有人(all),+ 代表添加权限,w 代表可以写入。

  • -取消某个权限 例如给所有者(u)、所属组(g)添加可执行权限,但是其他用户(o)不可拥有执行权限
chmod ug+x,o-x 1.txt 2.txt  

【ug+x,o-x】:ug 代表所有者(u)、所属组(g),+ 代表添加权限,- 代表取消权限,x 代表可执行。

拓展阅读

上文提到各权限的分数对照表:

  • r:4
  • w:2
  • x:1

其原理是二进制数字表示:

pic

每个文件有三组固定的权限,分别对应拥有者,所属用户组,其他用户,记住这个顺序是固定的。文件的读写执行对应字母 rwx,以二进制表示就是 111,用十进制表示就是 7