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

rub*_*o77 8 debian bash path

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

但似乎位置

/usr/local/sbin
Run Code Online (Sandbox Code Playgroud)

不是最好的地方。

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

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

ter*_*don 9

本地可执行文件的“官方”位置是/usr/local/bin. 默认情况下,此目录通常位于所有用户的 $PATH 中。传统上,未通过包管理器安装的程序(例如apt)存储在/usr/local/bin目录中,而由包管理器安装的程序则存储在/usr/bin. 请参阅此处了解更多信息,此处了解官方定义和比您需要的更多详细信息。

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

  1. 创建目录(我假设您已经sudo配置,如果不只是切换到rootwith su)并允许执行:

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

    export PATH=$PATH:/usr/local/scripts
    
    Run Code Online (Sandbox Code Playgroud)

一种更好的方法(如@Micha?Šrajer在评论中指出的那样)适用于大多数 shell(至少任何使用该pam_env模块的方法是在 中设置 $PATH /etc/environment。例如:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/scripts"
Run Code Online (Sandbox Code Playgroud)