`
qm4050
  • 浏览: 78411 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

linux文件的访问权限和文件模式

 
阅读更多

linux文件的访问权限和文件模式

SUID含义:文件的该位被设 置为1,在该文件被执行时,该文件将以所有者的身份运行,也就是说无论谁来执行这个文件,他都有文件所有者的特权,如果所有者是root的话,那么执行人就有超级用户 的特权了,这是该位将变成一个安全漏洞,因此不要轻易设置该位。

SGID含义:运行者将具有文件所有组的权限。

STICKY粘合位: 要求操作系统既是在可执行程序退出后,仍要在内存中保留该程序的映像,这样做是为了节省大型程序的启动时间,但是会占用系统资源,因此设置该位,不如把程序写好。

set uid ;set gid;sticky bit区别

每一个文件有所有者及组编号,set uid ;set gid可以改变用户对文件具有的权限:写和执行.

setuid: 在执行时具有文件所有者的权限.
setgid: 设置目录. 一个目录被标上setgid位,此目录下创建的文件继承该目录的属性.
sticky bit: 该位可以理解为防删除位. 设置sticky bit位后,就算用户对目录具有写权限,但也只能添加文件而不能删除文件。


如何设置:

操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,
1) chmod u+s temp -- 为temp文件加上setuid标志. (setuid 只对文件有效,U=用户)
chmod g+s tempdir -- 为tempdir目录加上setgid标志 (setgid 只对目录有效,g=组名)
chmod o+t temp -- 为temp文件加上sticky标志 (sticky只对文件有效)

2) 采用八进制方式. 这一组八进制数字三位的意义如下,
abc
a - setuid位, 如果该位为1, 则表示设置setuid
b - setgid位, 如果该位为1, 则表示设置setgid
c - sticky位, 如果该位为1, 则表示设置sticky

设置后, 可以用 ls -l 来查看. 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)
如:

rwsrw-r-- 表示有setuid标志 (rwxrw-r--:rwsrw-r--)
rwxrwsrw- 表示有setgid标志 (rwxrwxrw-:rwxrwsrw-)
rwxrw-rwt 表示有sticky标志 (rwxrw-rwx:rwxrw-rwt)

理解文件权限

所谓的文件权限,是指对文件的访问权限,包括对文件的读、写、删除、执行。Linux 是一个多用户操作系统,它允许多个用户同时登录和工作。因此 Linux 将一个文件或目录与一个用户和组联系起来。请看下面的例子:

drwxr-xr-x 5 root root 1024 Sep 13 03:27 Desktop

与文件权限相关联的是第一、第三、第四个域。第三个域是文件的所有者,第四个域是文件的所属组,而第一个域则限制了文件的访问权限。在这个例子中,文件的 所有者是 root,所属的组是 root,文件的访问权限是 drwxr-xr-x。对于文件和目录讲,每个文件和目录都有一组权限标志和它们结合在一起,在上例中就是第一个域中的内容。下面来仔细分析这个域中各个 符号的意义:

该域由 10 个字符组成,可以把它们分为四组,具体含义分别是:

d rwx r-x r-x

文件类型 所有者权限标志 组权限标志 其他用户权限标志

其中:

文件类型:第一个字符。由于 Linux 系统对与设备、目录、文件都当作是文件来处理,因此该字符表明此文件的类型,字符与对应的意义如下表:

文件标志 文件类型 例子

- 普通文件 数据文件、ASCII 纯文本 文件、程序
d 目录 /bin
b 块设备 /dev/hda(第一个 IDE 硬盘)
c 字符设备 /dev/ttyS1(与 DOS 种的串口 2 等同)
s 套接字 /dev/log
p 命名管道 /dev/initctl(与“|”等同)
l 符号链接 /dev/modem->/dev/ttyS1



权限标志:

对每个文件或目录都有 4 类不同的用户。每类用户各有一组读、写和执行(搜索)文件的访问权限,这 4 类用户是:

root:系统特权用户类,既 UID = 0 的用户。

owner:拥有文件的用户。

group:共享文件的组访问权限的用户类的用户组名称。

world:不属于上面 3 类的所有其他用户。

作为 root,他们自动拥有了所有文件和目录的全面的读、写和搜索的权限,所以没有必要明确指定他们的权限。其他三类用户则可以在耽搁文件或者目录的基础上别 授权或撤消权限。因此对另外三类用户,一共 9 个权限位与之对应,分为 3 组,每组 3 个,分别用 r、w、x 来表示,分别对应 owner、group、world。

权限位对于文件和目录的含义有些许不同。每组 3 个字符对应的含义从左至右的顺序,对于文件来说是:读文件的内容(r)、写数据到文件(w)、做为命令执行该文件(x)。对于目录来说是:读包含在目录中 的文件名称(r)、写信息到目录中去(增加和删除索引点的连接)、搜索目录(能用该目录名称作为路径名去访问它所包含的文件或子目录)。具体来说就是:

1. 有只读权限的用户不能用 cd 进入该目录;还必须有执行权限才能进入。

2. 有执行权限的用户只有在知道文件名并拥有该文件的读权限的情况下才可以访问目录下的文件。

3. 必须有读和执行权限才可以使用 ls 列出目录清单,或使用 cd 进入目录。

4. 如用户有目录的写权限,则可以创建、删除或修改目录下的任何文件或子目录,既是该文件或子目录属于其他用户。

修改文件权限

首先讲修改文件的所有权,使用 chown 和 chgrp 命令:

chown new_user file or directory:修改文件或目录的所有者。

chgrp new_group file or directory:修改文件或目录的所属组。

这里需要注意的是:普通用户不能将文件或目录的所有权交与他人,只有 root 有这一权限。但是普通用户有权改变文件或目录的所属组。


由于每类用户的权限都是由 rwx 三位组成,因此可以用三个八进制数字表示文件的访问权。一个八进制数字可以用三个二进制数字表示,那么与其对应,权值为 4 的位对应 r,权值为 2 的位对应 w,权值为 1 的位对应 x。对于一类用户,将这三位与其对应的权值相乘求和,就可以得出对该类用户的访问权限。

改变文件访问权限的命令是 chmod,格式是:

chmod permission file_name

比如 chmod 764 a.txt,它表示对于文件的所有者,具有对该文件读、写、执行的权限。对于文件所属组的用户,拥有读、写的权限。对于其他用户,只有读权限。

这里需要注意的是:文件的创建者是唯一可以修改该文件访问权限的普通用户,另外一个可以修改文件访问权限的用户是 root。

还有一种表示方法,就是用字符串来设定文件访问权限。其中读用 r 表示,写用 w 表示,执行用 x 表示;所有者用 u 表示,组用户用 g 表示,其他用户用 o 表示,所有用户用 a 表示。那么上面例子就写成西面的模样:

chmod a+r,u+w,u+x,g+w a.txt

本文来处www.javablogs.com

分享到:
评论

相关推荐

    LINUX修改文件权限

    这些用户可以共享文件的访问权限。 3. **Other(其他用户)**:指除文件拥有者和所属组成员之外的所有用户。 ### 文件权限的三种类型 Linux文件权限包括三种基本类型: 1. **读权限(r)**:允许用户读取文件内容...

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

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

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

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

    LINUX文件权限理解

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

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

    在Linux操作系统中,管理文件和目录的访问权限是系统管理员和普通用户日常操作的重要部分。权限控制确保了数据的安全性和隐私性。本文将详细讲解如何使用Linux命令来改变文件或目录的访问权限。 首先,我们需要了解...

    Linux修改文件及文件夹权限

    通过以上命令的灵活运用,用户可以精细地控制Linux系统中文件和目录的访问权限,从而增强系统的安全性与管理效率。掌握这些命令是Linux系统管理员的基本技能之一,对于日常维护和故障排查都至关重要。

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

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

    07_文件访问权限

    在大多数操作系统中,如Unix/Linux和Windows,文件访问权限通常分为三种:读(Read)、写(Write)和执行(Execute)。对于文件,读权限允许用户查看文件内容;写权限允许修改文件内容;执行权限则用于运行可执行...

    linux 权限设计练习及答案

    首先,Linux的权限系统基于一个三位数的权限模式,即rwxrwxrwx,每个位置代表一种权限,分别对应读(Read)、写(Write)和执行(Execute)。每组三个位对应用户类别:文件所有者(User)、同组用户(Group)和其他...

    Linux文件权限的修改命令

    * sticky 权限:chmod o+t 目录,用于设置不同用户之间的文件访问权限 7. 提权命令 * 给用户放开所有命令:sudo 命令 * 给用户放开部分命令:sudo 命令,NOPASSWD:/bin/cat,/bin/touch.... 本文总结了 Linux 文件...

    嵌入式Linux文件操作权限PPT学习教案.pptx

    St_mode的第9位用于存储文件的9个访问权限,其顺序从高到低分别是所有者的读写执行位,所有者组的读写执行位,其他用户的读写执行位。 在Linux中,可以使用access函数来测试文件权限,该函数的原型如下: ```c int...

    linux下文件操作

    umask值决定了新创建文件的默认权限,而创建模式则是用户指定的文件访问权限。在创建文件时,系统会根据这两个值计算出最终的文件权限。 总结来说,在Linux系统下进行文件操作时,用户需要了解不同文件类型的特性、...

    linux更改文件权限.pdf

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

    linux文件操作系统

    实现Linux文件操作通常遵循以下步骤: 1. **初始化**:首先,需要打开一个文件,使用`open()`函数,该函数返回一个文件描述符,后续的文件操作都将通过这个描述符进行。 2. **文件操作**: - 写入:使用`write()`...

    Linux文件访问控制技术.pdf

    Linux文件访问控制技术是操作系统安全的核心组成部分,尤其是在Linux这样的开源操作系统中,理解并掌握这些技术对于系统的管理和维护至关重要。Linux采用自主访问控制(Discretionary Access Control, DAC)模式,...

    android文件读写权限

    在Android应用开发中,文件读写权限是至关重要的一个环节,因为这关乎到应用程序能否正常地...随着Android版本的更新,如Android Q,文件访问方式也会相应变化,需要不断适应和学习新的API来确保应用的兼容性和安全性。

    增加或移除文件访问权限

    在Windows系统中,文件访问权限主要通过文件属性和用户权限控制来设置。以下是一般步骤: 1. 右键点击文件或文件夹,选择“属性”。 2. 在弹出的对话框中,切换到“安全”选项卡。 3. 在“组或用户名”列表中,你...

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

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

Global site tag (gtag.js) - Google Analytics