为了安全起见,我应该把我的个人 shell 脚本放在哪里?

为了安全起见,我应该把我的个人 shell 脚本放在哪里?

我正在学习 sh 制作一些定制功能。我正在为个人脚本寻找一个安全位置,因为我从堆栈交换中检查,有人说将个人脚本放在下面~/bin可能会探索恶意软件,例如 make als()真正执行类似的操作rm -rf

答案1

根据 ilkkachu 的评论进行编辑。我忘记了文件的写保护并不能保护它不被删除,所以它也需要位于写保护的文件夹中。


如果出现以下情况,您的文件将需要密码才能修改

  • 只有所有者有写权限
  • 所有者是 root

即便如此,任何人仍然可以删除该文件,然后用自己的内容重新创建它。为了防止这种情况,需要将该文件放置在没有写入权限的文件夹中。该文件夹也可以删除,所以它需要位于受保护的文件夹中,ETC一直到/...

换句话说,您希望文件权限如下所示:

.rw-r--r-- root它可以让你的普通用户 shell 运行它,但需要 sudo 来修改它;或者

.rwxr-xr-x root如果它还需要可执行。

并且该文件之间的所有包含文件夹都/需要如下所示:

drwxr-xr-x root

幸运的是,大多数顶级系统文件夹都符合home要求,因为它们只能由 root 写入。我不确定惯例是什么,让我们举个/usr/share例子。

因此,从一个普通文件开始~/myscripts/script.sh

# change file permissions to .rw-r--r--
chmod 644 myscripts/script.sh
# or to .rwxr-xr-x
chmod 755 myscripts/script.sh

# set permissions on the folder (they should be like this by default already)
chmod 755 myscripts

# make root the owner
sudo chown root:root myscripts/script.sh
sudo chown root:root myscripts

# place it in one of the root folders
sudo mv myscripts /usr/share/

如果您担心该攻击媒介,您应该确保所有自动运行的 shell 脚本都受到类似的保护:.bashrc、.bash_profile...(我不知道它是否会产生不良副作用,还没有)尝试过)。您还必须锁定指向新位置的任何符号链接或配置文件。

相关内容