文件基本权限

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。

为了保护系统的安全性,Linux 系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在 Linux 中我们通常使用以下两个命令来修改文件或目录的所属用户与权限:

  • chown (change ownerp) : 修改所属用户与组。

  • chmod (change mode) : 修改用户的权限。

下图中通过 chown 来授权用户,通过 chmod 为用户设置可以开门的权限。

文件权限的作用

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

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

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

查看/dev/sda /dev/cdrom /etc/passwd /dev/tty0三个设备文件的类型。

权限说明

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

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

363003_1227493859FdXT

从左至右用 0-9 这些数字来表示。

0 位确定文件类型,第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。

其中,第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;

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

常见的几种文件权限组成

(1)- rwx --- ---:文件所有者对文件具有读、写和执行的权限。

(2)- rwx r-- r--:文件所有者具有读、写和执行的权限,同组用户及其他用户则具有读取的权限。

(3)- rw- rw- r-x:文件所有者与同组用户对文件具有读和写的权限,而其他用户仅具有读取和执行的权限。

(4)drwx--x--x:目录所有者具有读、写和进入目录的权限,而其他用户仅能进入该目录,却无法读取任何数据。

(5)drwx------:除目录所有者具有完整的权限外,其他用户对该目录没有任何权限。

更改文件的属主和属组

1.改变文件的所属关系用到chown命令和chgrp命令(只有管理员可以使用该命令)

chown命令:用于改变文件或目录的属主。

chgrp命令:用于改变文件或目录的默认属组。

如果要对目录进行操作,加参数 -R相当于递归操作,将基于目录下的所有文件或目录进行同一操作。

2.chown命令使用语法

命令使用格式:chown 用户名:组名 文件名。

例如,把文件的属主和属组改为mysql用户和mysql组

3.仅改变文件或目录的属主

命令使用格式:chown 用户名 文件名。

比如:把文件的属主改为admin用户。

4.仅改变文件或目录的属组

命令使用格式:chown :组名 文件名。

例如,把文件的属组改为miao组(只修改属组,不用指定属主)。

5.自动继承这个用户所有的组(不用指定属组)

命令使用格式:chown 用户名: 文件名。

6.chgrp命令,仅用于修改文件或目录的属组

命令使用格式:chgrp 组名 文件名。

例如,把文件的属组改为admin组。

选项-R:递归,目录下的所有内容都更改,不使用该选项则只修改目录。

文件权限管理

修改权限用的命令:chmod。

命令使用格式:chmod [操作对象] [操作符] [赋予什么权限] 文件名。

作用:修改文件、目录的权限。

1.操作对象

u:用户(user),表示文件或目录的所有者。

g:用户组(group),表示文件或目录所属的用户组。

o:其他用户(others)。a:所有用户(all)。

2.操作符

+:添加权限。

:取消权限。

=:直接给定一个权限。

3.权限:

r w x权限组合如表所示:

用chmod命令修改权限:

使用八进制值(0~7)表示权限,如表所示

权限的二进制、八进制对照如图所示:

修改文件权限:

权限对文件和目录的影响如下。

有3种权限可以应用:读、写和执行,这些权限对访问文件和目录的影响如表所示。

文件权限补码

创建文件的默认权限是644,这个默认权限是怎么来的?

文件默认权限=666 ,目录默认权限=777。

一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。

最后更新于

这有帮助吗?