文件的属性有 Linux 文件的基本属性是什么?

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

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

[root@www /]# ls -l
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……

例子中bin文件的第一个属性用“d”表示,“d”表示该文件在Linux中为目录文件。

在Linux中,第一个字符代表该文件是目录、文件、链接文件等。

后面的字符以三个为一组,都是“rwx”三个参数的组合。其中[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute)。需要注意的是,这三个权限的位置不会变,如果没有权限,就会出现减号[-]。

每个文件的属性由左侧第一部分的10个字符决定(如下图所示)。

从左到右,分别用数字0~9表示。

位 0 决定文件类型,位 1-3 决定所有者(文件的所有者)对文件的权限。

第 4-6 位决定了所属组(与所有者同组的用户)对文件的权限,第 7-9 位决定了其他用户对文件的权限。第 1、4、7 位表示读权限,如果用“r”字符表示,则有读权限,如果用“-”字符表示,则无读权限。

第2、5、8位表示写权限,如果用“w”字符表示,则有写权限,如果用“-”字符表示,则没有写权限。第3、6、9位表示可执行权限,如果用“x”字符表示,则有执行权限,如果用“-”字符表示,则没有执行权限。

Linux 文件所有者和组

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root root 4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21 2014 mysql
……

对于一个文件来说,它有一个特定的所有者,即拥有该文件所有权的用户。

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

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

因此Linux系统根据文件所有者、与文件所有者同组的用户、其他用户定义了不同的文件访问权限。

上面例子中,mysql文件是一个目录文件,它的所有者和组都是mysql,所有者有读、写、执行的权限,和所有者同组的其他用户有读、执行的权限,其他用户也有读、执行的权限。

对于root用户来说,文件权限一般对其没有影响。

更改文件属性

1. chgrp:改变文件组

语法:

chgrp [-R] 属组名 文件名

参数选项

2.chown:改变文件所有者,同时可以改变文件组

语法:

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

进入/root目录(~),将install.log的所有者改为bin账户:

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r-- 1 bin users 68495 Jun 25 08:53 install.log

将 install.log 的所有者和组改回 root:

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root root 68495 Jun 25 08:53 install.log

3. chmod:更改9个文件属性

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

Linux文件有九种基本权限,即所有者/组/其他,每个权限都有各自的读/写/执行权限。

我们再来回顾一下上面刚刚提到的数据:文件权限字符为:“-rwxrwxrwx”,这九个权限是三个一组的!其中,我们可以用数字来表示每一个权限,各个权限的分数对照表如下:

每个身份(owner/group/others)的三个权限(r/w/x)的分数需要累计,例如当权限为:[-rwxrwx—]时文件的属性有,分数为:

所以当我们稍后更改权限时,该文件的权限编号将为770!更改权限的chmod命令的语法如下:

 chmod [-R] xyz 文件或目录

选项和参数:

例如想开启.bashrc文件的所有权限,命令如下:

[root@www ~]# ls -al .bashrc
-rw-r--r-- 1 root root 395 Jul 4 11:45 .bashrc
[root@www ~]# chmod 777 .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx 1 root root 395 Jul 4 11:45 .bashrc

如果我们想将权限改为 -rwxr-xr– 怎么办?那么权限分数就变成了 [4+2+1][4+0+1][4+0+0]=754。

符号类型更改文件权限

还有一种更改权限的方法,从前面的介绍我们可以发现,权限基本上有九种:

那么我们就可以用u,g,o来分别表示三个身份的权限啦!

另外a代表all,也就是所有身份,读写权限可以写成r,w,x,可以参见下表:

奇莫杜

a+(连接)

-(已移除)

=(设置)r

x 文件或目录

如果我们需要设置文件权限为-rwxr-xr–,可以使用chmod u=rwx,g=rx,o=r filename来设置:

# touch test1 // 创建 test1 文件
# ls -al test1 // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1

如果您想删除权限而不更改其他现有权限,该怎么办?例如,如果您想删除每个人的可执行权限文件的属性有,那么:

# chmod a-x test1
# ls -al test1
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1

© 版权声明
THE END
喜欢就支持一下吧
点赞35赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容