系统小窝欢迎您

当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux系统文件权限和访问模式介绍

时间:2021-04-10    来源:般砖的    人气:

Linux系统不同文件之中,有不同的权限。这是为了文件存储的时候的安全考虑,也是为了让Linux各个模块间更加顺畅的访问和调度。本文为大家带来Linux系统文件权限和访问模式介绍。

权限

所有者权限 u :文件所有者能够进行的操作

组权限 g :文件所属用户组能够进行的操作

外部权限 o :(其他权限):其他用户可以进行的操作。

查看文件权限

使用 ls -l 命令可以查看与文件权限相关的信息:

$ls -l /home/amrood

-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile

drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir

第一列就包含了文件或目录的权限。

第一列的字符可以分为三组,每一组有三个,每个字符都代表不同的权限,分别为读取(r)、写入(w)和执行(x):

第一组字符(2-4)表示文件所有者的权限,-rwxr-xr-- 表示所有者拥有读取(r)、写入(w)和执行(x)的权限。

第二组字符(5-7)表示文件所属用户组的权限,-rwxr-xr-- 表示该组拥有读取(r)和执行(x)的权限,但没有写入权限。

第三组字符(8-10)表示所有其他用户的权限,rwxr-xr-- 表示其他用户只能读取(r)文件。

文件访问模式

文件权限是Linux系统的第一道安全防线,基本的权限有读取(r)、写入(w)和执行(x):

读取r:用户能够读取文件信息,查看文件内容。

写入w:用户可以编辑文件,可以向文件写入内容,也可以删除文件内容。

执行x:用户可以将文件作为程序来运行。

目录访问模式

目录的访问模式和文件类似,但是稍有不同:

读取r:用户可以查看目录中的文件

写入w:用户可以在当前目录中删除文件或创建文件

执行x:执行权限赋予用户遍历目录的权利,例如执行 cd 和 ls 命令。

改变权限

可以使用 chmod (change mode) 命令来改变文件或目录的访问权限,权限可以使用符号或数字来表示。

使用符号表示权限

对于初学者来说最简单的就是使用符号来改变文件或目录的权限,你可以增加(+)和删除(-)权限,也可以指定特定权限。

符号 说明

+ 为文件或目录增加权限

- 删除文件或目录的权限

= 设置指定的权限

下面的例子将会修改 testfile 文件的权限:

$ls -l testfile

-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile

$chmod o+wx testfile

$ls -l testfile

-rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile

$chmod u-x testfile

$ls -l testfile

-rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile

$chmod g=rx testfile

$ls -l testfile

-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile

也可以同时使用多个符号:

$chmod o+wx,u-x,g=rx testfile

$ls -l testfile

-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile

使用数字表示权限

除了符号,也可以使用八进制数字来指定具体权限,如下表所示:

数字 说明 权限

0 没有任何权限 ---

1 执行权限 --x

2 写入权限 -w-

3 执行权限和写入权限:1 (执行) + 2 (写入) = 3 -wx

4 读取权限 r--

5 读取和执行权限:4 (读取) + 1 (执行) = 5 r-x

6 读取和写入权限:4 (读取) + 2 (写入) = 6 rw-

7 所有权限: 4 (读取) + 2 (写入) + 1 (执行) = 7 rwx

下面的例子,首先使用 ls -1 命令查看 testfile 文件的权限,然后使用 chmod 命令更改权限:

$ls -l testfile

-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile

$ chmod 755 testfile

$ls -l testfile

-rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile

$chmod 743 testfile

$ls -l testfile

-rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile

$chmod 043 testfile

$ls -l testfile

----r---wx 1 amrood users 1024 Nov 2 00:10 testfile

更改所有者和用户组

在Linux中,每添加一个新用户,就会为它分配一个用户ID和群组ID,上面提到的文件权限也是基于用户和群组来分配的。

有两个命令可以改变文件的所有者或群组:

chown:chown 命令是;change owner;的缩写,用来改变文件的所有者。

chgrp:chgrp 命令是;change group;的缩写,用来改变文件所在的群组。

chown 命令用来更改文件所有者,其语法如下:

$ chown user filelist

user 可以是用户名或用户ID,例如

$ chown amrood testfile

$

将 testfile 文件的所有者改为 amrood。

注意:超级用户 root 可以不受限制的更改文件的所有者和用户组,但是普通用户只能更改所有者是自己的文件或目录。

chgrp 命令用来改变文件所属群组,其语法为:

$ chgrp group filelist

group可以是群组名或群组ID,例如

$ chgrp special testfile

$

将文件 testfile 的群组改为 special。

SUID和SGID位

在Linux中,一些程序需要特殊权限才能完成用户指定的操作。

例如,用户的密码保存在 /etc/shadow 文件中,出于安全考虑,一般用户没有读取和写入的权限。但是当我们使用 passwd 命令来更改密码时,需要对 /etc/shadow 文件有写入权限。这就意味着,passwd 程序必须要给我们一些特殊权限,才可以向 /etc/shadow 文件写入内容。

Linux 通过给程序设置SUID(Set User ID)和SGID(Set Group ID)位来赋予普通用户特殊权限。当我们运行一个带有SUID位的程序时,就会继承该程序所有者的权限;如果程序不带SUID位,则会根据程序使用者的权限来运行。

SGID也是一样。一般情况下程序会根据你的组权限来运行,但是给程序设置SGID后,就会根据程序所在组的组权限运行。

如果程序设置了SUID位,就会在表示文件所有者可执行权限的位置上出现lsquo;srsquo;字母;同样,如果设置了SGID,就会在表示文件群组可执行权限的位置上出现lsquo;srsquo;字母。如下所示:

$ ls -l /usr/bin/passwd

-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*

$

上面第一列第四个字符不是lsquo;xrsquo;或lsquo;-rsquo;,而是lsquo;srsquo;,说明 /usr/bin/passwd 文件设置了SUID位,这时普通用户会以root用户的权限来执行passwd程序。

注意:小写字母lsquo;srsquo;说明文件所有者有执行权限(x),大写字母lsquo;Srsquo;说明程序所有者没有执行权限(x)。

如果在表示群组权限的位置上出现SGID位,那么也仅有三类用户可以删除该目录下的文件:目录所有者、文件所有者、超级用户 root。

为一个目录设置SUID和SGID位可以使用下面的命令:

$ chmod ug+s dirname

$ ls -l

drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname

$

以上就是Linux系统文件权限和访问模式的解析了,只要充分了解了Linux系统文件权限才能了解Linux文件之间的访问模式。

相关文章

  • 备份和恢复Linux文件权限的方法

    备份和恢复Linux文件权限的方法

    在Linux系统的使用过程中,有时候我们会通过一些工具备份或恢复文件权限来进行文件日常管理。其实备份和恢复文件权限使用访问控制列表并不难,下面...
    2021-04-09 03.04.54
  • Linux下如何利用访问控制列表来限制用户权限

    Linux下如何利用访问控制列表来限制用户权限

    Linux下的访问控制列表(ACL)主要用来控制用户的权限,可以做到不同用户对同一文件有不同的权限,那么具体要如何操作呢?下面小编就教你如何在Linu...
    2021-04-09 07.04.14
  • Linux文件默认权限与隐藏权限解析

    Linux文件默认权限与隐藏权限解析

    Linux系统文件包括文件夹都会有一些权限,这些权限包括默认权限和隐藏权限,本文就来解析一下Linux系统文件的默认权限和隐藏权限。...
    2021-04-10 04.04.58

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。