问题标签 [selinux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
15 回答
14009 浏览

linux - 你禁用 SELinux 吗?

我想知道这里的人们是否通常在默认情况下启用 SELinux 的安装中禁用它?如果是这样,你能解释为什么,它是什么样的系统,等等?

我想尽可能多地对此发表意见。

0 投票
4 回答
414 浏览

linux - 是否可以在进程级别限制 linux 可用的标准流?

我希望能够生成一个只能访问 stdin、stdout 和 stderr 的 linux 进程(不多也不少)。我可以在流程级别本身执行此操作吗?我还含蓄地声明(矛盾修饰法)我不希望生成的进程能够更改流的另一端指向的“事物”。

比喻:

  • 该进程有一个来自某个地方的输入管道,它无法更改管道的起始位置,因此它无法控制输入的来源。
  • 该进程具有输出和错误管道,它无法更改输出管道的另一端指向的位置,因此它无法控制输出的位置。
  • 它无法创建任何新管道。

我目前也在看 SElinux。这是否允许我创建一个只能访问这三个流的进程?谢谢你。

0 投票
8 回答
1904 浏览

linux - Linux 中的最佳安全实践

在维护 Linux 服务器时,您强烈推荐哪些安全最佳实践?
(即打开防火墙,禁用不必要的服务,提防 suid 可执行文件,等等。)

另外:是否有关于 Selinux 的明确参考?

编辑:是的,我打算把机器放在互联网上,至少有 openvpn、ssh 和 apache(目前,没有动态内容),并为某些人提供 shell 访问。

0 投票
3 回答
12206 浏览

active-directory - 如果缓存数据存在,LDAP 不会更新

我们有一个 SELinux 客户端,它使用连接到 Active Directory 服务器的 LDAP 对网络用户进行身份验证。由于我们的机器必须“不受限制”地运行,我们必须使用 nscd 来缓存组和密码信息。

这就是问题所在。如果我们在 Active Directory 服务器上更改组信息,然后登录客户端,如果该用户存在缓存,LDAP 似乎会忽略服务器并仅使用缓存的数据。我们能够获得更新的唯一方法是使 passwd 缓存无效。

/etc/nsswitch.conf 的重要部分:

谢谢。

更新:发现strace getent passwd在读取 /etc/nsswitch.conf 之前会检查 nscd 缓存,因此 nss 的配置无关紧要。

更新 2:今天玩 nss_updatedb 看看它是否有效。到目前为止还没有任何乐趣,尽管这个方法看起来正是我们需要做的。

0 投票
3 回答
10424 浏览

ruby-on-rails - 如何调试 cron 未执行给定脚本或其他脚本的问题?

我有一个希望每天运行的 Rails 脚本。我知道有很多方法,并且某些人不赞成使用 cron 的script/runner方法,但它似乎满足了我的需求。

但是,我的脚本没有按计划执行。

我的应用程序位于/data/myapp/current,脚本位于script/myscript.rb. 我可以手动运行它而不会出现问题root

当我这样做时,特殊日志文件 ( log/myscript.log) 会按预期记录到:

我将它设置为cron每天早上 4 点运行。 root的 crontab:

事实上,它看起来就像在今天早上之前尝试运行的一样!

但是,我的日志文件中没有条目,并且它应该更新的数据也没有得到更新。日志文件权限(作为测试)甚至设置为全局可写:

我在 CentOS 5 上运行。

所以我的问题是...

  1. 我还能在哪里寻找信息来调试它?
  2. 这可能是 SELinux 问题吗?是否有我可以设置或更改的安全上下文来解决此错误?

谢谢!

更新

感谢保罗和卢克。事实证明这是一个环境问题,将其捕获stderr到日志文件使我能够找到错误。

将特定的 Ruby 可执行文件添加到命令中就可以了:

0 投票
3 回答
1140 浏览

python - 您如何自动化大型项目的启动/调试?

设想:

有一个复杂的软件,手动启动很烦人。我所做的是创建一个 python 脚本来启动可执行文件并附加gdb进行调试。

进程启动脚本:

  • 确保设置了环境变量。
  • 确保将本地构建目录添加到环境LD_LIBRARY_PATH变量中。
  • 将当前工作目录更改为可执行文件期望的位置(不是我的设计)
  • 使用配置文件启动可执行文件是唯一的命令行选项
  • 将可执行文件的输出通过管道传输到第二个日志记录进程
  • 记住可执行文件的 PID,然后启动并将 gdb 附加到正在运行的可执行文件。

该脚本有效,但有一个警告。ctrl-c 不会中断被调试者并将控制权返回给 gdb。因此,如果我在没有活动断点的情况下“继续”,我将永远无法再次停止该进程,它必须被另一个 shell 杀死/中断。顺便说一句,运行“kill -s SIGINT <pid>”,其中 <pid> 是被调试者的 pid,确实让我回到了 gdb 的提示符......但是必须以这种方式做事真的很烦人

起初我以为 Python 正在抓取 SIGINT 信号,但情况似乎并非如此,因为我设置了信号处理程序将信号转发给被调试者,但这并不能解决问题。

我已经尝试了对 python 脚本的各种配置(调用 os.spawn* 而不是子进程等)。似乎无论我怎么做,如果 python 启动子进程,SIGINT (ctrl-c) 信号不要路由到 gdb 或子进程。

目前的思路

  • 这可能与被调试者和 gdb 需要一个单独的进程组 ID 相关......对此有任何信任吗?
  • SELinux 可能的错误?

信息:

  • 数据库 6.8
  • Python 2.5.2(Python 2.6.1 也存在问题)
  • SELinux 环境(向进程传递信号的错误?)

我考虑过的替代方案:

  • 设置一个 .gdbinit 文件来完成脚本所做的工作、环境变量和当前工作目录是这种方法的一个问题。
  • 手动启动可执行文件并附加 gdb (yuck)

问题: 您如何自动化大型项目的启动/调试?

更新: 我在下面尝试了 Nicholas Riley 的示例,在我家里的 Macintosh 上,它们都允许 cntl-c 以不同的程度工作,在生产 boxen(我现在相信它可能正在运行 SELinux)上它们不...

0 投票
3 回答
4567 浏览

java - SELinux 和 Java

是否有使用 SELinux 处理 Java 应用程序的最佳实践?是否能够为每个 Java 应用程序配置 SELinux,还是只能处理 VM,因为它会进行最后的系统调用?

0 投票
1 回答
332 浏览

java - SELinux、Fedora 和 Trusted Applet 崩溃?

出于某种原因,如果我在启用 SELinux 的 Fedora 11 下运行 Firefox 3.5.x,当我尝试动态嵌入小程序时,我的浏览器会崩溃。在 Windows、Ubuntu 和 Mac 下,提示用户信任签名者,然后信任正在执行的 java 小程序,但在 Fedora 下,我从未看到此提示。如果我禁用 SELinux,我不会收到任何提示,并且小程序会在没有任何通知的情况下嵌入!

记住受信任的小程序可以执行用户程序和操纵用户数据,这变成了一场噩梦。以前有没有其他人不得不处理 SELinux 和 Fedora/SuSE/Linux 以及受信任的小程序?如果是这样,您是如何克服这种不良行为的?

0 投票
15 回答
71680 浏览

php - PHP 的配置设置“error_log”不起作用

我在这里做错了什么?

我在 .ini 文件中设置了 error_log 以及error_reporting = E_ALL | E_STRICT.

我还缺少什么?这通常给我。我希望在 .ini 文件中而不是在我的脚本中设置这个。

正在发生的另一件有趣的事情是,当我故意尝试在我的一个脚本中抛出错误时,Apache 会一遍又一遍地重新启动。


这是我发生一次错误后的事件日志。看时间戳。


这已经被问了 1000 次,我在发布之前浏览了不同的帖子,但我还没有找到答案。只要我一直在使用 PHP 编程,这一直是工作的噩梦。

0 投票
2 回答
1127 浏览

linux - 有没有办法在 Linux 上构建一个没有文本重定位的 libxml2?

下午好,

我在使用 libxml2 时遇到了困难。

我尝试构建 Perl 模块 XML-LibXML,它是我们标准运行时环境的一部分。但是,这次在 RHEL5 机器上安装失败,因为构建过程抱怨缺少 libxml2:

但是,该文件是可用的。开始构建

导致了真正问题的更多证据:

经过一番调查,我发现问题似乎libxml2.so是由文本重定位造成的:

Ans 因为我们在目标机器上激活了 SElinux,所以链接 libxml.2 失败了!

是否有可能libxml2正确创建,或者我是否必须要求管理员扭曲 SElinux 以允许重定位?

我真的不敢相信我是唯一一个在 SElinux 处于活动状态的 Linux 上遇到这个问题的人。我错过了什么?

任何帮助表示赞赏!

问候,斯特凡