web-dev-qa-db-ja.com

CentOS 7のユーザーに「cap_sys_admin」権限をどのように追加しますか?

ユーザーmyrootにcap_sys_admin権限を追加してみました。

このため、これらの行を/etc/security/capabilitiesに追加しました:

cap_sys_admin myroot
none *

そして、この行を/etc/pam.d/suに:

auth            required        pam_cap.so

ただし、ユーザーmyrootにはこれらの権限がありません。

これらの権限をユーザーに追加するにはどうすればよいですか?

3
Win32Sector

ファイルは/etc/security/capability.confではなく/etc/security/capabilitiesと呼ばれていると思います。私はこれを次のように機能させることができました:

$ cat /etc/security/capability.conf
cap_sys_admin   user1

次に、pam_cap.soをPAMに追加します。 注:pam_cap.sopam_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

注:これらのツールの使用法に関する詳細情報が必要な場合は、これらのツールの各マニュアルページを参照してください。

参考文献

7
slm