我们的系统如下:
- CentOS7
- 用于身份验证的 NIS
- nfs 共享上的主文件夹
- 所有机器的 NFS 共享上的单个 sudoers 文件。
到目前为止,第一项和第二项工作正常。但是,当我将sudo.conf
文件更改为指向全局 sudo 文件时
/fs/global
是 NFS 共享的挂载点
在文件内部/etc/sudo.conf
:
Plugin sudoers_policy sudoers.so sudoers_file=/fs/global/sudo/common/etc/sudoers
每当我尝试执行此操作时visudo
,我都会被拒绝权限(以 root 身份登录控制台)
我认为我已经将问题缩小到 SELinux 不满意。我知道这一点是因为如果我禁用 SELinux,它就会起作用。但对于这组特定的服务器,我加载的应用程序需要 SELinux。那么,我必须施展什么魔法才能让它起作用呢?
我使用的 authconfig
/sbin/authconfig --enablenis
--nisdomain="{{ pan_nis_domain }}"
--nisserver="{{ pan_nis_fqdn }}"
--passalgo="md5"
--enablecache
--update
以及我目前拥有的 SELinux 的 ansibles
- name: Set ypbind to allow NIS to run
seboolean:
name: allow_ypbind
state: yes
persistent: yes
- name: Allow home folders mapped across NFS drives
seboolean:
name: use_nfs_home_dirs
state: yes
persistent: yes
编辑:
审计日志未显示任何错误
[root@cent1 audit]# tail -5 audit.log
type=CRYPTO_KEY_USER msg=audit(1553186275.802:2494): pid=26871 uid=0 auid=800 ses=5 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=destroy kind=server fp=SHA256:79:94:71:c9:57:85:a7:cf:86:7c:ae:f7:29:7c:4c:16:75:33:a5:6f:17:e8:5e:f6:1c:73:75:56:e8:f1:91:17 direction=? spid=26875 suid=800 exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
type=USER_AUTH msg=audit(1553186296.734:2495): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=pam_unix acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=USER_ACCT msg=audit(1553186296.736:2496): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=CRED_ACQ msg=audit(1553186296.765:2497): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_unix acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=USER_START msg=audit(1553186296.776:2498): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_keyinit,pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_xauth acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
[root@cent1 audit]# visudo
visudo: /fs/global/sudo/common/etc/sudoers: Permission denied
[root@cent1 audit]# tail -5 audit.log
type=CRYPTO_KEY_USER msg=audit(1553186275.802:2494): pid=26871 uid=0 auid=800 ses=5 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=destroy kind=server fp=SHA256:79:94:71:c9:57:85:a7:cf:86:7c:ae:f7:29:7c:4c:16:75:33:a5:6f:17:e8:5e:f6:1c:73:75:56:e8:f1:91:17 direction=? spid=26875 suid=800 exe="/usr/sbin/sshd" hostname=? addr=? terminal=? res=success'
type=USER_AUTH msg=audit(1553186296.734:2495): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication grantors=pam_unix acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=USER_ACCT msg=audit(1553186296.736:2496): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=CRED_ACQ msg=audit(1553186296.765:2497): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:setcred grantors=pam_unix acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
type=USER_START msg=audit(1553186296.776:2498): pid=26893 uid=800 auid=800 ses=5 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:session_open grantors=pam_keyinit,pam_keyinit,pam_limits,pam_systemd,pam_unix,pam_xauth acct="root" exe="/usr/bin/su" hostname=cent1.mycompany.com addr=? terminal=pts/0 res=success'
[root@cent1 audit]#
答案1
@Michael Hampton,事实证明你是对的。我是这个网络的新手,仍在学习,结果发现他们在这里使用的 sudo 的自定义版本删除了所有安全功能,例如对 sudoers 文件的访问。使用普通 sudo,如果失败,使用自定义版本,它就可以工作。所以我将一切都配置为使用我们的内部自定义版本。谢谢