Ubuntu多用户共享anaconda

ubuntu 22.04服务器配置多用户与Anaconda隔离与共享

为避免服务器多用户使用时重复下载conda、conda环境莫名其妙被删除等现象,现对不同用户设置不同权限,限定当前用户仅能操作当前/home/xxx内文件,并仅能在该目录下创建和修改ocnda环境,以达到不同用户使用的隔离。

1 安装Anaconda

(1) 下载安装包

由于国内网络环境,官网下载速度较慢,我们可以进入清华大学开源软件界面下载,根据系统和版本选择,我们选择了较新的Anaconda3-5.0.0

在这里插入图片描述

但由于服务器没有图形化界面,也可以使用命令行安装

wget --user-agent="Mozilla" https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.0.0-Linux-x86_64.sh

若不加--user-agent="Mozilla" 则会报错,如下图,这是由于服务器正在检查引用者,一些 HTTP 请求也会得到错误响应,它们会拒绝不以 Mozilla 开头或不包含 Wget 的用户代理
在这里插入图片描述
下载完成后运行sudo sh Anaconda3-5.0.0-Linux-x86_64.sh按照提示即可,在提示安装目录时,我们为了让所有用户都能使用,安装在/opt/anaconda3目录下

最后提示是否加入环境变量,输入no,我们自己配置

(2) 配置环境变量

由于我们是在服务器下安装,希望达到的效果是每个用户都不需要自己重复安装conda,可以直接使用conda的相关命令,并且创建的环境env和包pkgs都存放在用户自己的目录下,这样就可以达到隔离的效果,彼此不互相干扰。

首先,添加系统环境变量,为了对所有用户都成立,执行sudo vim /etc/bash.bashrc,而~/.bashrc只对当前用户(一般~代表/home/xxx路径下),注意anaconda所在路径,加入如下:(.bashrc和/etc/profile的区别可看这个链接

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/opt/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/opt/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

打开/etc/profile也加一下环境变量,执行sudo vim /etc/profile,加入:

export PATH=/opt/anaconda3/bin:$PATH

再重新载入source /etc/profile

再执行conda info 输出内容,查看配置是否有问题

(3) 换源与更换存储路径

在Anaconda安装的公共目录下新建配置文件,即vim /opt/anaconda3/.condarc,输入以下内容进行换源更换存储路径

channels:
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2/
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
 - defaults
 
envs_dirs:
  - ~/.conda/envs
pkgs_dirs:
  - ~/.conda/pkgs

即可,再次conda info检查路径是否都设置成功。

2 配置conda用户组权限

ubuntu中的每个文件或文件夹都有创建者、所属组、权限的设置,对于同组的文件可以方便统一管理权限,通过vim /etc/group查看当前用户组情况,如下图所示,第一个蓝色字体为组的名称,红色为编号,最后的蓝色字体为属于该组的用户
在这里插入图片描述

下面针对多用户的conda配置用户组流程如下:

  1. 创建conda的用户组groupadd anaconda,其中anaconda为名字,可以任意

  2. 添加用户到刚刚创建的用户组 usermod -a -G anaconda <username> (注意需要重启才能生效)

  3. 改变conda的安装目录用户组为刚刚创建的anaconda组 chgrp -R anaconda /opt/anaconda3

  4. 更改conda安装目录权限,即修改该文件夹的拥有者(root)和所属组(anaconda)组员的读写权限

    chmod 770 -R /opt/anaconda3
    

即:对于拥有者、本组、其他组分别为7(可读写运行)、7(可读写运行)、0(什么都不行)的权限)

另外:读、写、执行权限分别对应数字4、2、1

常见组合有:

1.可读写运行 7

2.可读写不可运行 6

3.可读可执行不可写 5

u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是

5.设置文件夹目录内的组继承和子目录组继承,使该文件夹下新建文件和文件夹都能在anaconda的组内

chmod g+s /opt/anaconda3
chmod g+s `sudo find /opt/anaconda3/ -type d` 

6.创建全局conda环境,作为所有人都可以访问的公共环境

conda create -n public python=3.9
  1. (可选可不选)设置全局conda环境存放文件夹(/opt/anaconda3/envs)内只能由 root 修改,而对于其他用户的环境,则放在每个用户自己的home/xxx/目录下。

chmod g-w /opt/anaconda3/envs,其中g-w为去除当前组其他人的写入权限

3 ubuntu创建多用户

sudo adduser username #该步骤按提示输入密码即可
usermod -a -G sudo username #可选,是否给新用户sudo的权限
usermod -a -G 其他组名称 username #可选,为新用户划分用户组,这样可以获取到对应的权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值