问题标签 [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 投票
2 回答
8329 浏览

ruby-on-rails - 未写入日志文件(乘客)

在本地,我的应用程序运行良好并写入其日志。

我的生产服务器运行 CentOS,Apache 服务器运行乘客。尝试调试时,我注意到我的日志文件没有被写入。我做的第一件事是 chmod 0666 他们,当我发现这不起作用时,我查看了我的 apache 日志。我发现了这个:Rails 错误:无法访问日志文件。请确保 /var/www/vhosts/mysite.com/rails/exp/releases/20091124020342/log/production.log 存在并且是 chmod 0666。日志级别已提升到 WARN 并且输出定向到 STDERR 直到出现问题是固定的。

(注意:我正在使用 capistrano 进行部署)

无论如何,我搜索了一下,发现有人说这是一个 SELinux 问题,所以我查看了乘客的文档,发现了这个:http ://www.modrails.com/documentation/Users%20guide.html#_my_rails_application_8217_s_log_file_is_not_being_written_to

基本上说这样做: chcon -R -h -t httpd_sys_content_t /path/to/your/rails/app

但是,当我填写正确的路径时,我得到:不支持操作。

很困惑……有什么想法吗?

0 投票
1 回答
3100 浏览

java - SELinux 阻止 Java 运行

我最近在一个安装了相当基本的 SELinux 的系统上安装了 Sun Java。

我正在运行 Debian Etch 并从非免费软件包存储库安装了 Sun Java 软件包。

以下是我运行时出现在 syslog 中的错误通知java -version

`Feb 9 14:02:40 dev kernel: audit(1265742160.570:4107): avc: denied { execmem } for pid=9882 comm="java" scontext=user_u:system_r:unconfined_t:s0 tcontext=user_u:system_r:unconfined_t: s0 tclass=进程

2 月 9 日 14:02:40 开发内核:审计(1265742160.578:4108):avc:拒绝 { execmem } for pid=9882 comm="java" scontext=user_u:system_r:unconfined_t:s0 tcontext=user_u:system_r:unconfined_t:s0 tclass=进程`

我搜索了一下,似乎我需要创建一个 SELinux 策略,允许 Java 执行违反execmem约束的操作。这是一个正确的假设吗?如果是这样,我应该如何开始?

更新:

我寻找并找到了一项旨在处理 Java 的有针对性的政策。我使用以下命令安装了它:

$ sudo semodule -i /usr/share/selinux/refpolicy-targeted/java.pp

然而,这并没有帮助。我继续在 syslog 中看到相同的审核消息。

0 投票
1 回答
207 浏览

selinux - SElinux 完整性检查

如何通过进程名称检查(使用 SELinux)对文件的访问?

例如,我们有 2 个进程:

  • /usr/bin/foo1
  • /usr/bin/foo2

它们在使用用户名的帐户下运行,userA并尝试打开修改文件:

  • /home/userA/test.txt

我希望如果foo1尝试打开文件 - 没关系。但是,如果foo2尝试打开此文件 - 我在/var/log.

问题是两个进程具有相同的用户 ID。而且我不能通过用户名使用 RBAC。

0 投票
1 回答
330 浏览

apache - 在关闭 SeLinux 的情况下在端口 81 上运行 Apache

我已经完成了“semanage port -a -t http_port_t -p tcp 81”并修改了 httpd.conf 以侦听端口 81。重新启动 httpd 服务后它无法正常工作。但它使用默认端口 80。我检查了我的 SeLinux,它实际上已被禁用。有人能让我摆脱困境吗?

0 投票
1 回答
1071 浏览

php - PHP 写权限 - FC13

我最近安装了 FC13,并试图在我的 PHP 代码中编写一种机制,将收集到的数据缓存到特定目录中(出于我们的目的,我们将其称为 /var/www/html/_php_resources/cache)。

我将文件复制到 /var/www/html 目录,然后chown -R apache:apache /var/www/html/*chmod a+w /var/www/html/_php_resources/cache新数据上运行。现在我只是为了方便而使用全局写权限。我稍后会调整权限。

当我尝试使用chmodmkdirPHP 函数时,我最终得到:

警告:chmod():/var/www/html/_include/php/CacheInit.php 中的权限被拒绝

或者

警告:mkdir():/var/www/html/_include/php/CacheInit.php 中的权限被拒绝

现在,当我禁用 SELinux 时,一切正常。问题是我宁愿不禁用 SELinux 并实际设置正确的权限,以便我可以将其移植到某人没有这种明确控制的服务器上。

例如:我的个人站点主机允许我设置目录的读/写权限,但不允许 SELinux 策略更改。


供参考:

  • uname -r = 2.6.34.7-56.fc13
  • * php -版本 * = PHP 5.3.3
  • rpm -qa | grep httpd = httpd-2.2.16-1.fc13

有没有人有什么建议?

0 投票
1 回答
1180 浏览

php - 当我从 PHP/Apache 调用 pdftk 而不是 PHP/CLI 或直接调用时,为什么会出现 SegFault

当我/usr/local/bin/pdftk从 Apache 中的 PHP 调用时(通过shell_exec()exec()system()等),它会按预期返回 SYNOPSIS 消息

当我调用/usr/local/bin/pdftk input.pdf fill_form input.fdf output output.pdf flattenviashell_exec()时,没有任何返回。

当我将完全相同的字符串复制并粘贴到 shell 中的相同路径(作为 apache 用户)时,将按预期生成 output.pdf 文件。

pdftk命令移动到 PHP shell 脚本 (shebang is #!/usr/bin/php) 并php script.php完美地执行它。

从 Apache 中的 PHP(通过)调用该 shell 脚本(其标准错误重定向到标准输出shell_exec(script.php);)会导致以下行:

每当我从命令行(通过 PHP 或直接)运行脚本时,它都可以正常工作。每当我通过 Apache 通过 PHP 运行脚本时,它要么在没有任何通知的情况下失败,要么给出上面列出的 SegFault。

它是 RHEL4 上的 PHP 4.3.9。请不要射击我。我已使用 ini_set() 将内存设置为 512M,并确保 apache 用户已读取/写入所有路径(使用 fopen())并以 apache ...

刚刚去检查 /var/log/messages 找到这个:

注意:禁用 SELinux “修复”了该问题。这是否已进入 ServerFault 问题?有人可以在这里给我 30 秒的 SELinux 访问控制入门吗?

0 投票
4 回答
371 浏览

linux - 授予 unix 进程对目录的独占 RW 访问权限

有没有办法将 linux 进程沙箱到某个目录中,并赋予该进程对该目录的独占 rw 访问权限?例如,创建一个临时工作目录,并启动例如 python 或其他脚本工具,使其只能在该目录中写入,而不会限制其功能太多。而且只有这个进程可以访问这个目录的读取(当然超级用户除外)。

我需要这个来沙箱一个基本上允许用户运行任意代码的 Web 服务。我们目前在软件本身中进行授权,但最终所有进程都以同一个 linux 用户身份运行。我们需要一种用户不能对系统造成任何损害的方法,但确实有一个临时的私有工作目录来写入和读取受 web 服务的其他用户保护的文件。

0 投票
1 回答
245 浏览

linux - 按需集群,即出租集群

按需集群是指为特定工作租用集群。我们有一个客户现在需要使用集群计算机,而他的集群正在构建中。有没有人知道按核心租用集群的价格是多少,以及他们是否需要最短的时间。我见过每个核心从 0.50 美元到 3.00 美元不等的一切。用于使用 FDS 进行火灾模拟至少 20 小时。集群至少需要 256 个核心。

0 投票
1 回答
883 浏览

linux - 如何为从 Apache 启动的子进程禁用 SELinux?

我的 Apache 模块启动了一个辅助子进程,它执行例如但不限于以下操作:

  • 它设置了一个套接字,以便它可以与 Apache 通信。
  • 在 Apache 退出时删除的临时位置读取和写入文件。例如,这些文件用于存储通过网络接收到的大量数据,以防数据无法轻松放入 RAM。
  • 它产生用户指定的可执行文件。类似于 CGI。这些衍生进程中的每一个都作为它们自己的专用用户运行。

辅助子进程以 root 身份启动,以便它可以管理文件所有权和权限,并可以作为特定用户生成更多进程。

我的模块的一些用户在安装了 SELinux 的系统上运行,例如基于 RedHat 的发行版。SELinux 通常会干扰我的模块。到目前为止,我一直在告诉人们在系统范围内禁用 SELinux,因为我不知道如何为我的软件编写适当的策略。文档非常分散、复杂,通常只针对系统管理员,而不是软件开发人员。

作为朝着正确方向迈出的一步,我想实现对 SELinux 的最小支持。我正在寻找一种方法来启动我的辅助子进程而没有任何 SELinux 限制,而不会禁用 SELinux 系统范围。有没有办法做到这一点,如果有,怎么做?

0 投票
2 回答
4874 浏览

php - 即使文件绝对可执行,PHP 函数 is_executable 也会返回 false

我正在使用 PHP 5.3。

使用 getfacl 文件权限是:

我在使用 PHP 的程序执行函数时也遇到了问题,http://www.php.net/manual/en/ref.exec.php

有问题的程序是 wkhtmltopdf,我在 /usr/bin 目录中有它。

我的 /usr/bin 目录中有具有完全相同权限的转换程序,并且 is_executable 函数返回 true。