我们都知道Linux操作系统是一个多用户的操作系统,由于大家在实际工作中很少接触到多用户环境,特别是在目前电脑硬件成本不断降低的情况下几乎每个从事IT行业的人员都有一台甚至多台个人PC,因此大家对多用户的理解并不深刻。
ChatGPT引燃了人工智能的热潮,各种开源的人工智能模型也如雨后春笋般涌出。大大小小的公司都跃跃欲试,想赶上这一波人工智能的大潮。可是能够流畅运行人工智能训练模型的机器价格不菲,从3-5万到30-50万不等,因此即使财大气粗的大公司也不可能为研究人员每人配备一台高性能的人工智能机器,此时Linux的多用户就有了用武之地了。本文以Ubuntu2004为例,一步步的搭建一个多用户的共享开发环境,实现一台机器多个用户同时操作并可以共享开发环境的目的。
1.新建用户
Linux操作系统中包含用户和用户组,我们既可以为用户设置权限,也可以为同一用户组的用户统一赋权限。为了达到多用户共享开发环境的目标,我们需要把多个用户加入到同一个用户组中。
首先使用下面的命令添加相关的用户。
sudo adduser 用户名
使用adduser
命令,而不是useradd
,在实际应用中adduser
命令更加方便,推荐大家使用。
2.将新用户添加到sudouser
通过第1步新建的用户默认是没有sudo权限的,如果想让新建用户有sudo权限需要通过修改sudoers文件来实现。
首先修改/etc/sudoers
的属性,默认是只读的。
ll /etc/sudoers
chmod 640 /etc/sudoers
在第%sudo那一行下面添加用户名的信息
% ALL=(ALL:ALL) ALL
为了保证系统的安全,在完成sudoers文件的修改后需要再把它的属性改回440。
chmod 440 /etc/sudoers
通过第1和第2步我们已经新建了一个用户,并且为用户添加了sudo权限。接下来我们要新建一个用户组,为了实现多用户共享开发环境的目标,我们以后只需把用户添加到这个用户组就可以了。
使用groupadd
命令新建一个用户组。
groupadd developer
将用户加入用户组
usermod -a -G developer devuser
usermod -a -G developer alfiy
在home
目录下新建share
文件夹,并把这个文件夹设置成开发组人员都可用。
# 新建目录
sudo mkdir share
# 更改目录的属性
chown -R alfiy:developer share
# 让子目录自动继承父目录的属性
chmod g+s share
# 设置文件属主、用户组及其他用户权限,给属主、用户组赋读写权限
chmod a+r,ug+w,o-w share
♂ 请大家举一反三,只要为文件夹用户组赋读写权限就可以实现同组用户共享的目的。
5.验证
我们假设同组人员都使用Pycharm开发程序。
打开pycharm在新建的目录中新建一个项目。
使用另外一个用户登录,程序员李四可以打开张三新建的项目。
通过上面的操作就实现了多用户共享一个开发环境的目的了。
如果在不同的用户打开pycharm时可能会出现用户权限的问题,只要按照出现权限问题的提示,找到pycharm的相关配置文件为同组赋读写权限就能解决了。
2023年5月22日写于青岛市海慈医院