Linux-权限管理(一)
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/fstab UUID=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: root user::rwx group::r-x #effective:r-x mask::r-x #mask权限变为了r-x other::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 ~]# visudo 99 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~]# visudo wulaoer 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~]# visudo wulaoer 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命令执行超级用户命令
本文出自 “吴老二” 博客,请务必保留此出处http://9827789.blog.51cto.com/9817789/1659507
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。