• ACL权限

1、  权限概述

2、  开启ACL

[root@localhost~]# dumpe2fs -h /dev/sda1#dumpe2fs命令是查询指定分区详细文件系统信息的命令选项:      -h      仅显示超级块中的信息,而不是显示磁盘块组的详细信息。………..省略部分输出…………Defaultdirectory hash:   half_md4………..省略部分输出…………

如果没有开启,手工开启分区的ACL权限:

[root@localhost ~]# mount -o remount,acl /#重新挂载根分区,并挂载加入acl权限也可以修改/etc/fstab文件,永久开启ACL权限:[root@localhost ~]# vi /etc/fstabUUID=03502b44-af6b-494a-9c8d-7f3b96ae9dfa /  ext4 defaults  1 1  #加入acl[root@localhost ~]# mount -o remount /#重新挂载文件系统或重启系统,使修改生效

3、  ACL基本命令

getfacl 文件名              查询文件的acl权限setfacl 选项  文件名        设定acl权限选项:  -m                  设定权限        -b                  删除权限setfacl -m u:用户名:权限 文件名setfacl -m g:组名:权限  文件名setfacl -m u:aa:rwx  /test    给test目录赋予aa是读写执行的acl权限setfacl -m u:cc:rx -R soft/   赋予递归acl权限,只能赋予目录-R递归Setfacl  -b d:u:aa:rwx -R /test    acl默认权限。注意:默认权限只能赋予目录,如果给目录赋予acl权限,两条命令都要输入-R 递归  -m    u:用户名:权限       只对已经存在的文件生效-m    d:u:用户名:权限     只对未来要新建的文件生效

         4、最大有效权限mask

[root@localhost~]# setfacl -m m:rx project/#设定mask权限为r-x。使用“m:权限”格式[root@localhost~]# getfacl project/# file: project/# owner: root# group: rootuser::rwxgroup::r-x                            #effective:r-xmask::r-x                             #mask权限变为了r-xother::r-x

5、  删除ACL权限

[root@localhost ~]# setfacl -x u:aaproject/#删除指定用户和用户组的ACL权限[root@localhost ~]# setfacl -bproject/#会删除文件的所有的ACL权限

   二、audo授权       给普通用户赋予部分管理员权限

/sbin/            此目录下命令只有超级用户才可以使用/usr/sbin/

1、  root身份:

visudo     赋予普通用户权限命令,命令执行后和vi一样使用98 root ALL=(ALL)  ALL#用户名    被管理主机的地址=(可使用的身份)  授权的命令(绝对路径)105 # %wheel  ALL=(ALL)  ALL#%组名      被管理的主机的地址=(可使用的身份)  授权的命令(绝对路径)  用户名/组名:代表root给哪个用户或用户组赋予命令,注意组名前加“%”

      用户可以用指定的命令管理指定IP地址的服务器。如果写ALL,代表可以管理任何主机,如果写固定IP,代表用户可以管理指定的服务器。(可以通过“man 5 sudoers”帮助可以查看到这里的IP指定的是用户可以管理哪个IP地址的服务器。如果是一台独立的服务器,这里写ALL和你服务器的IP地址,作用是一样的。而写入网段,只有对NIS服务器这样用户和密码集中管理的服务器才有意义)。这里写的IP地址,不代表只允许本机的用户使用指定命令,而代表指定的用户可以从任何IP地址来管理当前服务器。

可使用身份:就是把来源用户切换成什么身份使用,(ALL)代表可以切换成任意身份。这个字段可以省略

授权命令:代表root把什么命令授权给普通用户。默认是ALL,代表任何命令,这个当然不行。如果需要给命令授权,写入命令就可以了,不过要注意一定要写命令绝对路径

2、  举例

1)  举个例子,比如授权用户wulaoer可以重启服务器,则由root用户添加如下行:

[root@localhost ~]# visudo99 wulaoer ALL=/sbin/shutdown -r now[wulaoer@localhost ~]$ sudo –l                          #在普通用户上查看需要输入root的密码用户 wulaoer 可以在该主机上运行以下命令:(root) /sbin/shutdown -r now              #授权的命令

2)  举例授权用户管理web服务,不要自己插手以后修改设置更新网页什么都可以不要管理了。

首先要分析授权用户管理Apache至少要要实现那些基本授权:

1、  可以使用Apache管理脚本

2、  可以修改Apache配置文件

3、  可以更新网页内容

假设Apache管理脚本程序为/etc/rc.d/init.d/httpd

为满足条件一,用visudo进行授权:[root@localhost~]# visudowulaoer  192.168.216.159=/etc/rc.d/init.d/httpd,/etc/rc.d/init.d/httpd configtest授权用户wulaoer可以连接192.168.216.159上的Apache服务器,通过Apache管理脚本重新读取配置文件让更改的设置生效(reload)和可以检测Apache配置文件语法错误(configtest),但不允许其执行关闭(stop)、重启(restart)等操作。为满足条件二,同样使用visudo授权:[root@localhost~]# visudowulaoer  192.168.216.159=/binvi  /etc/httpd/cong/httpd.conf授权用户wulaoer可以使用root身份使用vi编辑Apache配置文件。以上两种sudo的设置,要特别注意,很多朋友使用sudo会犯两个错误:第一,授权命令没有细化到选项和参数;第二,认为只能授权管理员执行的命令。条件三则比较简单,见识网页存放目录为/var/www/html,则只需要授权wulaoer对此目录具有写权限或者索性更目录所有者为wulaoer即可。如果需要,还可以设置wulaoer可以通过FTP等文件共享服务更新网页。

3)、授权aa用户可以添加其他普通用户

 aa     ALL=/usr/sbin/useradd             赋予aa添加用户权限,命令必须写入绝对路径aa     ALL=/usr/bin/passwd                赋予改密码权限,取消对root的密码修改aa     ALL=/usr/bin/passwd  [A-Za-z]*,  !/usr/bin/passwd “”,  !/usr/bin/passwd  root

aa身份

 sudo /usr/sbin/useradd  ee 普通用户使用 sudo命令执行超级用户命令