用户组和权限管理2

十七、linux文件系统上的特殊权限

    suid:s表示,sgid:s表示,sticky:t表示

    

    安全上下文

    前提:进程有属主和属组,文件有属主和属组

        任何一个可执行程序文件能不能启动为进程,取决发起者对程序是否拥有执行权限

        启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组

        进程访问文件是的权限,取决于进程的发起者

            进程的发起者,同文件的属主,则应用文件属主权限

            进程的发起者,属于文件属组,则应用文件属组权限

            应用文件其他权限

    可执行文件上suid权限

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

        启动为进程之后,其进程的属主为原程序文件的属主

        suid只对二进制可执行程序有效

        suid设置在目录上无意义

            chmod u+s file    

            chmod u-s file

[root@localhost testdir]# ll
total 0
-rwxrwxrwx 1 root wang 0 Aug  4 03:33 file1
-rwxrwxrwx 1 root wang 0 Aug  4 03:35 file2
[root@localhost testdir]# chmod u+s file1
[root@localhost testdir]# ll
total 0
-rwsrwxrwx 1 root wang 0 Aug  4 03:33 file1
-rwxrwxrwx 1 root wang 0 Aug  4 03:35 file2
[root@localhost testdir]# chmod u-s file1
[root@localhost testdir]# ll
total 0
-rwxrwxrwx 1 root wang 0 Aug  4 03:33 file1
-rwxrwxrwx 1 root wang 0 Aug  4 03:35 file2

    可执行文件上sgid权限

        任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限

        启动文件为进程之后,其进程的属主为源程序文件的属组

            chmod g+s file

            chmod g-s file

[root@localhost testdir]# chmod g+s file1
[root@localhost testdir]# ll
total 0
-rwxrwsrwx 1 root wang 0 Aug  4 03:33 file1
-rwxrwxrwx 1 root wang 0 Aug  4 03:35 file2
[root@localhost testdir]# chmod g-s file1
[root@localhost testdir]# ll
total 0
-rwxrwxrwx 1 root wang 0 Aug  4 03:33 file1
-rwxrwxrwx 1 root wang 0 Aug  4 03:35 file2

    目录上的sgid权限

        默认情况下,用户创建文件是,其属组为此用户所属的主组

        一旦某目录被设定了sgid,则对此目录有写权限的和用户在此目录中创建的文件所属的组为此目录的属组

        通常用于创建一个协作目录

                chmod g+s file

            chmod g-s file

[root@localhost testdir]# mkdir 1234
[root@localhost testdir]# ll -a
total 8
drwxr-xr-x   3 1000 user1   41 Aug  4 06:56 .
dr-xr-xr-x. 18 root root  4096 Aug  4 00:17 ..
drwxr-xr-x   2 root root     6 Aug  4 06:56 1234
-rw-r--r--+  1 root root     0 Aug  4 04:49 file1
-rwxrwxrwx   1 root wang     4 Aug  4 04:32 file2
[root@localhost testdir]# chmod o+w 1234
[root@localhost testdir]# useradd 1
[root@localhost testdir]# su - 1
[1@localhost ~]$ cd /testdir/1234
[1@localhost 1234]$ touch file1
[1@localhost 1234]$ ll file1
-rw-rw-r-- 1 1 1 0 Aug  4 06:58 file1
[1@localhost 1234]$ exit
logout
[root@localhost testdir]# chmod g+s 1234
[root@localhost testdir]# su - 1
Last login: Thu Aug  4 06:57:23 CST 2016 on pts/1
[1@localhost ~]$ cd /testdir/1234
[1@localhost 1234]$ touch file2
[1@localhost 1234]$ ll
total 0
-rw-rw-r-- 1 1 1    0 Aug  4 06:58 file1
-rw-rw-r-- 1 1 root 0 Aug  4 06:58 file2

    suicky位

        具有写权限的用户通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

        在目录设置sticky位,只有文件的所有者或root可以删除该文件

        sticky设置在文件上无意义

            chmod o+s file

            chmod o-s file

    特殊权限数字法

        suid:chmod 4777 file

        sgid:chmod 2777 file

        sticky:chmod 1777 dir

    权限为映射

        suid:user,占据属主的执行权限位

            s:属主拥有x权限

            S:属主没有x权限

        sgid:group,占据属组的执行权限位

            s:group属组拥有x权限

            S:group没有x权限

        sticky:other,占据other的执行权限位

            t:other拥有x权限

            T:other没有x权限

    设置文件特定属性

        chattr option file

            +A:锁定访问时间,访问不刷新时间

            +i:锁定文件不能删除,改名,更改

            +a:锁定文件,能看,能修改,不能改名,不能删除

            lsattr 显示特定属性

        作用:避免误操作,误删除。

[root@localhost testdir]# chattr +i file2
[root@localhost testdir]# rm -rf file2
rm: cannot remove ‘file2’: Operation not permitted
[root@localhost testdir]# echo "xxx" > file2
-bash: file2: Permission denied
[root@localhost testdir]# lsattr file2
----i----------- file2

