zoukankan      html  css  js  c++  java
  • linux权限管理_文件特殊权限

    一、SetUID功能

    设定SetUID的方法

    4代表SUID s代表SUID权限 S代表报错了,原因没有执行权限

    # chmod 4755 文件名(最好用这种方法)

    # chmod u+s 文件名

    取消SetUID的方法

    # chmod 755 文件名

    # chmod u-s 文件名

    • 只有可以执行的二进制程序才能设定SUID权限
    • 命令执行者要对该程序拥有执行权限
    • 命令执行者在执行该程序是获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
    • SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

    查看SUID权限

    # ll /usr/bin/passwd

     

    二、SetGID功能

    设定SetGID的方法

    2代表SGID s代表SGID权限

    # chmod 2755 文件名(最好用这种方法)

    # chmod u+g 文件名

    取消SetGID的方法

    # chmod 755 文件名

    # chmod u-g 文件名

    SetGID针对文件的作用

    • 只有可以执行的二进制程序才能设定SGID权限
    • 命令执行者要对该程序拥有执行权限
    • 命令执行者在执行该程序时,组身份升级为该程序文件的属组
    • SetGID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

        locate命令属于mlocate包,使用命令前要先更新数据库updatedb,查找速度老快啦,但是locate命令需要实时跟新数据库,否则新创建的文件检索不到,而且/tmp目录下的文件也无法查询

    • /usr/bin/locate是可执行的二进制程序,可以赋予SGID
    • 执行用户test对/usr/bin/locate命令拥有执行权限
    • 执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db数据库拥有r权限,所以普通用户可以使用locate命令查询mlocate数据库
    • 命令结束,test用户的组身份返回test组

    SetGID针对目录的作用

    • 普通用户必须对此目录拥有r和x权限,才能进入此目录
    • 普通用户在此目录中的有效组会变成此目录的属组
    • 若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组

    举例说明:

    # mkdir /tmp/test     创建test目录

    # chmod 2777 /tmp/test/  给test目录赋予SGID权限

    # su – acl   切换到acl用户

    # cd /tmp/test/  进入test目录

    # touch test.txt 创建test.txt文件

    # ll  查看test文件属性所有者是test,但是所属组是root

    三、Sticky BIT功能(黏着位)(如tmp目录)

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

    设定Sticky BIT的方法

    1代表SBIT t代表SBIT权限

    # chmod 1755 文件名

    # chmod o+t 文件名

    取消SBIT的方法

    # chmod 755 文件名

    # chmod o-t 文件名

    四、文件系统属性权限chattr权限(该权限针对root用户)

    语法:

    # chattr [+-=][选项] 文件名 设置chattr属性

    # lsattr –a 文件名 查看chattr属性

    -R递归显示子目录下的文件,-d查看目录本身

    选项:

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

    a:如果对文件设置了a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么直允许在目录中建立和修改文件,但是不允许删除。

    五、系统命令sudo权限

    • root把本来只能超级用户执行的命令赋予普通用户来执行
    • sudo的操作对象是系统命令

    设置方法:

    # visudo 或者 # vim /etc/sudoers

     

    root  ALL=(ALL)  ALL

    用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

    %test ALL=(ALL)  ALL

    组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)

  • 相关阅读:
    从yum源下载软件包
    本地yum源建立
    Redis慢查询,redis-cli,redis-benchmark,info
    Centos6.6安装mysql记录
    Nginx常用命令(加入系统服务)
    Nginx+keepalived双机热备(主从模式)
    Nginx反向代理+负载均衡简单实现
    Centos7安装Python3.5
    CentOS 6.4下OpenSSH升级到6.7操作
    Redis详解
  • 原文地址:https://www.cnblogs.com/fansik/p/5870854.html
Copyright © 2011-2022 走看看