Ubuntu2004设置共享开发环境

news2025/1/18 13:59:31

我们都知道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

在这里插入图片描述
3.新建用户组

通过第1和第2步我们已经新建了一个用户,并且为用户添加了sudo权限。接下来我们要新建一个用户组,为了实现多用户共享开发环境的目标,我们以后只需把用户添加到这个用户组就可以了。

使用groupadd命令新建一个用户组。

groupadd developer

将用户加入用户组

usermod -a -G developer devuser
usermod -a -G developer alfiy	

在这里插入图片描述
4.新建共享文件夹

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日写于青岛市海慈医院

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/556633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构】堆堆堆堆堆!

目录 前言 树 树的概念 树的相关概念​编辑 树的表示 二叉树的概念 特殊的二叉树 ​ 二叉树的存储结构 堆 堆的建立(本篇以小堆为例,大堆实现方法一样) 堆的结构定义 堆的初始化 堆的插入 堆的基础算法——向上调整算法 插入注意事项 堆的判…

Openai+Coursera: ChatGPT Prompt Engineering(三)

想和大家分享一下最近学习的Coursera和openai联合打造ChatGPT Prompt Engineering在线课程.以下是我写的关于该课程的前两篇博客: ChatGPT Prompt Engineering(一) ChatGPT Prompt Engineering(二) 今天我们来学习第三部分内容:推断(Inferring) 推断…

Android:IPC(进程间通信)机制

Android:IPC(进程间通信)机制 进程和线程 我们先来了解一些关于线程和进程基本的概念。 按照操作系统中的描述,线程是CPU调度的最小单元,同时线程是一种有限的系统资源。而进程一般指一个执行单元,在PC和…

(学习日记)AD学习 #2

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

npm ERR! code E404 在vscode安装插件时报错的解决方案

答主在配置commit代码提交规范时【即如下代码】遇到了以下问题 npm i cz-customizable6.3.0 --save-dev 出现了 npm ERR! code E404 npm ERR! 404 Not Found - GET https://registry.npmjs.org/vue%2fvue-loader-v15 - Not found npm ERR! 404 ……等报错情况 解决方案1 检查n…

SVN 导出改动差异文件

文章目录 SVN 导出改动差异文件应用场景/背景介绍具体操作方法 SVN 导出改动差异文件 应用场景/背景介绍 当然下面的两个场景介绍可能用分支管理都会有不错的效果,或者更优,只是记录一下思路,用什么还是看大家个人爱好啦 在开发过程中偶尔会…

nexus私服仓库maven-metadata.xml缺失导致的构建失败或者下载504

环境:maven项目,使用Nexus私服,jenkins实现代码的编译和打包。 问题分析思路:某周末前,jenkins上的编译打包任务一直正常工作,但周末后突然所有项目都编译失败,报错很一致都是Could not find a…

【牛客刷题专栏】0x30:JZ38 字符串的排列(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转),它登陆后会保存刷题记录进度,重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏:个人CSDN牛客刷题专栏。 题目来自:牛客/题库 / 在线编程 / 剑指offer: 目录 前言问…

局域网与城域网 - ARP 地址解析协议

文章目录 1 概述2 ARP 地址解析协议2.1 工作过程2.2 报文格式2.3 ARP 命令 3 扩展3.1 网工软考真题 1 概述 #mermaid-svg-CQnNvTP8xFoJsztk {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-CQnNvTP8xFoJsztk .error-…

plt、fig、axes、axis的含义

plt import matplotlib.pyplot as plt figure,axes与axis 如果将Matplotlib绘图和我们平常画画相类比,可以把Figure想象成一张纸(一般被称之为画布),Axes代表的则是纸中的一片区域(当然可以有多个区域,这…

剑指 Offer - 字符串合辑

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀 算法专栏: 👉🏻123 题解目录 一、🌱[剑指 Offer 05. 替换空格](https://leetcode.cn/problems/t…

[笔记]C++并发编程实战 《二》线程管理

文章目录 前言第2章 线程管理2.1 线程管理的基础2.1.1 启动线程2.1.2 等待线程完成2.1.3 特殊情况下的等待2.1.4 后台运行线程2.2 向线程函数传递参数 前言 第2章 线程管理 本章主要内容 启动新线程等待线程与分离线程线程唯一标识符 好的!看来你已经决定使用多…

使用压缩包安装jdk多版本并能领过切换

使用压缩包安装jdk多版本并能领过切换 1.下载2.解压包到指定位置3.使用pdate-alternatives 进行版本切换管理3.1. jdk173.2. jdk1.8 3.切换版本4.解决JAVA_HOME环境变量识别的问题 1.下载 官网的下载地址: 下载地址: jdk17: jdk1.8在当前页面的下面: …

基于差分进化算法的微电网调度研究(Matlab代码实现)​

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

MAC突然打不开Notion,你遇到过这个问题吗?

目录 解决办法 为什么Notion会突然打不开呢? Notion是一款适合记录/规划的应用,而且页面简洁,模板强大,深得大家喜爱。我也经常在Notion上制定计划、记录学习笔记等。不过,今天突然打不开了,网页版、本地…

基于SpringBoot的生鲜管理系统的设计与实现

背景 困扰交易市场的许多问题当中,生鲜交易管理一定是交易市场不敢忽视的一块。但是管理好生鲜交易又面临很多麻烦需要解决,例如有几个方面:第一,生鲜市场往往人数都比较多,如何保证能够管理到每一个商家,如何在工作琐碎,记录繁多的情况下将生鲜交易的当前情况反应给领导相关部…

【大数据】Hadoop高可用集群搭建

知识目录 一、写在前面💕二、Zookeeper安装✨三、Hadoop配置✨四、Hadoop HA自动模式✨五、HA脚本分享✨七、结语💕 一、写在前面💕 大家好!这篇文章是我在搭建Hdfs的HA(高可用)时写下的详细笔记与感想,希望能帮助到大…

分布式调度XXL-JOB

分布式调度XXL-JOB 1.概述 1.1什么是任务调度 比如: 某电商平台需要每天上午10点,下午3点,晚上8点发放一批优惠券某银行系统需要在信用卡到期还款日的前三天进行短信提醒某财务系统需要在每天凌晨0:10分结算前一天的财务数据,统计汇总 以…

【图床】SpringBoot上传图片

知识目录 一、写在前面✨二、新建开源仓库✨2.1 新建仓库2.2 将仓库设置为开源2.3 生产私人令牌 三、代码实现😄3.1 工具类3.2 上传图片 四、总结撒花😊 一、写在前面✨ 大家好!我是初心,很高兴再次和大家见面。 今天跟大家分享…

【Unity】Animation Playable Bug、限制及解决方案汇总

【Unity】Animation Playable Bug、限制及解决方案汇总 先自荐一下我的PlayableGraph监控工具,比官方的Visualizer好用得多:https://github.com/SolarianZ/UnityPlayableGraphMonitorTool Bug 文中提及的各项Bug及解决方案的最小化测试工程可在此仓库下…