`
qm4050
  • 浏览: 73594 次
  • 性别: 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系统的文件模式和访问权限介绍

    Linux系统每个文件都有三种类型用户ID:文件拥有者ID、同组用户ID、所有剩下用户ID。并且每种类型用户都有三种类型的访问权限:读、写、执行。文中还介了进程的分类及进程读/写/执行文件的过程。

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

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

    Linux文件权限.pdf

    从命令行中修改权限: 1) 使用文件系统来控制安全访问。 2) 回顾chmod命令模式。 3) 使用符号模式修改文件或目录的权限。 4) 确定八进制模式权限。 5) 使用八进制模式修改文件或目录的权限。 6) 使用vi编辑器创建一...

    Android 访问文件权限的四种模式介绍

    Linux文件的访问权限 * 在Android中,每一个应用是一个独立的用户 * drwxrwxrwx * 第1位:d表示文件夹,-表示文件 * 第2-4位:rwx,表示这个文件的拥有者(创建这个文件的应用)用户对该文件的权限 * r:读 * w:写...

    Linux使用scp命令进行文件远程拷贝详解

    前言 scp是 secure copy的缩写, scp是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令。Linux的scp命令可以在Linux服务器之间复制文件和目录。...-p:保留原文件的修改时间,访问时间和访问权限

    Linux的文件系统及常用文件和目录操作命令看这一篇就够啦!超详细!

    文章目录一、Linux文件系统基础1、Linux文件系统的特点2、Linux文件系统的组成二、Linux文件系统操作1、文件的基本概念2、Linux系统下的通配符和快捷操作3、文件操作命令4、目录操作命令 一、Linux文件系统基础 1、...

    Linux操作系统:配置匿名账号FTP服务器.pptx

    允许匿名用户上传和下载文件 设置用户免密登录 设置本地系统权限 配置思路 启动vsftpd软件 进入vsftpd主配置文件 启用匿名用户 设置匿名用户可以在一个具备写权限的目录中创建新目录 启用匿名用户 service ...

    深入分析Linux内核源码.chm

    1.2 Linux的开发模式和运作机制 1.3走进Linux内核 1.4 分析Linux内核的意义 1.5 Linux内核结构 1.6 Linux内核源代码 1.7 Linux内核源代码分析工具 第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.2 内存地址 2.3 段...

    linux教程——很使用的那种

    linux中的文件(普通文件或设备文件等)都必须有挂在点,只有挂载到一个目录下才能访问,swap分区是不需要挂载点的,在分区的时候,将文件系统类型选为swap,挂载点自动会变为灰色。一般linux中的swap大小为内存的两倍。...

    cmd操作命令和linux命令大全收集

    get server.exec:server.exe 登陆后,将“IP”的server.exe下载到目标主机c:server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送文本文件模式)进行传送 tftp -i 对方IP put...

    Linux输入输出与文件

    1. 基于文件指针的文件操作(缓冲)  linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件。  1.1....  fopen创建的文件的访问权限将以0666与当前的umask结

    LINUX网站建设技术指南

    第4章 Linux文件及系统管理 4.1 文件和目录 4.1.1 文件和目录概述 4.1.2 文件类型 4.2 文件权限 4.2.1 文件权限的概念 4.2.2 文件权限的构成 4.2.3 文件权限的依赖性 4.2.4 改变权限 4.3 文件链接 4.3.1 硬链接 ...

    文件服务器安装与配置.docx

    启用基于存取的枚举:简单一点说就是如果A用户只能访问A目录的权限,那他就不会看到共享下面的B目录,就不会出现点击B目录没有访问权限的提示了,这样增强了用户体验,同时也加强文件服务器的安全性。 允许共享缓存...

    Linux FTP服务配置

    最终权限等于配置文件中的权限和linux文件系统权限相或的结果。比如vsftp配置文件中允许匿名用户下载,但光这样是不够的,还需要被下载的文件或文件夹的能够被其他用户读取。 尝试上传文件失败,符合匿名用户只允许...

    RED HAT LINUX 6大全

    9.2.2 .htaccess文件和访问限制 160 9.3 虚拟主机 161 9.3.1 基于地址的虚拟主机 161 9.3.2 基于名字的虚拟主机 162 9.4 日志记录 163 9.5 CGI和SSI 164 9.5.1 CGI 164 9.5.2 SSI 164 9.5.3 基本SSI指令 165 9.5.4 ...

    Linux基础命令与根目录一览表-思维导图.pdf

    touch:创建空文件或更新文件的访问和修改时间。 rm:删除文件或目录。 cp:复制文件或目录。 mv:移动文件或目录,也可以用于重命名。 cat:显示文件内容。 more 或 less:分页显示文件内容。 head:显示文件的开头...

    LINUX系统管理白皮书

    17.2 限制NNTP访问权限 169 17.3 NNTP身份验证 170 17.4 nntpd与C-News的沟通 171 第18章 新闻阅读机的配置 172 18.1 tin配置 172 18.2 trn配置 173 18.3 nn配置 174 第19章 其他问题 176 19.1 PLIP的空...

    linux命令.txt

    linux 目录结构、文件权限 drwxr-xr-x 3. linux 命令 - 开关机 - 文件操作 - 系统命令 1. top 2. who 3. ifconfig 4. ping 5. kill 6. man 7.clear 8.netstat 4. 软件管理 - dpkg :离线 .deb .rpm .apk ...

    Linux程序设计 第4版.haozip01

    3.4.4 访问权限的初始值 85 3.4.5 其他与文件管理有关的系统调用 88 3.5 标准i/o库 91 3.5.1 fopen函数 91 3.5.2 fread函数 92 3.5.3 fwrite函数 92 3.5.4 fclose函数 92 3.5.5 fflush函数 93 3.5.6 fseek...

Global site tag (gtag.js) - Google Analytics