sdkman 对 root 用户可用,但对其他用户不可用
Posted
技术标签:
【中文标题】sdkman 对 root 用户可用,但对其他用户不可用【英文标题】:sdkman available to root user but not to other users 【发布时间】:2016-12-25 14:18:16 【问题描述】:我在 CentOS 6.8 中使用 curl 作为 root 用户安装了 sdkman 我使用 sdkman 安装了 Grails,它只对 root 用户可用。
我是否需要以其他普通用户身份安装 sdkman 才能使 Grails 工作,或者有没有办法使用我以 root 用户身份安装的 Grails?
谢谢。
【问题讨论】:
如果您将其安装在/root/bin/
例如那么它只存在于root
。将其放入/usr/local/bin
例如适用于所有用户。
"...或者有没有办法使用我以 root 用户身份安装的 Grails" - 以 root 用户身份运行 Grails 是个坏主意。
@JeffScottBrown,不,不。我的意思是作为普通用户使用 Grails,但不知何故可以访问 Grails。
@cfrick,所以我注意到我的 Grails、PostgreSQL、pgAdmin3 都对普通用户不可用...我还需要将它们移动到 /usr/local/bin 吗?
如果您的工具(如 psql
)并非对所有用户都可用,那么该系统上的许多事情都可能出错(或正确:例如权限设置限制)。如果您有具体的编程问题,请制定它们。如果您对系统管理有任何疑问,那么超级用户 SE 可能是一个更好的提问场所。
【参考方案1】:
我鼓励您将 sdkman 提供给其他用户(查看其文档,自定义安装段落,添加从 $SDKMAN_DIR/bin 目录获取 init 文件的 init 脚本)。
然后让需要 Grails 的用户安装它。
或通过其存储库安装 Grails(接受,这将是比 SDKMAN 中的版本更旧的版本)。
就我而言,我使用的是:
export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
- 在安装 sdkman 之前确保 $SDKMAN_DIR 不存在,否则它将被覆盖
在.bashrc
的用户文件中,我希望能够使用 sdkman。否则,在这些的最后,它可能不起作用
导出 SDKMAN_DIR="/usr/local/sdkman" [[ -s "/usr/local/sdkman/bin/sdkman-init.sh" ]] && source "/usr/local/sdkman/bin/sdkman-init.sh"
文档:http://sdkman.io/install.html
【讨论】:
【参考方案2】:对于非交互式 shell 添加到 .profile
导出 SDKMAN_DIR="/usr/local/sdkman"
[[ -s "/usr/local/sdkman/bin/sdkman-init.sh" ]] && source "/usr/local/sdkman/bin/sdkman-init.sh"
【讨论】:
以上是关于sdkman 对 root 用户可用,但对其他用户不可用的主要内容,如果未能解决你的问题,请参考以下文章
file_get_contents('php://input') 为一个用户返回空,但对其他人工作正常