当我以 root 用户身份登录到远程 Linux 服务器时,我可以运行以下命令:
jupyter-notebook --no-browser --port=8909 --allow-root
当我跑步时which jupyter
我得到:
/usr/local/anaconda3/bin/jupyter
并env | grep ^PATH
给出:
PATH=/usr/local/anaconda3/bin:/usr/local/anaconda3/condabin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
which jupyter
现在,如果以没有访问权限的用户运行相同的命令sudo
,我会得到:
/usr/bin/which: no jupyter in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/mook01/.local/bin:/home/mook01/bin)
并env | grep ^PATH
给出:
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/mook01/.local/bin:/home/mook01/bin
我的问题是我怎样才能允许该mook01
用户访问该jupyter
命令但不授予他们sudo
访问权限?
答案1
您应该首先以用户身份anaconda3
在PATH
环境变量中添加目录mook01
:
export PATH=/usr/local/anaconda3/bin:/usr/local/anaconda3/condabin:$PATH
这将允许 shell 命令在上述路径下查找jupyter
可执行文件。
阅读更多关于_PATH_
:https://tldp.org/HOWTO/pdf/Path.pdf
为了使更改持久,您必须将该export
行添加到相应用户的文件中~/.bashrc
,以便在每次 shell 会话开始时获取该更改。