shell – 如果我不拥有该文件但是对目录有写权限,如何更改Unix权限?

前端之家收集整理的这篇文章主要介绍了shell – 如果我不拥有该文件但是对目录有写权限,如何更改Unix权限?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我和一个同事共享一个git仓库,而且由于git并没有传播Unix文件的全部权限,所以我们有一个“钩子”运行在更新中,它们需要设置“其他”权限。问题?钩子使用chmod,事实证明,当我的同事提交文件时,他拥有它,所以我不能运行chmod,反之亦然。目录都是可写的,粘性的,所以我相信我们中的任何一个都有权删除任何文件,并用相同的名称,相同的内容,但不同的所有权替换它们。大概那么我们可以chmod它。但这似乎是一个非常大的锤子,我有点麻烦了。所以,两个问题:

有人会想到另外一种办法吗?
>如果没有,那么实现“使这个文件属于我”的防弹shell脚本的最佳设计是什么?没有跨文件系统移动等等…

对于那些可能没有实现的人,写权限不允许chmod:

% ls -l value.c
-rw-rw---- 1 agallant ta105 133 Feb 10 13:37 value.c
% [ -w value.c ] && echo writeable
writeable
% chmod o+r value.c               
chmod: changing permissions of `value.c': Operation not permitted

我们都在ta105组。

笔记:

>我们使用git不仅可以协调更改,还可以将repo作为课程网站发布。发布网站是回购的主要目的。权限脚本使用git钩子在每次更新时运行,并确保学生无权读取尚未公开的解决方案。
>请不要建议我有错误的umask。并不是repo中的所有文件都应具有相同的权限,无论选择umask,某些文件的权限都需要更改。更不要说对我的同事强加我的umask偏好是不客气的。
>更新:我刚刚了解到,在我们的环境中,root在我们可以访问的所有机器上都被撤销给任何人,因此依赖于root权限的解决方案将无法正常工作。

至少有一个Unix,我已经看到一种方式给某人chmod并且对特定组所拥有的所有文件选择权限。这有时被称为“组超级用户”或类似的东西。

我唯一看到这个Unix的Unix是Encore Multimax的Unix版本。

搜索了一下,虽然我记得在Linux中有一些模糊的这种能力的引用,但我一直无法找到它们。所以这可能不是一个选择。幸运的是,它可以被模拟,尽管模拟有点危险。

模拟这个的方法是制作一个非常具体的suid程序,将在检查您是拥有该文件的同一个组的成员后,以root身份执行chmod,并且您的用户名被列为在特殊/ etc中具有该权限/ chmod_group文件,必须由root拥有,并且只能由root使用可读写。

猜你在找的Bash相关文章