![如何在 CentOS 7 中为用户添加“cap_sys_admin”权限?](https://linux22.com/image/136669/%E5%A6%82%E4%BD%95%E5%9C%A8%20CentOS%207%20%E4%B8%AD%E4%B8%BA%E7%94%A8%E6%88%B7%E6%B7%BB%E5%8A%A0%E2%80%9Ccap_sys_admin%E2%80%9D%E6%9D%83%E9%99%90%EF%BC%9F.png)
我尝试cap_sys_admin
为用户 myroot 添加权限。
为此,我将这些行添加到/etc/security/capabilities
:
cap_sys_admin myroot
none *
这条线/etc/pam.d/su
:
auth required pam_cap.so
但用户 myroot 没有这些权限。
我该如何向我的用户添加这些权限?
答案1
我相信该文件名为/etc/security/capability.conf
not /etc/security/capabilities
。我能够像这样工作:
$ cat /etc/security/capability.conf
cap_sys_admin user1
然后添加pam_cap.so
到PAM中。笔记:必须要pam_cap.so
排在前面pam_rootok.so
。
$ cat /etc/pam.d/su
#%PAM-1.0
auth optional pam_cap.so
auth sufficient pam_rootok.so
...
...
例子
如果我运行以下命令,则上述内容已到位su
:
$ su - user1
我可以验证该用户的能力:
$ capsh --print
Current: = cap_sys_admin+i
Bounding set =cap_chown,cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_linux_immutable,cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_ipc_lock,cap_ipc_owner,cap_sys_module,cap_sys_rawio,cap_sys_chroot,cap_sys_ptrace,cap_sys_pacct,cap_sys_admin,cap_sys_boot,cap_sys_nice,cap_sys_resource,cap_sys_time,cap_sys_tty_config,cap_mknod,cap_lease,cap_audit_write,cap_audit_control,cap_setfcap,cap_mac_override,cap_mac_admin,cap_syslog,35,36
Securebits: 00/0x0/1'b0
secure-noroot: no (unlocked)
secure-no-suid-fixup: no (unlocked)
secure-keep-caps: no (unlocked)
uid=1001(user1)
gid=1001(user1)
groups=1001(user1)
该输出中的关键行:
当前:= cap_sys_admin+i
套餐
这是在 CentOS 7.x 机器上完成的。我安装了这些与功能相关的软件包:
$ rpm -qa | grep libcap
libcap-ng-utils-0.7.5-4.el7.x86_64
libcap-2.22-9.el7.x86_64
libcap-ng-0.7.5-4.el7.x86_64
在处理功能时,它们提供了以下有用的工具:
$ rpm -ql libcap-ng-utils | grep /bin/
/usr/bin/captest
/usr/bin/filecap
/usr/bin/netcap
/usr/bin/pscap
$ rpm -ql libcap | grep /sbin/
/usr/sbin/capsh
/usr/sbin/getcap
/usr/sbin/getpcaps
/usr/sbin/setcap
笔记:如果您需要有关其用法的更多信息,请参阅这些工具各自的手册页。