假设我有 flutter 二进制文件,~/flutter/bin/flutter
具有用户、组和其他人的执行权限。我想让系统中的所有用户都可以访问或执行二进制文件。
由于该二进制文件已经具有其他人的可执行权限,
使二进制可执行文件从任何地方都可以使每个用户都可以访问它吗?如果是这样,我在哪里设置 PATH 使其可以从任何地方执行?PATH=$PATH:/home/username/flutter/bin
那么设置就/etc/bash.bashrc
解决source /etc/bash.bashrc
了吗?
我知道人们进来PATH=$PATH:~/flutter/bin
了~/.bashrc
。但这使得二进制文件只能对用户执行,对吗?
/etc/environment
设置 PATH和 设置 in有什么区别/etc/bash.bashrc
?
下面提到的其他方法怎么样?
复制
~/flutter/*
到/opt/
然后设置PATH=$PATH:/opt/flutter/bin
进去/etc/bash.bashrc
~/flutter/bin/flutter
创建一个指向PATH 变量中提到的任何路径的符号链接/usr/local/bin
。/usr/bin
答案1
以下内容将起作用,并且可以根据需要进行修改:
如果它是二进制文件而没有其他内容,请将其复制到Linux 和大多数类 Unix 操作系统的
/usr/local/bin
默认位置。PATH
将其复制到
/opt
(或在必要时在此处构建),然后:导出 PATH=/opt/flutter/bin:$PATH
如果这是一个常见的 Linux 发行版,例如 Fedora/Debian/Ubuntu 及其衍生品、Arch 等,则可以/etc/profile.d/flutter.sh
使用上述内容创建一个文件(或者以任何所需的名称结尾,.sh
以便在 中bash
,它将源文件和登录并将目录添加到每个人的路径中。这仅在登录时获取,/etc/profile
等等/etc/bash.bashrc
。如果需要在启动新的 shell 会话时将该目录添加到 PATH,则必须将其添加到用户的 shell 中。初始化脚本,例如~/.bashrc
或~/.bash_profile
、~/.kshrc
等。
如果需要,您可以反转顺序,但我这样做是为了确保它flutter
首先在该目录中找到二进制文件,以防它位于其他地方。此外,它具有文件所在目录的完整路径,而不是二进制文件本身的完整路径。
您不想将其存储在用户的主目录中,因为访问它需要在用户的主目录上添加执行位,这将使每个人都可以访问它,这可能是不需要的,因为默认掩码是 022,除非它被更改和/或用户的权限位被删除。这就是为什么我建议将其放置在其他地方。链接也需要同样的东西。