Linux默认权限设定

一、系统默认权限的设定


从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限

1、临时设定方法

 umask		                                  ###查看系统保留权限默认为022
 umask 077                                    ###修改该系统保留权限为077,此设定为临时设定,只当前shell中生效

2、永久设定方式

 vim /etc/bashrc		                       ###shell
 70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 71        umask 002	                       ###普通用户umask
 72     else
 73        umask 077                           ###超级用户umask                                                                      
 74     fi

vim /etc/profile	                           ###系统
 59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 60     umask 002	                           ###普通用户umask
 61 else
 62     umask 077                              ###超级用户 umask                                                                                         
 63 fi

以上两个文件umask设定值必须保持一致

通过下面的命令让设定立即生效:

 source /etc/bashrc   或者  . /etc/bashrc
 source /etc/profile  或者  . /etc/profile

二、文件的访问控制(acl列表)


1、设置权限

 [root@server ~]# mkdir /dream
 [root@server ~]# ll /dream
 total 0
 [root@server ~]# ll /dream -d
 drwxr-xr-x. 2 root root 6 Mar 19 02:50 /dream                                 ###我们可以发现我们新建的目录第一列为".",表示没有特殊权限
 [root@server ~]# useradd dream
 [root@server ~]# setfacl -m u:dream:rwx /dream                                ###setfacl -m m:002 /dream当然我们也可以用mask值来设置
 [root@server ~]# getfacl /dream/

我们可以发现我们的这样就会对此文件有root一样的权限,现在我们看的权限就不是ls所看到的权限了

Linux默认权限设定_第1张图片

2、删除acl列表用户或者组及关闭列表

(1)删除用户
 setfacl -x :	文件|目录
 setfacl -x u:dream /dream
 getfacl /dream
(2)关闭列表
 setfacl -b 文件|目录
 setfacl -b /dream
(3)结果

我们可以发现"+"变成了"."

Linux默认权限设定_第2张图片
三、特殊权限的设定


1、suid(冒险位 只有文件)

只针对二进制可执行文件,文件内记录的程序产生的进程的所有人为文件所有人和进程发起人身份无关,加上s后对对文件的操作都是以属主的身份来进行的

设定方式:

 chmod u+s file
 suid=4
 chmod 4xxx file

2、sgid(强制位 文件目录)

  • 对文件:

    • 只针对二进制可执行文件,任何人运行二进制文件程序时程序产生的进程的所有组都是文件的所有组和程序发起人组的身份无关
  • 对目录:

    • 当目录有sgid权限后,目录中新建的所有文件的所有组都自动归属到目录的所有组之中,和文件建立者所在的组无关
      设定方式:
 chmod g+s file|dir
 sgid=2
 chmod 2xxx file|dir
 eg.
 chmod g+s /usr/bin/mkdir

切换到其他用户,使用mkdir命令,文件用户组变成root

3、sticky(粘制位)

t权限:
只针对与目录,当一个目录上有t权限,那么目录中的文件只能被文件的拥有者删除

设定方式:

 chmod o+t direcotry
 t=1
 chmod	1777 direcotry
 eg.在root下
 mkdir -p /redhat
 chmod 777 /redhat
 chmod o+t direcotry

切换到普通用户下,无法删除目录

你可能感兴趣的:(运维)