问题

在《Unix高级编程》第4.9章节中描述了函数chmod()的参数mode常量值

当中S_ISUID、S_ISGID、S_ISVTX三个常量让人困惑.

分析

通过查阅文档,发现这几个权限叫做强制位(s权限)和粘滞位(t权限)

一、s权限

包含S_ISUID、S_ISGID两个常量在内,叫做强制位权限,作用在于设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份. 典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.

ls -al /usr/bin/passwd
-rwsr-xr-x pythontab pythontab -- : /usr/bin/passwd

两个常量的值是:

  oct dec
S_ISUID 4000 2048
S_ISGID 2000 1024

即分别是第12位和第11位的掩码.

设置suid:将相应的权限位之前的那一位设置为4;

设置guid:将相应的权限位之前的那一位设置为2;

两者都置位:将相应的权限位之前的那一位设置为4+2=6.

设置一个文件运行时具备文件拥有者UID的身份:

chmod  test

设置一个文件运行时具备文件拥有者GID的身份:

chmod  test

设置一个文件运行时以上两者兼备的身份:

chmod  test

注意:在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效(c h m o d命令不进行必要的完整性检查,即使不设置x权限就设置s权限,chmod也不会报错,当我们ls -l时看到rwS,大写S说明s权限未生效)

二、t权限

这个常量的值是:

  oct dec
S_ISVTX 1000 512

即是第10位的掩码,不过有一点挺奇怪是,在centos7.0下标准头文件sys/stat.h却没有定义这个常量,但是在文件系统中这个标志位是真实存在的.

设置一个文件夹运行时具备t权限:

chmod  test

t权限:要删除一个文档,您不一定要有这个文档的写权限,但您一定要有这个文档的上级目录的写权限。也就是说,您即使没有一个文档的写权限,但您有这个文档的上级目录的写权限,您 也能够把这个文档给删除,而假如没有一个目录的写权限,也就不能在这个目录下创建文档。

怎样才能使一个目录既能够让任何用户写入文档,又不让用户删除这个目录下他人的文档,t权限就是能起到这个作用。t权限一般只用在目录上,用在文档上起不到什么作用。

在一个目录上设了t权限位后,(如/home,权限为1777)任何的用户都能够在这个目录下创建文档,但只能删除自己创建的文档(root除外),这就对任何用户能写的目录下的用户文档 启到了保护的作用。

可以通过chmod +t filename 来设置t权限

在这再总结一下

s或S(SUID,Set UID):

可执行的文件搭配这个权限,便能得到特权,任意存取该文件的所有者能使用的全部系统资源。请注意具备SUID权限的文件,黑客经常利用这种权限,以SUID配上root帐号拥有者,无声无息地在系统中开扇后门,供日后进出使用。

t或T(Sticky):

/tmp和 /var/tmp目录供所有用户暂时存取文件,亦即每位用户皆拥有完整的权限进入该目录,去浏览、删除和移动文件。

