`

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位,就会在表示文件所有者可执行权限的位置上出现's'字母;同样,如果设置了SGID,就会在表示文件群组可执行权限的位置上出现's'字母。如下所示:
$ ls -l /usr/bin/passwd
-r-sr-xr-x  1   root   bin  19031 Feb 7 13:47  /usr/bin/passwd*
$
上面第一列第四个字符不是'x'或'-',而是's',说明 /usr/bin/passwd 文件设置了SUID位,这时普通用户会以root用户的权限来执行passwd程序。

注意:小写字母's'说明文件所有者有执行权限(x),大写字母'S'说明程序所有者没有执行权限(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操作系统中,文件权限管理是一项至关重要的功能,它确保了系统安全性与数据隐私的维护。不同于Windows系统中较为宽松的权限控制,Linux通过更为严格...希望本文能帮助您更好地理解和运用Linux文件权限管理技巧。

    LINUX文件权限理解

    ### Linux 文件权限理解 #### 一、用户与组群管理 ...总结来说,理解 Linux 文件权限是管理文件访问和保护数据安全的基础。掌握文件类型的识别、权限的设置及修改方法对于高效地使用 Linux 系统至关重要。

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

    文件模式和访问权限是Linux系统中确保数据安全性和隔离性的重要机制。本文将深入探讨这些概念。 首先,Linux中的每个文件都有三个级别的用户身份:文件拥有者、同组用户和所有其他用户。这些用户类别对应于文件权限...

    Linux文件目录的权限和属性实践讲解

    通过对Linux文件目录权限和属性的学习与实践,我们不仅可以更好地管理系统的安全性和稳定性,还能根据不同的应用场景灵活调整文件的访问控制策略。希望本文能够帮助大家更加深入地理解和掌握这些重要的基础知识。

    Linux改变文件或目录的访问权限命令

    `chmod`允许我们通过两种方式来改变权限:符号模式和数字模式。 - **符号模式**:例如`chmod u+x file.txt`,这会为文件的所有者添加执行权限。符号模式中的`u`代表用户(所有者),`g`代表组,`o`代表其他用户,`...

    第5章linux文件权限及设置命令

    总结,理解并熟练掌握Linux文件权限及其设置命令是系统管理员和开发者的基本技能,这关乎到系统的安全性和用户之间的数据隔离。正确配置权限可以保护敏感数据,防止未经授权的访问,同时确保正常操作系统的功能和...

    Linux修改文件及文件夹权限

    #### 修改文件权限:`chmod` `chmod`命令是用于修改文件或目录访问权限的强大工具。它有两种使用方法:文字设定法和数字设定法。 ##### 文字设定法 使用格式:`chmod [who][+|-|=][mode] 文件名` - **操作对象**...

    linux 权限设计练习及答案

    在"课后练习题答案.pdf"中,可能会包含一些具体问题的解答,如如何查看文件权限、如何更改权限、如何创建新文件并设定权限,以及解决因权限问题导致的常见错误等。这些问题的解答有助于巩固理论知识,并提升实际操作...

    Linux文件权限的修改命令

    Linux 文件权限是 Linux 操作系统中一个非常重要的概念,它控制着用户对文件和目录的访问权限。Linux 文件权限的修改命令是指通过使用特定的命令来改变文件或目录的所有权和权限。 1. chown 命令 chown 命令用于...

    信息安全技术:Linux文件权限管理实验.doc

    实验内容详细介绍了Linux文件权限的表示方式,包括字符串表示(如"rwx")和数字表示(如"755")。在Linux中,文件的权限分为三类:属主(user,u)、属组(group,g)和其他用户(other,o)。每个类别都有读(read...

    07_文件访问权限

    在Linux/Unix中,文件权限用九位数字表示,称为“chmod”模式。这九位数字分为三组,每组三位,分别代表所有者、用户组和其他用户的权限。每一位可以是0到7的数字,对应着无权限(0)、读权限(4)、写权限(2)和...

    linux更改文件权限.pdf

    文件权限决定了用户和用户组对文件的访问权限。Linux 中有三种基本权限:读取权限(r)、写入权限(w)和执行权限(x)。在 Linux 中,可以使用三种命令来更改文件权限:chgrp、chown 和 chmod。 一、更改文件用户...

    linux文件操作系统

    1. **创建文件**:利用`open()`函数创建新的文件,指定文件权限和打开模式。 2. **写入文件**:使用`write()`函数将数据写入到已打开的文件中。 3. **读取文件**:通过`read()`函数从文件中读取数据,可以实现数据的...

    Linux下修改文件权限(所有权)

    在Linux操作系统中,文件权限和所有权管理是至关重要的,因为它决定了不同用户对文件和目录的访问和操作能力。本文将详细介绍如何在Linux下修改文件权限和所有权。 首先,理解Linux的权限模型。每个文件都有三个...

    linux下文件操作

    在操作这些文件的过程中,用户可以采取不同的访问模式。比如,'r'表示以只读模式打开,'w'表示以只写模式打开并清空原有内容,'a'表示以追加模式打开。具体使用哪种模式取决于用户的文件操作需求。追加模式特别适合...

    linux下修改文件的权限【转】

    在Linux操作系统中,文件权限是系统管理的核心组成部分,它...了解并熟练掌握Linux文件权限,对于系统的安全性和日常维护至关重要。通过合理设置权限,可以保护数据安全,防止未授权访问,同时确保系统功能的正常运行。

    Linux基础课件文件权限设置chmod命令共9页.pdf

    Linux文件权限系统基于一个三位数字的权限模式,分别代表所有者、用户组和其他用户的权限。每个位可以是0到7,分别对应不同的权限组合: - 0 - 没有任何权限 - 1 - 执行权限 - 2 - 写入权限 - 3 - 写入和执行权限 -...

    Linux教程第4章 文件权限与文件共享.pdf

    在Linux操作系统中,文件权限和共享是安全管理的核心组成部分,确保了数据的安全性和用户访问的合法性。本章将深入探讨这些概念,并提供相关的命令操作指南。 首先,了解Linux的文件访问权限至关重要。在Linux中,...

Global site tag (gtag.js) - Google Analytics