Linux企业级文件权限管理剖析

  1.  查看文件权限

查看file1的文件属性

-rw-r--r-- 1 root root 0 Jan  3 05:56 file1

-   rw-r--r-- 1  root root 0 Jan  3 05:56 file1

<1>   <2> <3> <4> <5> <6><7>         <8>

<1>文件类型列

- 表示文件类型

l表示软连接类型

s多线条socket接口:类似于网络服务

b 块设备:存储

c 字符设备

p管道

<2>文件的权限

rw-|r--|r--

[u]|[g]|[o]

[u]用户自己的权限

[g]用户所在组的权限

[o]其他用户的权限

<3>对文件:文件的硬链接的个数(文件在硬盘中被储存了几次)

   对目录:目录中的目录个数

<4>文件的所有人

<5>文件的所有组

<6>对文件:文件的大小

   对目录:目录中文件元数据

<7>文件内容被修改的时间

注:记录文件信息的部分每一部分一个字节

  1. 更改方式

chmod <u>|<g>|<o> +|-|= r|w|x /mnt/test/file1  ###更改文件的用户|组用户|其他用户的读||运行权限

如上图所示为file1加上用户执行权限

上图运行了chmod o=rwx file2

chmod u+x file1

chmod g-w file2

chmod o+w file3

chmod ug-r file3

chmod u-r,g+x file2

chmod -r fiel1  ####给用户、组用户、其他用户,都减掉读的权限

chmod -w file2  ###-w,+w操作只能对用户起作用和go不能合并

简化操作

rwx

421

4+2+1=7

更改用户的权限可以用421的组合来更改

chmod 777 file1

如上图将用户权限更改为777则是将rwx权限分别付给ugo,依此类推。

应用:

新建三个组名称分别是shengchan jishu caiwu

新建用户tom harry leo,要求如下

1.tomshengchan组成员

2.harrycaiwu组成员

3.leojishu组成员

新建用户adminadmin不属于以上提到的三个组的成员

新建目录,要求如下

/pub是公共组目录,任意组人员可以读、写、执行

/sc是生产组目录,只有生产组人员可以

/cw是财务组目录,只有财务组人员可以写入

 

操作如下:

结果如下:

文件属性

user,group

 

  1.  修改文件所有人、所在组

命令:

chown leo file1         ###修改文件的所有人 

chgrp  shengchan file1 ###修改文件的所在组

chown  leojishu file1 ###同时修改文件的所有人和所在组

 

  

 

  1.   acl列表的查看

 

如果文件区权限后面显示加号则代表acl开启

[root@foundation80 mnt]# ls -l file

-rw-rwxr--+ 1 root root 0 Jan  3 21:06 file

         ^acl开启

getfacl file 查看文件的acl

[root@foundation80 mnt]# getfacl file

#file: file         ####文件名称

# owner: root     ####文件拥有者

# group: root     ####文件拥有组

user::rw-         ####文件拥有者对文件的权限

user:leo:rwx     ####制定用户对文件的权限

group::r--        ####文件拥有者对文件的权限

mask::rwx       ####能赋予用户的最大权力阈值

other::r--         ####其他人对文件的权限、

mask

在权限列表中标示着能生效的权力值

当用chmod -m g-w file减小文件所在组的权限时,如果开启了acl会减到mask值上(所以在开启文件的acl时不要轻易用chmod命令来修改文件的组权限)

恢复mask

setfacl -m mrwx file

####umask#####

Vim /etc/profile   ####系统配置文件

Umask :将临时保留权限修改为077

 59     if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then

 60     umask 002    ####普通用户的umask

 61 else

 62     umask 077    ####root用户的umask

 63 fi

 

 

 

vim /etc/bashrc

  if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; th    en

 71        uma

sk 002   ####普通用户的保留权限

 72     else

 73        umask 077   ####超级用户的保留权限

 74     fi

更改之后此新设定未立刻生效

source /etc/profile

source /etc/bashrc

系统读取这两个文件之后设定永久生效

上图所示,在更改root用户的默认保留权限之后root用户创建的file4文件的权限信息为rw-------

 

####特殊权限###

 sticky     ####粘滞位

作用:只针对目录生效,当一个目录上有sticky权限设置时

      在这个目录中的文件只能被目录所有者删除

设定方式:

   chmod  o+t dir

   chmod  1xxx dir

上图所示,root用户建立/pub目录并给/pub目录设置了粘置位用leo用户在/pub目录下创建目录leofile1,切换至harry用户进行删除操作,系统提示删除操作不被允许

 sgid    ####强制位

  作用 针对二进制可执行文件

          当文件上有sgid时任何人执行该文件产生的进程都属于该文件的组

         针对目录:当目录上有sgid时任何人在此目录下建立的文件都属于该目录所在的组

设定方式:

chmod  g+s  file|dir

chmod  2xxx  file|dir 

leo设置了强制位,root用户在leo目录在创建了test1 目录,查看test组属于leo

watch命令添加强制位

运行watch命令

上图所示此时watch进程所属于的组是student

 suid         ####冒险位

作用:只针对二进制可执行文件

当任何用户在运行该程序所产生的进程都属于该文件的所有人

设定方式:

chmod u+s file

chmos 4xxx file

/bin/watch文件的权限设置为755时,用leo用户运行watch命令时,查看watch的进程用户是leo组是leo(原始权限)

####更改文件的权限为4755##

 

上图所示:用leo用户运行时,此时进程所有人变成了root(文件所有人)

 acl列表的管理

getacl file        ###查看acl开启的文件的权限

setfacl -m uusernamerwx file   ###设定指定用户的权限

setfacl -m ggroupnamerwx file   ###指定组的权限

上图所示:给生产组设定权限rwx

setfacl -x u:username file     ###删除指定用户的指定权限

setfacl -b file        ###关闭file上的acl列表

上图所示file文件的文件权限之后的加号消失,表示着acl列表关闭

 

acl列表的作用:可以指定用户对于文件的权限

猜你喜欢

转载自blog.csdn.net/halobios_/article/details/85712842
今日推荐