[Linux]权限s权限和t权限的更多相关文章

  1. linux 用户创建、管理、权限分配

    (1)su与sudo su:通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证: sudo: sudo扮 ...

  2. linux用户、组管理及权限(一)

    一.用户管理 1.为什么需要用户 1)计算机及网络资源的合理分配  2)可以控制用户访问系统的权限.3)身份认证 4) 进程 以某个用户的身份来运行 2.用户分类 用户的角色是通过UID(用户ID)来 ...

  3. Linux常用命令_(文件权限)

    Linux权限管理: 二.权限管理1.3种基本权限在Linux中,将使用系统资源的人员分为4类:超级用户.文件或目录的属主.属主的同组人和其他人员.超级用户拥有对Linux系统一切操作权限,对 于其他 ...

  4. Linux分类笔记(一)-权限管理

    Linux分类笔记(一) 权限管理 普通权限 文件的普通权限 对一个普通的文件使用ls -ll命令后,看到下面的输出内容   而对于文件权限中的每一位,又分别代表了以下的意思 文件类型又有以下几类: ...

  5. Linux下报 java.net.SocketException权限不够 异常解决

    转载自:http://wangchongan.com/articles/java-net-socket-exception-permission-denied.html 今天在Linux下用Jetty ...

  6. Linux命令之文件与用户权限

    1.文件管理 在Linux里,任何软件和I/O设备都被视为文件.Linux中的文件名最大支持256个字符,分别可以用A-Z.a-z.0-9等字符来命名. 和Windows不同,Linux中文件是区分大 ...

  7. linux杂记(六)档案权限

    [KANO@kelvin ~]$ ls -al 总用量 drwx------. KANO KANO 10月 : . drwxr-xr-x. root root 9月 : .. drwxrwxr-x. ...

  8. Linux分配给该用户没有权限登陆

    Linux分配给该用户没有权限登陆 sudo visudo username ALL=(ALL) NOPASSWD:ALL 版权声明:本文博客原创文章,博客,未经同意,不得转载.

  9. linux的学习系列 4---文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

  10. Linux下ls命令显示符号链接权限为777的探索

    Linux下ls命令显示符号链接权限为777的探索 --深入ls.链接.文件系统与权限 一.摘要 ls是Linux和Unix下最常使用的命令之一,主要用来列举目录下的文件信息,-l参数允许查看当前目录 ...

随机推荐

  1. SQL的一些基础查询语法

     基础.限定.模糊查询     关键字都是大写. 使用 BETWEENN AND 的时候小的数字或者日期放到  AND(并且)  的面前,大的一个放到AND 后面.   数据操纵语言SQL分类(DML ...

  2. PS外挂滤镜调出清晰对比照片

    最终效果 一.打开原图. 二.我们使用类似第一部分的相同方法,但设置上略有不同,我们将光线放在不同的地方.复制底层,执行滤镜-LUCIS ART水彩滤镜-LUCISART 选择 雕刻 设置参数为25. ...

  3. MySql下实现先排序后分组

    最近在工作中遇到一个先排序后分组的需求,发现MySql不同的版本有不同的结果,特此记录. 举例:要求在shop表中查询出各类型商店中价格最高的商品. --表结构-- create table `sho ...

  4. Maven将远程包拉去到项目指定路径

    <build> <plugins> <plugin> <artifactId>maven-dependency-plugin</artifactI ...

  5. 根据 Power BI Desktop(预览版)中的报表页创建工具提示

    根据 Power BI Desktop 中创建的报表页,可创建直观丰富的报表工具提示,这些提示在你将鼠标悬停在视觉对象上时显示. 通过创建用作工具提示的报表页,使自定义工具提示包含视觉对象.图像以及在 ...

  6. HTML- 标签语法

    HTML 标签语言 概念  超文本标记语言, 是一种用于创建网页的标记语言 ps: 不是编程语言 利用标签来描述网页 扩展名:.html .htm 语法规范 标签不区分大小写, 推荐小写 双标签必须写 ...

  7. docker的基础命令

    详细命令参考http://www.runoob.com/docker/docker-command-manual.html

  8. C++(2):错误:undefined reference to `__gxx_personality_v0'

    1. Linux Develop Notes     * 编译 c++ 程序需要添加 -lstdc++   sample: gcc -lstdc++ -o test test.c,否则会报 " ...

  9. React 记录(7)

    React文档:https://www.reactjscn.com/docs/handling-events.html 慢慢学习:对照教程文档,逐句猜解,截图 React官网:https://reac ...

  10. 第六节:WebApi的部署方式(自托管)

    一. 简单说明 开篇就介绍过WebApi和MVC相比,其中优势之一就是WebApi可以不依赖于IIS部署,可以自托管,当然这里指的是 .Net FrameWork 下的 WebApi 和 MVC 相比 ...