防止 Linux 用户设置错误的文件所有权

防止 Linux 用户设置错误的文件所有权

我已经更新了所有权,而不是更改文件权限。

我本应该用chmod 777 <filename>但却用了chown 777 <filename>

例子:

[john@sv1:/tmp]$ touch etst_test.txt
[john@sv1:/tmp]$ ls -lrt etst_test.txt
-rw-rw-r-- 1 deploy deploy 0 Oct 17 18:29 etst_test.txt
[john@sv1:/tmp]$ sudo chown 777 etst_test.txt
[john@sv1:/tmp]$ ls -lrt etst_test.txt
-rw-rw-r-- 1 777 deploy 0 Oct 17 18:29 etst_test.txt
[john@sv1:/tmp]$ vi etst_test.txt

我不喜欢这种情况发生,我想设置一些预防方法来通过拒绝或显示一些错误来阻止我/某人。

答案1

我认为您执行此操作的唯一方法是将命令移出chown并将$PATH其替换为批处理文件,该文件询问您是否确实要更改所有权,如果用户回答是,则批处理文件将执行相应的chown命令。

当然,这样做的缺点是,一旦你更新了 gnu coreutils,你的批处理版本chown将被覆盖(取决于你的包管理器在看到非标准版本时如何响应chown)。

您还可以信任root做正确的事情并将此命令的可用性限制为仅root通过使用chmod(并小心使用chmod而不是chown:-))chown然后也许摆弄sudo此命令的特权。

就像 @qasdfdsaq 在评论中提到的那样,分配一个别名是最好的方法,这样二进制文件就不会被修改,也不会让包管理器感到困惑。因此,创建一个名为mychown(或任何你喜欢的名字)的脚本来执行询问,将其放在/usr/local/bin或类似的地方,并有一个指向chown该脚本的别名。

相关内容