selinux阻止执行pam_exec命令

阿基罗斯

我正在尝试将计算机设置为在用户每次登录时(通过ssh,通过gdm或tty)通知我。现在,我正在设置sshd,并将其添加到/etc/pam.d/sshd

session optional pam_exec.so /etc/pam_scripts/notify.sh

这是可选的,因为即使命令由于某种原因失败,我仍然希望通过ssh登录。

首先:按照此处的建议我将此行放置在之后 pam_selinux close之前 pam_selinux open

如果我whoami在脚本中放置a并记录执行, I can see that the command is run as根目录,尤其是:

uid=0(root) gid=0(root) groups=0(root) context=system_u:system_r:sshd_t:s0-s0:c0.c1023

问题是,从日志中,我可以看到selinux阻止curl了脚本中使用的的执行

AVC avc:  denied  { name_connect } for  pid=1810 comm="curl" dest=443 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:http_port_t:s0 tclass=tcp_socket permissive=0

我的脚本具有以下标签:

unconfined_u:object_r:etc_t:s0

我尝试使用更改上下文chcon,但是我总是会拒绝权限(即使使用root用户),因此我可能正在做一些我不完全了解的事情。

顺便说一句,我也尝试seteuid在pam规则中使用,但没有任何变化。

通常,我不理解如何确定selinux授予执行访问权限的脚本所需的上下文。

另外,由于脚本可以正常运行,因此它似乎比curl本身更与curl相关,但是selinux阻止了curl的运行。

我该如何解决这个问题?

幼虫

我看到您已经找到了答案,但是由于我一直在从事此工作,因此我将其保留在后头:


当您遇到这样的selinux拒绝时,您可以使用该audit2allow工具生成更新的selinux策略,以允许该操作。首先,您可能希望将selinux置于许可模式:

setenforce 0

现在,登录并确保您的PAM配置按预期工作。我们这样做是因为在第一个拒绝之后很有可能还会出现其他selinux拒绝,并且以宽松模式运行将确保它们都被记录下来。

现在,您可以将selinux放回强制模式:

setenforce 1

运行audit2allow -a这将生成如下内容:

#============= sshd_t ==============

#!!!! This avc can be allowed using one of the these booleans:
#     authlogin_yubikey, nis_enabled
allow sshd_t http_port_t:tcp_socket name_connect;

我之所以说“类似”,是因为(a)就像我之前说的,可能与您当前的PAM配置有关的其他拒绝,并且(b)此命令查看审核日志中的所有条目,因此您可以获得以前拒绝的结果。实际上与您当前的问题无关。

在这种情况下,我们看到可以通过设置现有的selinux布尔值来允许拒绝的操作。看起来像这样:

setsebool nis_enabled=1

那可能就是您所需要的。另外,您可以像下面这样生成对您的selinux策略的更新:

audit2allow -a -M local

这将生成一个新的策略文件local.pp您可以通过运行以下命令来激活它:

semodule -i local.pp

有一个关于SELinux的工作一些好的信息,在这里,包括使用的更详细的介绍audit2allow

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用pam_exec在特定点终止pam处理

来自分类Dev

使用pam_exec用于openssh的帐户的外部脚本

来自分类Dev

执行SchTasks时,“ exec”命令阻止php脚本的运行

来自分类Dev

与su一起使用pam_exec时,sed权限被拒绝

来自分类Dev

selinux阻止对文件centos的执行访问

来自分类Dev

阻止命令在 ubuntu 中执行

来自分类Dev

SELinux阻止procmail执行dspam,但没有AVC消息

来自分类Dev

Python Tkinter阻止执行按钮命令

来自分类Dev

阻止某些命令以超级用户权限执行

来自分类Dev

SELinux阻止了大佬们

来自分类Dev

php exec()未执行命令

来自分类Dev

无法执行Docker exec * ID * -it命令

来自分类Dev

Java中的cleartool命令执行-runtime()。exec

来自分类Dev

nodejs的“ exec”命令未正确执行“ sed”命令

来自分类Dev

启用SELinux后,如何允许PHP在exec()调用中使用at命令?

来自分类Dev

阻止/阻止命令(如果已在最近的x秒/分钟内执行了该命令)

来自分类Dev

IJulia.notebook() 命令不执行并阻止终端

来自分类Dev

SELinux阻止/ usr / bin / bash通过php-fpm对nginx中的myfilename.sh文件执行访问

来自分类Dev

使用Java中的JSch exec从ArrayList执行命令列表

来自分类Dev

os.Exec和/ bin / sh:执行多个命令

来自分类Dev

使用exec执行命令来设置变量

来自分类常见问题

从find命令在exec上执行grep的最佳方法是哪种?

来自分类Dev

无法通过java Runtime.getRuntime()。exec()执行CURL命令

来自分类Dev

无法使用PHP shell_exec()执行telnet命令

来自分类Dev

无法使用Terraform Provisioner Remote-exec执行远程命令

来自分类Dev

如何在lerna exec命令中执行npm运行测试?

来自分类Dev

从find命令在exec上执行grep的最佳方法是哪种?

来自分类Dev

获取os.exec的输出以显示执行进度的命令

来自分类Dev

Java Runtime.exec无法正确执行JSTACK命令

Related 相关文章

  1. 1

    使用pam_exec在特定点终止pam处理

  2. 2

    使用pam_exec用于openssh的帐户的外部脚本

  3. 3

    执行SchTasks时,“ exec”命令阻止php脚本的运行

  4. 4

    与su一起使用pam_exec时,sed权限被拒绝

  5. 5

    selinux阻止对文件centos的执行访问

  6. 6

    阻止命令在 ubuntu 中执行

  7. 7

    SELinux阻止procmail执行dspam,但没有AVC消息

  8. 8

    Python Tkinter阻止执行按钮命令

  9. 9

    阻止某些命令以超级用户权限执行

  10. 10

    SELinux阻止了大佬们

  11. 11

    php exec()未执行命令

  12. 12

    无法执行Docker exec * ID * -it命令

  13. 13

    Java中的cleartool命令执行-runtime()。exec

  14. 14

    nodejs的“ exec”命令未正确执行“ sed”命令

  15. 15

    启用SELinux后,如何允许PHP在exec()调用中使用at命令?

  16. 16

    阻止/阻止命令(如果已在最近的x秒/分钟内执行了该命令)

  17. 17

    IJulia.notebook() 命令不执行并阻止终端

  18. 18

    SELinux阻止/ usr / bin / bash通过php-fpm对nginx中的myfilename.sh文件执行访问

  19. 19

    使用Java中的JSch exec从ArrayList执行命令列表

  20. 20

    os.Exec和/ bin / sh:执行多个命令

  21. 21

    使用exec执行命令来设置变量

  22. 22

    从find命令在exec上执行grep的最佳方法是哪种?

  23. 23

    无法通过java Runtime.getRuntime()。exec()执行CURL命令

  24. 24

    无法使用PHP shell_exec()执行telnet命令

  25. 25

    无法使用Terraform Provisioner Remote-exec执行远程命令

  26. 26

    如何在lerna exec命令中执行npm运行测试?

  27. 27

    从find命令在exec上执行grep的最佳方法是哪种?

  28. 28

    获取os.exec的输出以显示执行进度的命令

  29. 29

    Java Runtime.exec无法正确执行JSTACK命令

热门标签

归档