热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

linux文件系统特殊权限及suidsgidsticky

linux文件系统特殊权限及suidsgidsticky1、Linux文件系统上的特殊权限权限模型:u,g,or,w,x2、进程的安全上下文:前

linux文件系统特殊权限及suid sgid sticky


1、Linux文件系统上的特殊权限

   权限模型:

     u, g, o

     r, w, x


2、进程的安全上下文:

   前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;

     (1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;

     (2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;

     (3) 进程拥的访问权限,取决其属主的访问权限:

     (a) 进程的属主,同文件属主,则应用文件属主权限;

     (b) 进程的属主,属于文件的属组,则应用文件属组权限;

     (c) 则应用其它权限;


3、SUID:

     (1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限;

     (2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID;


   权限设定:

     chmod u+s FILE... 

     chmod u-s FILE...


注意:

s: 属主原本拥有x权限;

S: 属主原本无x权限;


4、SGID:

   默认情况下,用户创建文件时,其属级为此用户所属的基本组;

   作用:一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建的文件所属的组为目录的属组,而非用户的基本组;


   权限设定:

     chmod g+s FILE...

     chmod g-s FILE...


5、Sticky:

   作用:对于一个多人可写的目录,此权限用于限制每个仅能删除自己的文件;


   权限设定

     chmod o+t FILE...

     chmod o-t FILE...


SUID, SGID, STICKY

000

001

010

011

100

101

110

111


chmod 4777 FILE

chmod 3755 DIR



6、文件系统属性chattr权限

   chattr [+,-,=] [选项] 文件或目录名

   选项:

     i:如果对文件设置i属性,那么不允许对文件进行删除,改名,也不能添加和修改数据;

     如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件,也不能改名

     a:如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;只能用重定向追加入数据

     如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除文件


例子:

[root@localhost ~]# chattr +ia /etc/fstab[root@localhost ~]# lsattr /etc/fstab
----ia-------e- /etc/fstab
[root@localhost ~]# chattr -ia /etc/fstab
[root@localhost ~]# lsattr /etc/fstab
-------------e- /etc/fstab


7、查看文件系统属性

   lsattr 选项 文件名

     -a 显示所有文件和目录

     -d 若目标是目录,仅列出目录本身的属性,而不是子文件的属性


例子:

[root@localhost ~]# lsattr -a /usr/local/*-------------e- /usr/local/bin/.-------------e- /usr/local/bin/..-------------e- /usr/local/etc/.-------------e- /usr/local/etc/..-------------e- /usr/local/games/.


6、sudo权限

   root把本来只能管理员执行的命令赋予普通用户执行

     sudo的使用 

     visudo打开/etc/sudoers配置文件


   1.lisir ALL=NOPASSWD:/sbin/service,/sbin/ifconfig,/bin/mount

   上述命令都不输入密码


   2.lisir station 73=/sbin/service/,NOPASSWD:/sbin/ifconfig,/bin/mount

   执行service命令需输入密码,ifconfig,mount 不需要


   3.lisir station73=(poppy) /sbin/service,NOPASSWD:(root) /bin/mount

   一个用户可以执行多个用户的某些命令


   4.%stu station=NOPASSWD:NETWORKING./bin/

   Stu组中的用户可以不输入用户密码执行文件中定义的NETWORKING ,以及目录/bin下的命令。还记得    吗?目录后面必须加上/结尾


   5.poppy ALL=(ALL) ALL

   这个命令很危险 它是是poppy用户可以在任何主机上以任何用户执行任何命令。


Sudo 的特点是:给用户尽可能少的权限,但能完成他们的工作,所有在编辑SUDOERS文件时,注意不要让非法用户截取root权限.


例子:

[root@localhost ~]# visudo## Allow root to run any commands anywhereroot    ALL=(ALL)       ALLlisir   ALL=/sbin/fdisk[root@localhost ~]# su - lisir[lisir@localhost ~]$ sudo fdisk -l[sudo] password for lisir:Disk /dev/sda: 128.8 GB, 128849018880 bytes255 heads, 63 sectors/track, 15665 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00048e25



练习:

1、让普通用户能使用/tmp/cat去查看/etc/shadow文件;

答:

[root@localhost ~]# cp -rfp /bin/cat /tmp

[root@localhost ~]# chmod u+s /tmp/cat

[root@localhost ~]# su - lisir

[lisir@localhost ~]$ /tmp/cat /etc/shadow



2、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;

答:

[root@localhost ~]# mkdir -p /test/data

[root@localhost ~]# chmod g+s /test/data/

[root@localhost ~]# chmod o+t /test/data/

[root@localhost ~]# chown :lisir /test/data

[root@localhost ~]# chmod g+w /test/data/




推荐阅读
  • linux服务器时间同步失败解决方法
    linux服务器时间同步失败解决方法1、为什么会时间不同步:①计算机的时间是根据电脑晶振以固定频率震荡而产生的,由于晶振的不同或者老化,会 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 解决Linux下RTL8723be无线网卡搜索不到wifi的问题——华硕笔记本安装deepin15.11无wifi信号
    解决Linux下RTL8723be无线网卡搜索不到wifi的问题——华硕笔记本安装deepin15.11无wifi信号,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 本文介绍了在Ubuntu系统中清理残余配置文件和无用内容的方法,包括清理残余配置文件、清理下载缓存包、清理不再需要的包、清理无用的语言文件和清理无用的翻译内容。通过这些清理操作可以节省硬盘空间,提高系统的运行效率。 ... [详细]
  • 程序员如何选择机械键盘轴体?红轴和茶轴对比
    本文介绍了程序员如何选择机械键盘轴体,特别是红轴和茶轴的对比。同时还介绍了U盘安装Linux镜像的步骤,以及在Linux系统中安装软件的命令行操作。此外,还介绍了nodejs和npm的安装方法,以及在VSCode中安装和配置常用插件的方法。最后,还介绍了如何在GitHub上配置SSH密钥和git的基本配置。 ... [详细]
  • linux qt打开常用文件格式,设置Linux Qt文件默认打开方式为QtCreator
    Linux自定义文件打开方式也可参照文本抱歉,本文前段时间写的ubuntu下的Qt工程文件默认打开方式是不好用的,因为其他的文本文件也会受到影响,强迫症患者,每次打开Qt工程都是先 ... [详细]
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 1、首先执行下面命令,它会卸载CD设备,提示插入光盘sudoapt-cdrom--no-actadd(ifeverythingisOK,thenyoucanusesud ... [详细]
author-avatar
灬暗里着迷Dreamland
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有