Linux 文件基本属性

一 概述

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,如:

[admin@localhost /]$ ls -l
总用量 24
dr-xr-xr-x.   4 root root 4096 3月  11 23:49 boot
drwxr-xr-x.  20 root root 3240 3月  12 10:04 dev
drwxr-xr-x. 133 root root 8192 3月  12 10:04 etc
…

示例中,boot文件的第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。具体如下:

  • d:目录
  • -:文件
  • l:链接文档(link)
  • b:装置文件里面的可供储存的接口设备(可随机存取装置)
  • c:装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

每个文件的属性由左边第一部分的10个字符来确定,如下图:

363003_1227493859FdXT

二 Linux文件属主和属组

[admin@localhost ~]$ ll
总用量 0
drwxr-xr-x. 2 admin admin 6 3月  12 00:01 公共
drwxr-xr-x. 2 admin admin 6 3月  12 00:01 模板
drwxr-xr-x. 2 admin admin 6 3月  12 00:01 视频
…

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

文件所有者以外的用户又可以分为文件所有者的同组用户其他用户

因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

以上示例中,视频文件是一个目录文件,属主和属组都为 admin,属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限。

对于 root 用户来说,一般情况下,文件的权限对其不起作用。

2.1 更改文件属性

chgrp:更改文件属组

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

chown:更改文件属主,也可以同时更改文件属组

# 语法格式
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

示例:进入 /root 目录(~)将anaconda-ks.cfg 的拥有者改为admin,再修改回来

[root@localhost ~]# cd ~
[root@localhost ~]# chown admin anaconda-ks.cfg 
[root@localhost ~]# ll
-rw-------. 1 admin root 1954 3月  11 23:48 anaconda-ks.cfg
[root@localhost ~]# chown root anaconda-ks.cfg 
[root@localhost ~]# ll
-rw-------. 1 root root 1954 3月  11 23:48 anaconda-ks.cfg

chmod:更改文件权限

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

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

a) 字母法

# 语法格式
chmod u/g/o/a +/-/= rwx 文件
[ u/g/o/a ]
含义
u
user 表示该文件的所有者
g
group 表示与该文件的所有者属于同一组( group )者,即用户组
o
other 表示其他以外的人
a
all 表示这三者皆是(可省略)
[ +-= ]
含义
+
增加权限
-
撤销权限
=
设定权限
rwx
含义
r
read 表示可读取,对于一个目录,如果没有r权限,那么就意味着不能通过ls查看这个目录的内容。
w
write 表示可写入,对于一个目录,如果没有w权限,那么就意味着不能在目录下创建新的文件。
x
excute 表示可执行,对于一个目录,如果没有x权限,那么就意味着不能通过cd进入这个目录。

示例:

chmod o+w file:给文件file的其它用户增加写权限;
chmod u-r file:给文件file的拥有者减去读的权限;
chmod g=x file:设置文件file的同组用户的权限为可执行;
chmod u=rw,g=x,o=x file:同时给拥有者、同组者及其他人设置权限。

b) 数字法

先复习一下刚刚上面提到的数据:文件的权限字符为:【-rwxrwxrwx】, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:

字母
说明
r
读取权限,数字代号为 "4"
w
写入权限,数字代号为 "2"
x
执行权限,数字代号为 "1"
-
不具任何权限,数字代号为 "0"

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

  • owner = rwx = 4+2+1 = 7
  • group = r-x = 4+0+1 = 5
  • others= r-- = 4+0+0 = 4

所以,通过数字法更改文件属性具体执行语法如下:

chmod [-R] xyz 文件或目录
选项与参数:
xyz : 就是上面提到的数字类型的权限属性,为 rwx 属性数值的相加
-R : 进行递归(recursive)的持续变更,即连同次目录下的所有文件都会变更

示例:

chmod u=7,g=5,o=4 filename就等同于:chmod u=rwx,g=rx,o=r filename 
chmod 751 file:文件所有者具备读、写、执行权限,同组用户具有读、执行权限,其他用户具有执行权限
posted @ 2020-03-12 14:54  Joe1991  阅读(101)  评论(0)    收藏  举报