十八、访问控制列表

    acl:access control list。实现灵活的权限管理

    除了文件的所有者,所属组和其他人,可以对更多的用户设置权限

        Centos7默认创建的xfs和ext4文件系统有acl功能

        Centos7之前版本,默认手工创建的ext4文件系统无acl功能

    acl生效顺序:所有者,自定义用户,自定义组,其他人

        setfacl option (d)(ug):username:权限 file

                u:用户

                g:组

                d:在这个目录下新建的文件有acl权限

            -m:修改acl权限

            -x:删除acl权限

            -M:调用脚本修改acl权限

            -X:调用脚本删除acl权限

useradd wangwenjie
[root@localhost testdir]# touch file1
[root@localhost testdir]# setfacl -m g:wangwenjie:rwx file1
[root@localhost testdir]# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
group::r--
group:wangwenjie:rwx
mask::rwx
other::r--

[root@localhost testdir]# setfacl -x g:wangwenjie file1
[root@localhost testdir]# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
group::r--
mask::r--
other::r--

        setfacl -k dir:删除默认acl权限

        setfacl -b file:清除所有acl权限

[root@localhost testdir]# ll
total 0
-rw-r--r--+ 1 root root 0 Aug  4 07:10 file1
[root@localhost testdir]# setfacl -b file1
[root@localhost testdir]# ll
total 0
-rw-r--r-- 1 root root 0 Aug  4 07:10 file1

        getfacl:查看特殊权限

        getfacl file1 | setfacl –set-file=-file2  复制file的acl权限给file2

[root@localhost testdir]# setfacl -m g:wangwenjie:rwx file1
[root@localhost testdir]# getfacl file1
# file: file1
# owner: root
# group: root
user::rw-
group::r--
group:wangwenjie:rwx
mask::rwx
other::r--

[root@localhost testdir]# touch file2
[root@localhost testdir]# getfacl file1 | setfacl --set-file=- file2
[root@localhost testdir]# getfacl file2
# file: file2
# owner: root
# group: root
user::rw-
group::r--
group:wangwenjie:rwx
mask::rwx
other::r--

    

    acl文件上的group权限是mask值(自定义用户,自定义组,拥有组的最大权限),而非传统的组权限。

        默认acl权限给x,文件也不会x权限

        bash cal 不能删除

    mask只影响除所有者和other的之外的人和组的最大权限

    nask需要与用户的权限进行逻辑与运算后,才能变成有限的权限

        用户或组的设置存在于mask权限设定范围内才会生效

            setfacl -m mask::权限 file

        –set选项会把所有的acl想都删除,用新的代替,需要注意的是一定要包含ugo的设置,不能像-m一样只是添加acl就可以

            setfacl –set u::权限,g::权限,o::权限 file

    备份和恢复acl

        主要的文件操作命令cp和mv都支持acl,只是cp命令需要加上-p参数,但是tar等常见的备份工具是不会保留目录和文件的acl信息。

            cp -p 保留权限

            getfacl -R 目录 > file1     把目录里的acl权限备份到file1文件里

            setfacl -R -b 目录     删除目录的所有acl权限

            setfacl -R –set-file=file1 目录     通过file1文件把目录的acl权限还原

原创文章,作者:DYW,如若转载,请注明出处:http://www.178linux.com/28960

(0)
DYWDYW
上一篇 2016-08-04 21:45
下一篇 2016-08-04 22:34

相关推荐

  • 流式传输的两大主流种类及流式传输特点

     流式传输定义很广泛,现在主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet 将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输(Realtime streaming)和顺序流式传输(progressive streaming)。(百度百科)     在网络上传输音/视频(英文…

    Linux干货 2015-04-10
  • sed编辑器使用

     简述       sed编辑器被称作流编辑器,和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim), 你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先 提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令…

    2017-06-19
  • Nginx基础整理

    目录结构如下: Nginx基础知识Nginx HTTP服务器的特色及优点 Nginx的主要企业功能 Nginx作为web服务器的主要应用场景包括: Nginx的安装安装环境 快速安装命令集合 各个命令解释 脚本 注意 安装故障总结故障一:没有安装pcre或pcre-devel 故障二:没有安装openssl和openssl-devel 常用的Nginx ht…

    Linux干货 2017-08-29
  • Shell脚本编程基础之一

      Linux为高效管理系统,提供了CLI命令行接口,供用户在命令提示符下输入命令,它有很多bash shell基础特,根据这些特性能够很灵活的使用命令,也支持使同时输入多个命令执行,命令之间用冒号分隔;但是要完成复杂多次重复性的操作,非常不便,系统管理工作变得很是繁忙,很难轻松完成工作任务;不过Linux的shell支持脚本编程,通过编写纯文本格…

    Linux干货 2016-08-15
  • 数据库存储引擎—InnoDB

    MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。

    Linux干货 2018-02-22
  • keepalived+nginx部署(单主模型)

    环境准备Centos7系统,后端服务器提供web服务。地址规划: VS1: 172.18.51.7 VS2:172.17.51.77 RS1:172.18.51.74 RS2:172.18.51.75 VirtualIP:172.18.51.82 拓扑图: 原理:nginx是高度模块化的应用程序,其中nginx_proxy模块即可实现负载均衡,将前端的用户请…

    2017-05-17

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-07 23:53

    文章的层次结构清晰明了,内容丰满,有理论有实践。