Linux文件权限详解

来源:互联网 发布:远程软件局域网 编辑:程序博客网 时间:2024/06/06 04:34

三种访问方式限制访问权限:

  1. 只允许用户自己访问;允许一个预先指定的用户组中的用户访问;

  2. 允许系统中的任何用户访问;

  3. 用户能够控制一个给定的文件或目录的访问程度。

一个文件或者目录可能有读、写及执行权限。当创建一个文件时,系统会自动赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件。文件所有者可以将这些权限改变为任何他想指定的权限。一个文件也许只有读权限,禁止任何修改。文件也可能只有执行权限,允许它像一个程序一样执行。

三种不同的用户类型能够访问一个目录或者文件:所有着、用户组或其他用户。所有者就是创建文件的用户,用户是所有用户所创建的文件的所有者,用户可以允许所在的用户组能访问用户的文件。通常,用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。最后,用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是other用户类。

每一个用户都有它自身的读、写和执行权限。第一套权限控制访问自己的文件权限,即所有者权限。第二套权限控制用户组访问其中一个用户的文件的权限。第三套权限控制其他所有用户访问一个用户的文件的权限,这三套权限赋予用户不同类型(即所有者、用户组和其他用户)的读、写及执行权限就构成了一个有9种类型的权限组。

一.查看文件或目录的权限

我们可以用-l参数的ls命令显示文件的详细信息,其中包括权限。

当执行ls -lls -al命令后显示的结果中,第2~10个字符是用来表示权限。第一个字符一般用来区分文件和目录:

  • ” d”:表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件
  • ” -”:表示这是一个普通的文件

二.下面详细介绍一下权限的种类和设置权限的方法。

1.权限的种类:

第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。这三个一组共9个字符,代表的意义如下:

  • “r”(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权。
  • “w”(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
  • “x”(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
  • “-“:表示不具有该项权限。

下面举例说明:

  • “-rwx——”: 文件所有者对文件具有读取、写入和执行的权限。
  • “-rwxr―r–”: 文件所有者具有读、写与执行的权限,其他用户则具有读取的权限。
  • “-rw-rw-r-x”: 文件所有者与同组用户对文件具有读写的权限,而其他用户仅具有读取和执行的权限。
  • “drwx–x–x”: 目录所有者具有读写与进入目录的权限,其他用户近能进入该目录,却无法读取任何数据。

每个用户都拥有自己的专属目录,通常集中放置在/home目录下,这些专属目录的默认权限为rwx——:

表示目录所有者本身具有所有权限,其他用户无法进入该目录。执行mkdir命令所创建的目录,其默认权限为rwxr-xr-x,用户可以根据需要修改目录的权限。

2.使用文件管理器来改变文件或目录的权限

如果用户要改变一个文件目录的权限,右击要改变权限的文件或者目录,在弹出的快捷菜单中选择“属性”,系统将打开属性对话框

在“属性”对话框中,单击“权限”标签,就会打开“权限”选项卡。

在这里你可以修改文件或者目录的所有者、组群和其他用户的权限,而且可以设置特殊权

对于特殊权限,最好不要设置,不然会带来很严重的安全问题。

3.使用chmod和数字改变文件或目录的访问权限

文件和目录的权限表示,是用rwx这三个字符来代表所有者、用户组和其他用户的权限。有时候,字符似乎过于麻烦,因此还有另外一种方法是以数字来表示权限,而且仅需三个数字。

r: 对应数值4w: 对应数值2x:对应数值1-:对应数值0

数字设定的关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:111 101 100。再将其每三位转换成为一个十进制数,就是754。

例如,我们想让a.txt这个文件的权限为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:

# chmod 664 a.txt

假如想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-r表示启动递归处理。

3.使用命令chown改变目录或文件的所有权

文件与目录不仅可以改变权限,其所有权及所属用户组也能修改,和设置权限类似,用户可以通过图形界面来设置,或执行chown命令来修改。

将文件所有权转移到root用户中:# chown root a.txt

改变所属群组:# chown :users a.txt

要修改目录的权限,使用- r参数就可以了,方法和前面一样。

0 0
原创粉丝点击