1.SetUID的功能

只有可以执行的二进制程序才能设定SUID权限,

命令执行者必须丢该程序拥有x执行权限,

命令执行者在执行该程序时获得该程序文件属主的身份(在执行过程中灵魂附体为文件的属主),

SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效,

为什么要拥有这样的一个功能呢?

在Linux系统中每个普通用户都可以更改自己的密码,这是合理的设置,用户的信息保存在文件/etc/passwd中,用户的密码保存在文件/etc/shadow中,也就是说用户更改自己密码时是修改了/etc/shadow文件中的加密密码,但是,

-rw-r--r-- 1 root root 1787 Oct 27 2009 /etc/passwd

-r-------- 1 root root 1187 Oct 27 2009 /etc/shadow

/etc/passwd文件每个用户都有读权限但是只有root有写权限,/etc/shadow文件只有超级用户root有读写权限,也就是说普通用户对这两个文件都没有写权限无法写入新密码,为什么普通用户可以更改密码呢?

在linux系统中,passwd命令有一个特殊的权限标记s ,存在于文件所有者的权限位上。这是一类特殊的权限SetUID。

而cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容

2. 怎么设定SetUID

chmod 4755 文件名,4代表SUID,原权限前面加4

chmod u+s 文件名

3. 取消SetUID

chmod 755 文件名,直接把权限恢复为原来的

chmod u-s 文件名

4. 注意事项

SetUID很危险,关键目录应该严格控制权限,比如“、”,“usr”等。

用户的密码设置要严格遵守密码三原则

对系统中默认具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限。

5. SetGID针对文件的作用

只有可执行的二进制程序才能设置SGID权限

命令执行者要对该程序拥有x(执行)权限

命令在执行程序的时候,组身份升级为该程序文件的属组

SetGID权限也同样只在该程序执行过程中有效,也就是说组身份改变只能在程序执行过程中有效;

比如:

/usr/bin/locate是可执行二进制程序,可以赋予SGID,

执行用户user1对/usr/bin/locate命令用友执行权限,

执行/usr/bin/locate时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库用友r权限,所以普通用户可以使用locate命令查询mlocate.db数据库,

命令结束,user1用户的组身份返回为user1组

6. SetGID针对目录的作用

普通用户必须对此目录有r和x权限,才能进入此目录,

普通用户在此目录中的有效组会变成此目录的属组,

若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组。

设定:SetGID

chmod 2755 文件名 2代表SGID

chmod g+s 文件名

取消SetGID

chmod 755 文件名

chmod g-s 文件名

7. Sticky BIT粘着位

粘着位目前只针对目录有效

普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限;

如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下的所有文件,包括其他用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。

设置粘着位

chmod 1755 目录名

chmod o+t 目录名

取消粘着位

chmod 755 目录名

chmmod o-t 目录名

linux中普通用户用友所有权限,linux文件的特殊权限相关推荐

  1. Linux就应该这么学第七课-文件的特殊权限

    Linux就应该这么学第七课 文件的特殊权限 1.SUID 将文件执行者临时获取所有者的权限 u+s 2.SGID 让执行者临时拥有属组的权限 g+s 在某个目录中创建的文件自动继承该目录的用户组(只 ...

  2. Linux学习笔记(一):关于文件和目录权限的一小点内容

    我的Linux学习笔记(一):关于文件和目录权限的一小点内容 前言: 之前说踏上了一条真正的程序员之路,实在是打脸,才三个月不到,就更换了工作,跑到单位上班来了.一是因为之前上班那家公司实在让我很恶心 ...

  3. Linux使用笔记: 设置Samba服务器中新建文件/目录的权限

    From: http://easwy.com/blog/archives/set-file-directory-attribute-for-linux-samba/ 通过Samba服务器实现windo ...

  4. Linux命令应用大词典-第 15章 文件、目录权限和属性

    15.1 chmod:更改文件和目录的模式 15.2 chown:更改文件和目录的用户所有者和组群所有者 15.3 chgrp:更改文件或目录的所属组 15.4 umask:显示和设置文件及目录创建默 ...

  5. 在window和linux上通用的SprtLock类头实现文件

    /** @file         SprtLock.cpp @brief        Sprt锁操作类,SprtLock类实现 @author      cxw @version     版本编号 ...

  6. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  7. Linux下通用的Makefile

    Linux下通用的Makefile 我们在Linux环境下开发程序,少不了要自己编写Makefile,一个稍微大一些的工程下面都会包含很多.c/.cpp的源文件.如果我们用gcc/g++去一个一个编译 ...

  8. linux文件的基本权限、默认权限、特殊权限总结

    1.linux文件属性权限简介 生活中很多时候,都是你拥有什么权限,就享受什么待遇.就像你充值会员,享受成长加速一样,我们系统中的文件也是针对不同对象,设定了相应的操作权限的.linux把访问对象定义 ...

  9. linux分区命名规则,《linux就该这么学》第七节课:文件的各种权限以及linux分区命名规则...

    笔记 (借鉴请改动) 5.3:文件特殊权限 SUID  临时拥有文件所有者的权限(基本上只是执行权限) SGID  临时拥有文件所有组的权限,在目录中创建文件自动继承该目录的用户组. SBIT  粘滞 ...

最新文章

  1. GridView,Repeater分页控件:WebPager(开源)
  2. centos6.4使用man查找命令时,报错No manual entry for xxxx
  3. MATLAB机器学习系列-4函数篇
  4. java帐篷_Java多线程之 Park和Unpark(十四)
  5. unity如何往下挖地形_Unreal Engine地形系统辨析(一)
  6. 解决E: Package ‘libmysqlclient-dev‘ has no installation candidate报错
  7. 6月首批国产游戏获批:共55款 腾讯B站上榜
  8. 第三组视频:基于OCFS2的双主DRBD
  9. RN对接京东支付sdk(Android)
  10. STM32官方应用笔记分类汇总
  11. bootstrap 下拉列表获取_Bootstrap框架下下拉菜单的实现(代码示例)
  12. Heaps | 优先队列
  13. HashData:守护数据安全 筑牢数字经济底座
  14. 如何采集与分析RocketMQ客户端日志
  15. 本科生晋升GM记录 Kaggle比赛进阶技巧分享
  16. 用VS2015开发Linux程序详细教程-配置篇
  17. 《惢客创业日记》2018.10.29(周一) 中国只有一个雷军,却有千万个中小企业
  18. Sequoia(基于JDBC的数据库集群中间件)用户手册
  19. npm install 报node-sass错误
  20. 计算机实验 进程同步实验观察结果记录表,北京理工大学计算机实验五报告表.doc...

热门文章

  1. XSLT 2.0 in .NET
  2. Redis进阶实践之二如何在Linux系统上安装安装Redis
  3. CentOS7Jenkins安装
  4. Swift标准库源码阅读笔记 - Array和ContiguousArray
  5. Git远程操作详解【转】
  6. Test2 unit2
  7. CGI方式获取RTX中用户的电话和邮箱
  8. Coolite 常用客户端校验
  9. jsp中jsp中群发邮件群发邮件
  10. 短期主义和长期主义的思考