文件权限管理之特殊命令

一:特殊权限

昨天所学的Linux基本权限为为9个;分别是rwx rwx rwx。但有时会发现系统中会有一些特殊的权限位符号;

例如:

Linux系统一共有12个特殊权限符:

rwx rwx rwx suid guid sbit
属主 属组 其他人 用户位 用户组 其他用户

特殊权限对照表:

类别 suid guid sbit
字符表示 S(大写) S(大写) T(大写)
出现位置 用户权限为x 用户权限位x 其他用户权限位
基本权限为有x权限 s(小写) s(小写) t(小写)
代表数字 4 2 1
八进制表示 4000 2000 1000
生效对象 用户位 用户组位 其它用户

二:特殊权限命令

1.suid基础原理:

1.suid通过S字符标识,存在于用户权限位的x对应权限位置

2.若某文件本身的用户权限位就有x权限,则设置suid权限时,则会以s(小写)表示

3.给文件设置s权限对应的数字表示为4;在八进制数下可以用4000表示

4.suid同样也可以使用chmod命令设置权限,可以使用字符或数字表示

注意:

  • suid仅适用于可执行的文件

  • 功能:只要用户对设有uid的文件有执行权限,那么当用户执行此文件时,就会以该文件属主的用户身份去执行此文件;当执行文件后,身份的切换也会随之消失

  • 例:当用户执行passwd时;执行的是/usr/bin/passwd这个可执行文件;执行时会以root用户身份执行,可以在执行时修改一连串的文件(连锁反应),当该passwd二进制文件执行后,用户身份也就会变为本身了

  • 设想;当/usr/bin/passwd二进制可执行文件没有了s权限,会发生怎样的情况

    (当普通用户使用passwd命令时,会修改一系列的相关文件{/etc/passwd,shadow文件};而这些文件的属主组都不是属于普通用户,所以就会有suid权限;当普通用户使用该二进制命令文件时,就会使用该文件的属主身份进行操作。)

    当删除掉passwd文件的s执行权限:

查看普通用户是否可以执行该二进制文件

这就表示虽然普通用户有权限使用passwd;但无法向该文件连锁执行的文件做出修改,就会提示用户身份令牌错误;普通用户就不能自己修改自己的密码了。

​ 恢复/usr/bin/passwd二进制文件的suid权限

使用普通用户使用passw修改自己的密码;看看是否成功

  • 以上述为例:如何让用户本身禁止修改密码??

    可以修改/usr/bin/passwd文件的s权限,去掉该权限;让普通用户虽然可以执行passwd;但是无法修改与passwd命令相关变动的/etc/shadow用户密码文件;这样就可以让用户不能修改密码了

  • 使用find命令搜索系统上所有的s权限位文件

参数解释:
-perm:利用权限进制搜索
-type:指定文件类型(l:软连接类型;d:文件夹类型;f:文件类型)
-ls:搜索的数据进行格式化输出
-delete:对匹配的数据进行删除

总结:

当有suid权限的文件被执行时,该文件将以所有者的身份去运行,就相当于普通用户执行这个文件时,就会拥有该文件属主的权限了;若属主为root,那么执行者就会在执行文件时拥有root用户的权限!!

1.suid权限是针对二进制可执行文件设置的,不能用在shell脚本上(非常危险!!)

2.suid权限位在user位的x权限位上,当设置该文件有s权限后;若显示为S,则说明x权限位本身就没有x权限;若显示s(小写),则说明该文件权限位本身就有x权限

3.suid的作用就是让执行者拥有文件属主的全部权限;以文件所有者的身份去运行该文件

4.suid权限会对系统有一定的危险!一般使用sudo命令代替suid权限执行相应的操作;当对Linux系统优化时,会尽量去除所有设置的suid命令

2.sgid 权限位

  • 对于二进制文件命令说,sgid与suid的作用、使用方法大致相同;不同的是suid是设置文件属主的权限;sgid是设置文件属组的权限

  • suid主要作用于二进制文件;sgid主要作用于文件夹:当为某个文件夹设置sgid权限后,在改文件夹中创建的文件,都会以改文件夹的属组权限为准,而不属于创建该文件的用户权限。

  • sgid对于文件、文件夹有不同的作用:

    文件:

    • sgid只对二进制文件命令生效,且需改文件本身具有x权限
    • 当执行具有sgid权限的二进制文件命令时,就会获得该命令在执行期间所属组的身份与权限(就相当于执行具有suid权限的文件一样)

​ 文件夹:

    • 当设置了sgid权限的文件夹,会保证在该文件夹下创建的所有文件或文件夹都会保持同样的属组权限属性(就相当于创建的文件或目录都会保持与上一级目录相同的属组)
  • 实践操作:

    1.创建一个共享目录/home/admins

2.要求该目录属组是adminuser,adminuser组内成员对该目录的权限是,可读,可写,可执行

3.其他用户均无任何权限(root特例)

4.进入/home/admins创建的文件,自动继承adminuser组的权限。



(如何在创建文件或目录时,保持与上一级文件具有相同的属组权限)

使用普通用户在该文件夹下创建文件或文件夹:

​ 恢复文件夹的其它用户权限

创建文件与文件夹

3.sbit 粘滞位

在o的权限为上

sbit特殊点:

