哪里可以存储所有用户可以在Debian上执行的bash脚本?


7

我的服务器上有很多bash脚本,所有用户都可以使用。

但似乎位置

/usr/local/sbin

不是最好的地方。

我不想使用用户的主目录,因为每个人都可以执行它们。

是否有关于将它们存储在Debian上的约定?


3
/usr/local/bin 这是通常的地方
Nifle

Answers:


9

本地可执行文件的“官方”位置是 /usr/local/bin。默认情况下,此目录通常位于所有用户的$ PATH中。传统上,没有通过包管理器安装的程序(例如, apt )存储在 /usr/local/bin 目录和包管理器安装的目录 /usr/bin。看到 这里 了解更多信息和 这里 官方定义和更多细节,而不是你需要的。

这些只是约定,您可以自由使用自己的目录。例如,存储可由所有用户执行的脚本 /usr/local/scripts 您需要按照以下步骤操作:

  1. 创建目录(我假设你有 sudo 配置,如果不只是切换到 rootsu )并允许执行:

    sudo mkdir /usr/local/scripts
    sudo chmod 755 /usr/local/scripts
    
  2. 将此目录添加到所有用户的$ PATH(这假设每个人都使用bash)。添加此行 /etc/profile

    export PATH=$PATH:/usr/local/scripts
    

更好的方法(如 @MichałŠrajer 在评论中指出,这将适用于大多数炮弹(至少任何使用 pam_env 模块将设置$ PATH /etc/environment。例如:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/scripts"

在debian中 PATH 在全球设置 /etc/environment。 BTW,自Squeeze以来,Bash不再是默认shell。短跑是。
Michał Šrajer

我想知道为什么我应该在一个名为“bin”或“sbin”的文件夹中存储一个纯文本脚本?是不是“二进制”编译文件,那是非文本的?
rubo77

严格来说是的,这就是二进制文件。但是,按照惯例,所有可执行文件都存储在各种中 bin 目录。例如,在我的系统上, /usr/bin 包含2061个已编译的二进制文件和3888个脚本(文本文件)。
terdon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.