Linux 文件系统 -- 文件权限简介
一、文件权限
使用 ls -l 命令可以查看文件的具体属性:

如图所示,第一列所示告诉了用户一个文件的类型和权限信息:
1)第一个字符 "d",表明该文件是一个目录文件;
2)r 表示该文件具有可读权限;
3)w 表示该文件具有写权限;
4)x 表示该文件具有可执行权限。
5)第一个 rwx 表示该文件所有者的权限;第二个 rwx 表示该文件所在组的权限;第三个 rwx 表示其他用户对该文件的权限。
二、使用 chmod 命令修改文件权限
可以使用 chmod 命令来改变文件的权限,chmod 命令有两种使用方法:
2.1 使用数字类型来改变文件的权限
我们已经知道,一个文件使用 r、w、x 来分别代表三种权限属性。每个 rwx 为一组,共有三组。给每个权限都赋一个权值:r -> 4 ,w -> 2,x -> 1,这样就可以用数字的方式来表示一组的文件权限,如:rwx 转化为数字为 4 + 2 + 1 = 7;r-x 转化为数字为 4 + 1 = 5。因此,若一个文件的权限属性为:rwxr-xr-x,转化成数字即为 755。
chmod newfile # 将文件 newfile 的权限设为 rwxr-xr-x
chmod newfile # 将文件 newfile 的权限设为 r---w---x
2.2 使用字符的方式来改变文件权限
可以在 chmod 后面接上字符选项来改变文件权限:
1)u(user),表示为文件所有者设置权限;
2)g(group),表示为文件所在组设置权限;
3)o(other),表示为其他用户设置访问权限;
4)a(all),表示为所有用户设置访问权限。如果没有添加u、g、o选线,则 chmod 命令默认添加 a 选线;
5)+,表示为文件添加某种权限,后面可接 r、w、x,分别表示添加可读权限(+r),添加写权限(+w),添加可执行权限(+x);
6)-,表示给文件删除某种权限,后面可接r、w、x,分别表示删除可读权限(-r),删除写权限(-w),删除可执行权限(-x);
7)=,表示给文件赋予某种权限,后面可接r、w、x,分别表示赋予可读权限(=r),赋予写权限(=w),赋予可执行权限(=x);
chmod +x newfile # 为所有用户添加该文件的可执行权限
chmod u+r newfile # 为文件的所有者添加可读权限
chmod o-x newfile # 删除其他用户的可执行权限
chmod u=rwx newfile # 为文件的所有者赋予 rwx 的权限
三、特殊权限位
除了常见的 r、w、x 权限外,linux 文件还有一些特殊权限:SUID、SGID 和 SBIT:
3.1 SUID
SUID 的标志为 s,出现在文件所有者的 x 权限上,其作用是让执行该文件的用户在使用这个文件时具有该文件所有者的权限:
1)SUID 权限仅对二进制可执行文件有效,不能用于目录文件,脚本也不行;
2)执行者对于该文件需要由可执行权限;
3)本权限仅在执行该文件的过程中有效,即在文件被执行时文件使用者才具备该文件所有者的权限,执行完毕后不再拥有文件所有者的权限;
关于 SUID 的一个典型的例子就是 /etc/passwd 和 /usr/bin/passwd 文件:

