Linux运维第二阶段(五)权限管理
一、权限管理(解决用户和身份不足的问题)
》#dumpe2fs -h /dev/sda2 (查询指定分区详细文件系统信息的命令,-h仅显示超级块中的详细信息)
#mount -o remount,acl / (重新挂载根分区,加入acl权限)
》acl基本命令:
#getfacl 文件名 (查询文件的acl权限)
#setfacl -m u:用户名:权限 文件名
#setfacl -m g:组名:权限 文件名
#setfacl -m u:用户名:权限 �CR /test (赋予递归acl权限,只能赋予目录)
#setfacl -m d:u:用户名:权限�CR /test (加入默认权限,默认权限只能赋予目录)
#setfacl -b /test (删除acl所有权限)
#setfacl -x u:aa (删除指定用户和用户组的acl权限)
注意:如果给目录赋予acl权限,以下两条命令都要:
#setfacl -m u:用户名:权限 /test (只对已经存在的文件生效)
#setfacl -m d:u:用户名:权限 /test (只对未来要新建的文件生效)
最大有效权限mask(实际设置的权限与最大权限相与才是有效权限,effective)
#setfacl -m m:rx project/ (设定mask权限为rx,使用“m:权限”格式)
#getfacl project/
二、sudo授权
#visudo (与操作vi一样)
root ALL=(ALL) ALL
用户名 被管理主机的IP=(可使用的身份) 授权命令(绝对路径)
%wheel ALL=(ALL) ALL
%组名 被管理主机的IP=(可使用的身份) 授权命令(绝对路径)
用户名/组名:代表root给哪个用户或组赋予命令,注意组名前加“%”
被管理主机的IP:如果写ALL代表可以管理任何主机,如果写固定IP,代表用户可以管理指定的服务器。这里的IP指的是用户可以管理哪个IP地址的服务器,如果一台独立的服务器那写IP地址和ALL都一样。而写入网段,只有对NIS用户和密码集中管理的服务器才有意义。这里写本机的IP地址,代表指定的用户可以从任何来源IP地址来管理当前服务器,并不是只允许本机的用户使用指定命令。
可使用的身份:把来源用户切换成什么身份使用,ALL代表可切换成任意身份,这个字段可省略
授权命令:代表root把什么命令授权给普通用户,细化到选项和参数,注意命令一定要写成绝对路径
例:授权用户lamp可以重启服务器
#visudo
lamp ALL=/sbin/shutdown -r now
$sudo -l
例:授权一个用户管理你的web服务器,从三处着手:可使用apache管理脚本;可修改apache配置文件;可更新网页内容。
lamp ALL=/etc/rc.d/init.d/httpd reload, /etc/rc.d/init.d/httpd configtest
注:重新读取配置文件让更改的设置生效(reload);检测apache语法错误(configtest);不允许执行stop/restart等操作
lamp ALL=/bin/vi /etc/httpd/conf/httpd.conf
注:授权可使用root身份使用vi编辑配置文件
#chown lamp /var/www/html/
注:授权lamp对此目录具有写权限或更改此目录的属主为lamp
例:授权aa用户可创建新用户
aa ALL=/usr/sbin/useradd
aa ALL=/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd “”, !/usr/bin/passwd root
三、文件特殊权限
1、setuid:只有可执行的二进制程序才能设定suid权限;命令执行者要对该程序拥有x权限;命令执行者在执行该程序时获得该程序文件属主的身份;只在该程序执行过程中有效。
#ll /etc/shadwo
#ll /usr/bin/passwd -rwsr-xr-x
危险的suid:#chmod u+s /usr/bin/vim
几点建议:关键目录严格控制w权限,如:/,/usr等;密码严格遵守三原则;对系统中默认具有setuid的文件作一列表,定时检查有没有这之外的文件被设置了suid权限。
2、setgid
》针对文件:只有可执行的二进制程序才能设置sgid;命令执行者要对该程序拥有w权限;执行时组身份升级为该文件的属组;在程序执行过程中有效。
#ll /var/lib/mlocate/mlocate.db
#ll /usr/bin/locate
》针对目录:普通用户必须对此目录拥有rx;普通用户在此目录中的有效组会变成此目录的属组;当普通用户对此目录拥有w,新建文件的默认属组是这个目录的属组。
3、sticky BIT:粘着位,仅针对目录有效;普通用户对该目录拥有WX,可在此目录拥有写权限;设置了SBIT,普通用户有W,只能删自己建立的文件,不能删其它用户建立的文件。
SUID:4 SGID:2 SBIT:1
#chmod 4755 ftest
#chmod 2755 ftest
#chmod 1755 ftest
四、chattr (文件系统属性权限)
#chattr [+-=] i|a|e 文件或目录
i:对文件:不允许删除、改名、不能添加修改数据,已锁死;
对目录:只能修改目录下文件的数据,不允许建立和删除文件。
a:对文件:可增加数据,但不能删除和修改数据;
对目录:只允许在目录中建立和修改文件,但不允许删除
e:linux中绝大多数的文件默认拥有e属性,表示该文件使用ext文件系统进行存储,不能用#chattr -e 取消e属性。
#lsattr -a|-d 文件名 (-a,all;-d,directory)