SetUID[权限值=4]

问题:为什么普通用户可以修改自己的密码?

ll $(which passwd)

1、SetUID:当一个可执行程序/命令具有SetUID 权限,用户执行这个程序时,将以这个程序的所有者的身份执行。

2、加SetUID权限:

chmod u+s [filename] 或 chmod 4755 [filename] #SetUID权限值=4

E.g.

chmod u+s $(which touch)

#可以看到newfile2的所有者并不是guest,而是root!

3、危险!

将命令设置成SetUID是一件很危险的事,比如将vi设置成SetUID,则他可以编辑并保存系统中所有的文件,甚至是系统配置文件!他可以让一个用户瞬间编程超级用户,他可以使你的系统不断的重启等,或者将kill设置成SetUID...

预防:

find / -perm -4000 -o -perm -2000

#查找权限为4000或2000的文件,即具有SetUID,SetGID的文件

4、取消SetUID权限:

chmod u-s [filename] 或 chmod 755 [filename]

附-原来的文件必须是一个可执行程序,如果原文件没有x权限,则设置SetUID之后也没有任何作用


#显示为S[大写]!

SetGID[权限值=2]

1、SetGID:当一个可执行程序/命令具有SetGID 权限,用户执行这个程序时,将以这个程序所属组的身份执行。

2、加SetGID权限:

chmod g+s [filename] 或 chmod 2755 [filename] #SetGID权限值=2

#可以看到testfile2的所属组并不是默认的guest,而是root!

【同时设置UID与GID chmod 655...】

粘着位[权限值=1]

1、粘着位:如果一个权限为777的目录,被设置了粘着位,每个用户都可以在这个目录里面创建文件,但是只可以删除所有者是自己的文件。

2、设置粘着位:

chmod o+t [filename] 或 chmod 1777 [filename] #粘着位用t来表示,权限值=1

#可以看到,在设置了粘着位的/t_test目录,删除隶属于自己的文件是可以的,但是无法删除其他人的文件.

附-文件的特殊权限:

umask命令的第一位

Linux特殊权限分析(第二版)的更多相关文章

  1. Linux文件权限分析

    一.用户组概念  在linux系统中,每个用户必属于一个组,不能独立于组之外.每个文件都有所有者,所在组和其他组这三个概念. (1)所有者:一般为文件的创建者,谁创建了该文件,就成为了该文件的所有者, ...

  2. /etc/fstab文件分析(第二版)

    /etc/fstab文件分析 前面说新建的分区在系统重启之后就会失效,要想永久生效,需要将其写入/etc/fstab文件 一./etc/fstab文件格式:6个组成部分 物理分区名/卷标 挂载点 文件 ...

  3. Linux内核及分析 第二周 操作系统是如何工作的?

    计算机是如何工作的? 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要,但有了高级语言及函 ...

  4. linux c数据库备份第二版

    #想知道更多请查看第一版"linux c数据库备份第一版" #include<sys/types.h> #include<sys/wait.h> #incl ...

  5. Linux用户管理命令(第二版)

    添加用户 1.useradd -设置选项 用户名 [-D 查看缺省参数 ] 选项: u: UID [必须是系统中没有的] g:缺省所属用户组GID[最好有] G: 指定用户所属多个组[可以指定这个用户 ...

  6. Linux文件系统管理命令(第二版)

    Linux文件系统管理命令 常用命令 1.df命令 查看分区使用情况 常用选项 -h 比较人性化 -m 以兆字节显示分区使用情况 显示信息: Mounted on:挂载点 Filesystem:对应的 ...

  7. Linux用户管理案例(第二版)

    批量添加用户 1.按照/etc/passwd文件格式编写用户信息文件users.info xiaofang01::1001:503::/home/xiaofang01:/bin/bash  #注意不能 ...

  8. Linux权限分析

    我看过网上的一些有关Linux的权限分析,有些说的不够清楚,另外一些说的又太复杂.这里我尽量简单.清楚的把Linux权限问题阐述明白,Linux权限没有那么复杂. Linux权限问题要区分文件权限和目 ...

  9. Linux操作系统(第二版)(RHEL 8/CentOS 8)——勘误表

    Linux操作系统(第二版)(RHEL 8/CentOS 8)--勘误表 http://www.tup.tsinghua.edu.cn/booksCenter/book_08172501.html 本 ...

随机推荐

  1. 集群技术(三)MySQL集群深度解析

    什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(read-committedi ...

  2. 剑指Offer——Java实现栈和队列的互模拟操作

    剑指Offer--Java实现栈和队列的互模拟操作 栈模拟队列   题目:JAVA实现用两个栈来实现一个队列,完成队列的Push和Pop操作.队列中的元素为int类型.   思路:其实就是把队列正常入 ...

  3. 统计处理包Statsmodels: statistics in python

    http://blog.csdn.net/pipisorry/article/details/52227580 Statsmodels Statsmodels is a Python package ...

  4. 谷歌面试题:输入是两个整数数组,他们任意两个数的和又可以组成一个数组,求这个和中前k个数怎么做?

    谷歌面试题:输入是两个整数数组,他们任意两个数的和又可以组成一个数组,求这个和中前k个数怎么做? 分析: "假设两个整数数组为A和B,各有N个元素,任意两个数的和组成的数组C有N^2个元素. ...

  5. android view事件分发机制

    首先我们先写个简单的例子来测试View的事件转发的流程~ 1.案例 为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志 ...

  6. 如何构建Android MVVM 应用框架

    概述 说到Android MVVM,相信大家都会想到Google 2015年推出的DataBinding框架.然而两者的概念是不一样的,不能混为一谈.MVVM是一种架构模式,而DataBinding是 ...

  7. 嵌入式LINUX环境下视频采集知识

    V4L2是Linux环境下开发视频采集设备驱动程序的一套规范(API),它为驱动程序的编写提供统一的接口,并将所有的视频采集设备的驱动程序都纳入其的管理之中.V4L2不仅给驱动程序编写者带来极大的方便 ...

  8. OpenCV实时美颜摄像并生成H264视频流

    为什么美颜摄像这么简单的功能,OpenCV这个开源项目网上很少有代码呢?对于在windows平台下,生成h264视频流也比价麻烦,没有现成的api可以使用,需要借助MinGw编译libx264,或者f ...

  9. C语言一个双向链表的实现

    首先编写头文件,头文件里做相关的定义和声明,DList.h内容如下: #ifndef DList_H #define DList_H typedef int Item; typedef struct ...

  10. 05 Activity生命周期

    生命周期:一个Activity从创建到销毁经过的全部方法 1.onCreate() 创建一个Activity的时候执行的方法 2.onStart()Activity可以被看见到时候无法交互(没有焦点) ...