如图所示,/etc/passwd 文件是系统用于存放用户登录相关的重要信息(用户名、密码等)的文件,可以看到,该文件的所有者(即 root)拥有读写权限,用户组的用户和其他用户只有读权限没有写权限。但是我们发现,在系统中,root 用户和普通用户都可以使用 passwd (即 /usr/bin/passwd 文件)命令来修改这个 /etc/passwd 文件。这是因为 /usr/bin/passwd 文件被设置了 SUID 权限,所有用户在使用 passwd 命令时都可以获得 passwd 命令所有者的权限,passwd 命令的所有者是 root,因此普通用户在使用 passwd 命令时也具有 root 权限。这样就可以通过 passwd 命令来修改 /etc/passwd 这个文件了。
3.2 SGID
SGID 的标志为 s,出现在文件所在组的 x 权限上。 与 SUID 一样,其作用是让执行该文件的用户在使用该文件时具有该文件所属组的权限。
3.3 SBIT
SBIT 的标志为 t,出现在文件其他用户的 x 权限上,只能用于目录。其作用是,该目录下的文件只有文件的创建者自己和 root 用户才可以执行删除或修改操作。
3.4 SUID、SGID、SBIT 权限位的设置
与 r、w、x 一样,这三个标志位也可以用数字来标识: SUID -> 4、SGID -> 2、SBIT -> 1,在使用时,只需要将数字标识加在 rwx 的数字标识之前即可:
chmod newfile # 为文件设置 rwsr-xr-x 权限
chmod newfile # 为文件设置 rwxr-sr-x 权限
chmod 7 newdirectory # 为目录设置 rwsr-sr-t 权限
Linux 文件系统 -- 文件权限简介的更多相关文章
- 第六章、Linux 的文件权限与目录配置
第六章.Linux 的文件权限与目录配置 1. 使用者与群组 2. Linux文件权限概念 2.1 Linux文件属性 2.2 如何改变文件属性与权限: chgrp, chown, chmod 2.3 ...
- 全面解析Linux数字文件权限
全面解析Linux数字文件权限 来源: 时间:2013-09-04 20:35:13 阅读数:11433 分享到:0 [导读] 在刚开始接触Linux时对于文件权限的理解并不是很透彻,这里详细 ...
- [转]Linux中文件权限目录权限的意义及权限对文件目录的意义
转自:http://www.jb51.net/article/77458.htm linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括 ...
- linux初学者-文件权限
linux初学者-文件权限 lunix系统都是以文件的形式存在,自然而然的就会要求不同的用户拥有不同的权限,这也是系统能够运行的根本保证,下文将对文件的权限管理进行简要的介绍. 1.文件属性的查看 - ...
- Linux 的文件权限和目录配置
1.Linux文件属性 用root用户登录linux后,执行 ls -al 命令查看文件.显示如下: 文件属性示意图如下: 第一列代表这个文件的类型和权限 第一个字符代表这个文件是:目录.文件或链接文 ...
- 【转】第六章、Linux 的文件权限与目录配置
原文网址:http://vbird.dic.ksu.edu.tw/linux_basic/0210filepermission.php 最近更新日期:2009/08/18 Linux最优秀的地方之一, ...
- Linux 的文件权限与目录配置
用户和用户组 文件所有者 (owner) 用户组概念 (group) 其他人概念 (others) Linux文件权限概念 1. Linux文件属性 要了解Linux文件属性,那么有个重要的命令必须提 ...
- linux——(2)文件权限与目录配置
概念一:用户与用户组 对linux下的每一个文件或者目录来说,访问者都有三种身份:所有者,用户组,其他人.这三种人对于同一个文件的权限是可以分开设定的. 概念二:linux文件权限 文件和目录都有3种 ...
- Linux更改文件权限(二)
更改文件权限(二)============================== (参考于千锋教育教学笔记) 命令umask [root@aminglinux ~]# umask 0022 [root@ ...
随机推荐
- 【node.js】Stream(流)
Stream 有四种流类型: Readable - 可读操作. Writable - 可写操作. Duplex - 可读可写操作. Transform - 操作被写入数据,然后读出结果. 所有的 St ...
- --provider=docker时出现的问题
Vagrantfile类似: Vagrant.configure(") do |config| config.vm.box = "hashicorp/precise64" ...
- ethers.js-2-wallets and signers
Application Programming Interface (API) Wallets and Signers A Wallet manages a private/public key pa ...
- 集合之fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...
- 控制层方法中获取url目录
控制层方法中获取url目录 Request.Url.GetLeftPart(UriPartial.Authority).ToString(); //返回 http://localhost:9246(网 ...
- 为eclipse添加源代码
看到这个页面,直接点击 红色区域 attach source 关联源代码,进入到如下页面: 点击第二个选择外部的路径,点击导入文件夹,也就是解压出来的src文件夹(不建议直接导整个jar包,虽然也可以 ...
- 20155212 2016-2017-2 《Java程序设计》第9周学习总结
20155212 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 Chapter16 数据库本身是个独立运行的应用程序. 应用程序如何呼叫这组链接库? 不同的 ...
- 20155327 实验三 敏捷开发与XP实践
20155327 实验三 敏捷开发与XP实践 实验内容 任务一 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装al ...
- c++ goto语句
#include <stdio.h> #include <math.h> int main(void) //main是程序入口 { int num; printf(" ...
- TMS320VC5509的USB口通信
1. 硬件如下,直接连接5509A的USB口即可 2. 测试如下,选择完器件型号之后会多出一个cmd文件,需要删除 3. 运行程序,电脑会出现USB安装驱动的提示 不过安装驱动遇到问题,应该是我电脑是 ...