文件权限管理之特殊命令

一:特殊权限

昨天所学的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. JMeter压力测试简单使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11915535.html JMeter压力测试简单使用: 我们可以使用JMeter来测试一下自己 ...

  2. MySQL--数据表操作--行转列和列转行

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11782549.html MySQL--数据表操作: 会用到的查询操作. 1. Limit的用法 ...

  3. python篇第10天【For 循环语句】

      实例 #!/usr/bin/python # -*- coding: UTF-8 -*- for a in 'Henry': print "This is ", a   fru ...

  4. windows server2012搭建邮箱服务器+客户端界面(hmailserver+afterlogic)+批量创建邮箱

    1.简介 由于需要较多邮箱,如果去注册需要很多的手机号码去验证,一个人不可能买一堆的手机号,所以自己搭建一个邮箱服务器可以大批量的创建自己的邮箱账号和收发邮件. 2.安装部署hmailserver 下 ...

  5. Java在算法题中的输入问题

    Java在算法题中的输入问题 在写算法题的时候,经常因为数据的输入问题而导致卡壳,其中最常见的就是数据输入无法结束. 1.给定范围,确定输入几个数据 直接使用普通的Scanner输入数据范围,然后使用 ...

  6. 这个杀手不太冷-kill家族

    文章目录 kill killall pkill 跑路小技巧 kill家族: kill: # 删除执行中的程序或工作 killall: # 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程 pk ...

  7. 《深度探索C++对象模型》第二章 | 构造函数语意学

    默认构造函数的构建操作 默认构造函数在需要的时候被编译器合成出来.这里"在需要的时候"指的是编译器需要的时候. 带有默认构造函数的成员对象 如果一个类没有任何构造函数,但是它包含一 ...

  8. 深入MySQL(三):MySQL的索引的应用

    在MySQL的优化中,索引的作用绝对算是一个大头,很多时候索引使用得当可以使得一个查询的效率提高几个数量级,同时它还具有自动排序等功能.所以如果是深入MySQL,那么索引绝对是其中重要的一部分. My ...

  9. Dubbo SPI机制之一JDK中的SPI

    首先简单阐述下什么是SPI:SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制.目前有不少框架用它来做服务的扩展发现,简单来说,就是一种动态 ...

  10. 云原生 PostgreSQL 集群 - PGO:来自 Crunchy Data 的 Postgres Operator

    使用 PGO 在 Kubernetes 上运行 Cloud Native PostgreSQL:来自 Crunchy Data 的 Postgres Operator! Cloud Native Po ...