当一个目录有了粘滞位,这个目录除了root用户外,任何用户都只能删除、移动自己创建的文件或目录不会影响到其他用户文件或目录

​ 若文件夹没有设置粘滞位,并且文件夹权限的rwx权限很大;任何具有该目录写和执行权限的用户都可以删除和移动体重的任何文件!!

拓展

1.查看系统所有的环境变量

​ set命令

2.查看用户的环境变量

​ env命令

3.命令提示符的变量

​ PS1

4.若用户的家目录出现损坏,咋办?

  • 直接拷贝/etc/skel文件中的所有文件到该用户的家目录

-r:递归拷贝

Linux特殊权限之suid、sgid、sbit权限的更多相关文章

  1. Linux之特殊权限(SUID/SGID/SBIT)

    特殊权限的介绍 Set UID 当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”,此时就被称为Set UID,简称为SUID.那 ...

  2. 文件的特殊权限(SUID,SGID,SBIT)

    文件的一般权限:r w x  对应 421  文件的特殊权限:SUID SGID SBIT对应 421  文件的隐藏权限:chattr设置隐藏权限,lsattr查看文件的隐藏权限. 文件访问控制列表: ...

  3. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...

  4. CentOS 文件特殊权限SUID,SGID,SBIT

    1.SUID ,是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效). (1)SUID权限仅对二进制程序有效: (2)本权限仅在执行该 ...

  5. SUID, SGID, SBIT

    基本上SUID有这样的限制与功能: SUID权限仅对二进位程序(binaryprogram)有效,不能用在shellscript上面: 运行者对於该程序需要具有x的可运行权限: 本权限仅在运行该程序的 ...

  6. Linux 文件特殊权限 SUID SGID SBIT

    文件除了常规的权限r, w, x 还有一些特殊的权限,s与t权限,具体的用处如下 1 SetUID 当s 这个标志出现在文件所有者的x权限上时, 例如/usr/bin/passwd, [root@or ...

  7. centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln 内部命令和外部命令 第五节课

    centos 特殊权限 各种搜索命令 lsattr ,chattr,suid,sgid,sbit,file,type是否是内置命令,stat文件属性 ,whereis,locate,find,ln   ...

  8. suid sgid sbit chattr lsattr

    suid 一般用于二进制可执行文件,suid代表当用户执行此二进制文件时,暂时具有此文件所有者的权限 chmod 4xxx binfile sgid 一般用于目录,sgid代表当其他用户在此目录下创建 ...

  9. suid sgid sbit chattr lsattr find

    suid 一般用于二进制可执行文件不可用于shell脚本和目录,suid代表当用户执行此二进制文件时,暂时具有此文件所有者的权限 chmod 4xxx binfile sgid 一般用于目录,sgid ...

  10. Linux 特殊权限 SUID,SGID,SBIT

    setuid 和 setgid 分别是 set uid ID upon execution 和 set group ID upon execution 的缩写.我们一般会再次把它们缩写为 suid 和 ...

随机推荐

  1. Lvs+Keepalived+MySQL Cluster架设高可用负载均衡Mysql集群

    ------------------------------------- 一.前言 二.MySQL Cluster基本概念 三.环境 四.配置 1.LB-Master及LB-Backup配置 2.M ...

  2. Lesson10——NumPy 迭代数组

    NumPy 教程目录 NumPy 迭代数组 NumPy 迭代器对象  numpy.nditer  提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. Exa ...

  3. linux 定时删除图以及crontab介绍

    执行 sudo crontab -e 0 3 1 * * /etc/letsencrypt/certbot-auto renew --renew-hook "sudo nginx -s re ...

  4. 《PHP程序员面试笔试宝典》——在被企业拒绝后是否可以再申请?

    如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 很多企业为了能够在一年一度的招聘季节中,提前将优秀的程序员锁定到自己的麾下,往往会先下手为强.他们通常采取的措施有两种: ...

  5. RISC-V 特权指令结构

    机器模式 机器模式(缩写为 M 模式,M-mode)是 RISC-V 中 hart(hardware thread,硬件线 程)可以执行的最高权限模式.在 M 模式下运行的 hart 对内存,I/O ...

  6. 面向对象—多态、鸭子类型(Day21)

    编程原则java具有自己的编程原则和设计模式,不能多继承.python的编程原则:1.开放封闭原则:开放是对扩展是开放的,封闭是对修改是封闭的(已经写完的代码程序是不能修改的).2.依赖倒置原则:高层 ...

  7. sql server通过T-SQL导出Excel到磁盘

    ALTER PROCEDURE [dbo].[pro_ImportExcelByTime] AS BEGIN --第一步,开启高级功能 EXEC sp_configure 'show advanced ...

  8. Linux安装Python xlrd、xlwt、xlutils模块

    一.安装setuptools: 可以先打开setuptools的python官网看看setuptools软件包如何安装: 1 > wget https://bitbucket.org/pypa/ ...

  9. 《Java编程思想》学习笔记(详细)

    目录 01 对象导论 02 一切都是对象 03 操作符 04 控制执行流程 05 初始化与清理 06 访问权限控制 07 复用类(继承) 08 多态 09 接口 10 内部类 11 持有对象 12 通 ...

  10. 编译安装nginx报错 checking for C compiler ... not found

    编译安装在执行./configure步骤报错,是因为缺少环境变量 checking for C compiler - not found ./configure: error: C compiler ...