我知道这可能听起来很奇怪,但我只需要允许脚本写入某个文件。
该文件由root拥有,有些用户拥有sudo或root权限。 他们有时手动编辑文件,但这是错误的,因为有一些脚本正确地编辑文件(而这样的用户不正确)。
所以,我希望只有那些脚本有权编辑文件,而任何用户不能编辑,但只能读取该文件。
有没有可能做这样的事情? 我知道这是愚蠢的,因为他们有pipe理员权限,但是,至less我想很难手动编辑文件…当然,脚本可以修改,所以如果有可能获得一个“脚本只访问令牌“,授予对这种文件的写访问权限,脚本可以相应地改变。
由于您的“某些用户”具有sudo或root访问权限,因此这是不完全可能的。 因为你所做的每件事都可以通过它们来恢复。 所以,你唯一能做的就是归因。 所以这使得他们修改文件有些困难,但是由于我在第一句中提到的原因是一样的,所以还是没有完全certificate。
使用以下命令可以将属性设置为文件:
chattr +i /path/to/file
在哪里+我的意思是不可变的。 所以没有人可以编辑文件不删除属性。 所以在你的脚本中你可以像下面这样做:
... chattr -i /path/to/file # remove the immutable attribute of the file at the beginning of your script ... ... ... ... chattr +i /path/to/file # attribute the file at the end of your script
例子 :
如果他们拥有root访问权限,所有的赌注都是非常关键的。 一个丑陋的方法是在你的文件上设置不可变的位 。 只要该属性被设置,它将是不可修改的。 然后在更新文件之前更改您的脚本以删除该属性,然后将其设置回来。 希望你的用户不会注意到这个属性,他们的编辑尝试是徒劳的。
显然,最重要的是用户教育。 我们不应该因为傻子不停地砸他们的拇指而禁止他们;)
让脚本创build文件的第一行
#### WARNING: THIS FILE IS GENERATED AUTOMATICALLY. DO NOT EDIT BY HAND
正如其他人已经指出,如果他们有根,你不能阻止他们。