- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
每当提交完成时,我想使用 SVN 存储库 (Unfuddle) 的回调功能来 ping 我的服务器上的 URL。我有一个 PHP 脚本接受消息并尝试调用 shell 脚本来执行“svn update”。
我面临的问题是 Apache 在用户“www-data”下运行,并且无权访问本地存储库:“.svn/lock”权限被拒绝。我已经阅读了有关在 shell 脚本上设置 SUID/SGID 的所有内容,以及大多数 *NIX 操作系统由于涉及安全风险而根本不支持它。
但是我可以在位于/usr/bin/svn 的 SVN 二进制文件上设置 SUID/SGID 位。通过允许任何用户在任何存储库上发出 SVN 命令,可以缓解该问题;不是最理想的...
我的问题是实现这种类型设置的最合乎逻辑/合理/安全的方法是什么,如果我确实将位设置保留在 svn 二进制文件上,是否会带来我没有意识到的重大安全风险?
很抱歉这篇冗长的帖子;这是我的第一个问题,我想问得更彻底。
谢谢
最佳答案
针对此类问题有两种类型的解决方案:轮询或事件驱动。
轮询解决方案的一个示例是在服务器上运行一个 cronjob,每 N 分钟更新一次。如果它适合您,这可能是最容易维护的。您可以通过从正确的帐户运行 cron 来回避整个权限问题。
您介绍的解决方案是事件驱动的解决方案。它们通常资源密集度较低,但可能更难设置。事件驱动解决方案的另一个示例是让 www-data 属于 svn 组。设置 SGID 位并将存储库目录 chown 为 svn 组。这应该允许该组中的任何人 checkin / checkout 。
如果需要限制更新,可以提升权限或临时更改用户。您可以使用 ssh 单一用途 key (也称为命令 key )以具有正确权限的用户身份进行 ssh 登录。然后可以使用单一用途 key 进行更新。
升级权限的另一种方法是使用sudo -u [用户] [命令]
。更新 /etc/sudoers
文件以允许 www-data 将用户升级/更改为可以执行更新的用户。
无论如何,我都不会使用 SUID/SGID 脚本。
关于security - 在 SVN 二进制文件上设置 SUID/SGID 位是否存在安全风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021027/
本文通过 Google 翻译 SUID | SGID Part-1 – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个
本文通过 Google 翻译 SUID | SGID Part-2 – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校正及个
如果 /usr/bin/bash 设置了 suid 位为什么只有当我像这样使用 -p 选项时,我的 euid 才会更改为 root /usr/bin/bash -p这个 -p 选项代表什么?当您从 s
我正在编写一个内核模块,它需要检查给定文件描述符的suid属性。我检查了各种内核结构,但找不到有关该主题的任何线索。 我希望以某种方式找到一个包含按位 Unix-stile 权限的字段,但我找不到任何
假设我得到了具有不同类名的完全不同的类。我应该在类中使用不同的 serialVersionUID 吗? 如果是这样,为什么有必要? JRE到底是怎么反序列化的? 最佳答案 不,你不需要不同的 SUID
我有一个 SUID 位在重启后被忽略的问题。问题很可能出在我对 SUID Bit 的理解上。由于它们执行的功能,我需要提升目录中 python 文件的权限。这就是我所做的。 sudo find dir
我有一个二进制文件(名称为 bmu),在调用 statfs 函数时需要 root 权限。 操作系统是 SuSE Linux 2.6.16.60-0.21-smp 运行bmu的用户是test,是非roo
这个问题已经有答案了: java.io.invalidClassException during serializing/deserializing (3 个回答) 已关闭 7 年前。 我正在开发一款
我正在阅读序列化,并对对象序列化过程中计算的 SUID 如何传递到另一台机器感到困惑。下面的查询是在一台机器中序列化对象并将其传递到另一台机器的上下文中进行的。 a) 为什么 suid 是静态的?b)
我有一个python脚本(必须以root身份调用),它调用一个bash脚本(必须以非root身份调用),有时需要调用sudo。这不起作用 - “叶”sudo 调用给出消息“$user 不在 sudoe
我想知道是否有一种方法可以使用 suid 二进制文件(使用 Ubuntu 18.04)来删除特权。看: # cp /bin/bash . # chown www-data bash # chmod 4
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
我目前正在学习 LPIC-1 Linux 认证。为此,我使用了由 McGraw Hil 发布并由 Robb Tracy 编辑的“一体化”考试指南。 (第一版,麦格劳希尔网站上没有勘误表)。 我在网上研
我是 C 新手,这是我编写的一个简单包装器,用于以不同用户身份运行执行脚本。我知道我可以在 etc/sudoers 中执行 visudo 但是,我已经这样做了,我不想浪费它,它也将帮助我提高 C 语言
我写了一个简单的 bash 脚本来备份主目录,e 把它放到/var/backups 中。由于该目录是 protected ,所以我以 root 身份编写脚本,然后设置 SUID。 armando@ub
这是我的问题:我一直在开发一个复杂的产品(100k 多行代码),它本质上将最多 8 个不同的类附加到 JTree 结构,并将整个实体序列化到磁盘。我在我自己的每个类中设置 SUID 以方便版本管理,这
我知道我们不能对 suid 二进制文件执行 ptrace。但是,我想知道为什么我们不能在二进制文件将其特权降为 uid 而不是 euid 后执行 ptrace。 例如,在二进制文件中,suid 二进制
我创建了一个包含以下内容的小 shell 脚本: cat /usr/bin/checksuid.sh !/bin/bash echo "Hello" > /etc/myfile.cnf ls -l /
我试图在 Alpine Docker 镜像中以不同的用户身份运行一些脚本。以 devuser 登录时我要跑 setup.sh如 root和 app.sh如 appuser .因为我读到你不能在脚本文件
这个问题在这里已经有了答案: How to generate unique DICOM UID? (1 个回答) 关闭 4 年前。 我是 DICOM 世界的新手,我想将修改后的 DICOM 文件(根
我是一名优秀的程序员,十分优秀!