文章目录
前言
记录使用 ubuntu + ssh 多用户开发环境搭建的过程
摘要
开发 wifi 的过程中需要用到 linux 的开发环境
首次使用 cygwin 和 wsl2 开发,发现编译速度很慢,影响开发效率
为了提高编译效率改用了使用虚拟机(vmware)+ubuntu 的开发环境,但是需要其他人协同开发的时候别人还要安装相同的一套环境不方便
后面就重新搞了台电脑安装 ubuntu 系统,使用 ssh 远程连接。这样开发环境只用装一次,有其他人要一起开发的时候再给他创建一个账号就可以了,注意不要轻易给新创建的用户管理员权限(管理员可以删除创建用户,获取 root 权限,增删改查所有文件的权限,防止新用户误操作)
必要工具
- u 盘(我做完用了 4.68G,越大越保险)
- ubuntu 系统 22.04.4
- 支持 ssh 的工具,在你 windows 电脑使用(putty,等)
电脑安装 ubuntu 系统
大部分电脑是固态硬盘 + 机械硬盘,可以参考链接 来分区
注意: 我安装时屏幕太小下面显示不完全,可以用 tab 键选择,enter 键确认
搭建 SSH 环境
安装 ssh server
sudo apt install openssh-server
注意: 如果防火墙是打开的将 ssh 加入防火墙过滤名单
查看防火墙状态命令
sudo ufw status verbose
如果需要防火墙开启配置防火墙允许 ssh
sudo ufw allow ssh
配置连接 ssh
- 打开配置文件
vim /etc/ssh/sshd_config
- 我登录没遇到什么问题,这里仅仅介绍常遇到问题如何修改,记录一下
- root 用户无法登录
- port 端口冲突
- 重启 ssh
sudo systemctl restart ssh
- 查询 ip 地址
注意如果下面命令无法使用根据提示安装,我这里安装过了
ifconfig
- windows 使用 putty 连接 ubuntu ssh server
- windows 使用 vscode 连接 ubuntu ssh server
因为使用 vscode 连接查看代码比较方便,这里介绍下使用 vscode 插件连接
- 安装插件
- 连接
创建用户
我是在 ubuntu 上直接创建用户比较方便,注意这样的方法创建的用户的用户名和组名是一样的
注意: 下图仅仅是说明在哪里新建用户(在 ubuntu 系统截图不方便,用虚拟机截的图)
不要创建管理员
后面有需要再研究命令行创建[TODO]
非管理员用户无法使用 sudo 处理方法
创建这个用户后发现远程登录无法使用 sudo 操作,但是给了管理员权限后,这个用户可以进入 root 模式,对 ubuntu 的这台电脑有绝对的操作
注意: 下面的 test 都是用户名
- 解决方法 1
临时给 test 用户这个权限,此时 test 用户可以使用 sudo 操作
注意注意注意:非必要不允许 test 用户是用 sudo su 进入 root (全靠自觉)
adduser test sudo
操作完成后关闭 test 用户权限
注意: 关闭这个权限后下次登录生效
sudo gpasswd -d test sudo
-
解决方法2
管理员帮忙处理 test 用户需要的 todo 操作 -
解决方法 3
欢迎各位道友给出更好的方法
每个用户独立创建 samba 共享文件夹
- 如果需要防火墙安装 samba 后参考下面命令
/* 安装防火墙 */
sudo apt install ufw
/* 查看防火墙状态 */
sudo ufw status verbose
/* 开启防火墙 */
sudo ufw enable
/* 关闭防火墙 */
sudo ufw disable
/* 防火墙允许 ssh/samba */
sudo ufw allow ssh
sudo ufw allow samba
/* 删除防火墙规则 */
sudo ufw status numbered /* 显示规则编号 */
sudo ufw delete 1 /* 根据编号删除规则 */
- samba 操作
/* 安装 samba */
sudo apt-get install samba
/* 查看 samba 版本 */
samba --version
/* 创建共享文件夹 username 是你的账户的用户名 */
sudo mkdir /home/username/share
/* 配置创建的共享目录为最高权限 */
sudo chmod 777 /home/username/share
/* 添加 samba 用户账号密码 注意:username 一定要是 ubuntu 存在的用户 后面会要求输入两次密码 */
sudo smbpasswd -a username
/* 修改 samba 服务器配置文件,注意自己先备份一份 */
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
sudo vim /etc/samba/smb.conf
/* 一般增加以下内容即可,注意 username 替换成你的用户名
多个用户复制粘贴一份修改下名称 [share] path 和 username 即可 */
[share]
Comment = share folder
path = /home/username/share
create mask = 0700
directory mask = 0700
valid users = username
force user = username
force group = username
public = yes
guest ok = yes
read only = no
browseable = yes
/* 重启 samba 服务器 */
sudo service smbd restart
/* 进入共享文件夹,注意要替换下面的 ip 地址 */
\\192.168.1.123\share
代码提交
用户登录会在自己的用户目录下生成 .ssh/ 不用担心影响别的用户
- 生成 key 仅仅举例用
ssh-keygen -t ed25519 -C “”
ssh-keygen -t rsa -b 2048 -C “”
- 将 ssh 密匙添加到自己的仓库(github/gitlab 等等)
- 设置身份
git config --global user.email “you@example.com”
git config --global user.name “Your Name”
- git 常用命令记录(后续慢慢完善)
/* 查看远程分支 */
git branch -a
/* 切换分支 */
git checkout 分支名
/* 在当前分支上创建新分支 */
git checkout -b 分支名
/* 删除本地分支 */
git branch -d 分支名
/* 删除远程分支 */
git push origin --delete 分支名
/* 查看提交记录 */
git log
/* 查看修改了什么 */
git status
/* 查看详细的改动点 */
git diff
/* 选择要提交的文件名 */
git add 文件名
/* 提交 */
git commit -m "改了什么巴拉巴拉"
/* 上传到远程仓库 */
git push
其他
- python3 软链接到 python
无法下载 python 只能下载 python3 但是 python 命令无法使用
sudo ln -s /usr/bin/python3 /usr/bin/python
- 新用户没有 .bashrc 文件
/etc/skel 是 ubuntu 各种配置文件存放目录
拷贝一个到本地目录
cp /etc/skel/.bashrc ~/