Je crois que le fichier s'appelle /etc/security/capability.conf
et non /etc/security/capabilities
. J'ai pu faire en sorte que cela fonctionne comme suit:
$ cat /etc/security/capability.conf
cap_sys_admin user1
Ensuite, ajoutez pam_cap.so
à PAM. REMARQUE: il est impératif que pam_cap.so
passe avant la ligne pam_rootok.so
.
$ cat /etc/pam.d/su
#%PAM-1.0
auth optional pam_cap.so
auth sufficient pam_rootok.so
...
...
Exemple
Ici, avec ce qui précède en place si j'exécute la commande su
suivante:
$ su - user1
Je peux vérifier les capacités de cet utilisateur:
$ 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)
La ligne de clé dans cette sortie:
Current: = cap_sys_admin+i
Packages
Cela a été fait sur une boîte CentOS 7.x. J'avais ces paquets installés concernant les capacités:
$ 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
Ils fournissent les outils utiles suivants pour gérer les fonctionnalités:
$ 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
REMARQUE: consultez les pages de manuel relatives à ces outils si vous avez besoin d'informations supplémentaires sur leur utilisation.
Références