VMWare中linux系统的创建、复制与用户名修改
运维一 VMWare中linux系统的创建、复制与用户名修改
文章目录
创建虚拟机,用于模拟分布式系统的项目
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、虚拟机的创建(以Ubuntu系统为例)
############################################################################################
1. 选择镜像并设置硬件参数
2. 设置安装模式
一般情况下不选择最小化安装,最小化安装连ping工具都没有
3. 设置子网模式和IP获取方式
横杠不转的时候才是网络已连接好
首先在物理机查看虚拟子网的ip地址,然后在VMWare软件中设定好动态IP还是静态IP,可以看到默认的网关是.2结尾的IP地址
注意,VMWare的NAT网关地址尽量保持默认,如果改变为1可能会导致下一个步骤连接不上网络
- 桥接模式是将虚拟机直接当成和物理机平等的机器,直接接入和物理机网络同层级的网络,和物理机的实际IP处于同个物理子网。
- host-only是创建物理机和虚拟机之间的虚拟子网,虚拟机和物理机两两之间可以互相连接,但是虚拟机访问不了外面的网络。
- NAT模式依旧是创建物理机和虚拟机之间的虚拟子网,虚拟机可以借助物理机的IP访问外面的网络,虚拟子网外无法访问虚拟机。
– NAT的全称是Network Address Translation,中文是网络地址转换。
如果勾选了DHCP,那么就不需要在下面设置网络;
如果不勾选DHCP,那么就需要按照下面的设置来配置网络。
注意看,网络连接好的情况下,“NOTES”下面的横杠是停止转动的;等停止转动的时候再开始下一步。
- 采用NAT模式将虚拟机的ip地址设置为静态的,将网关ip的最后一位变为0加上长度标志/24作为子网。
- create bond可以将多个物理网卡映射为单个逻辑网卡,参考链接:https://blog.csdn.net/ZCZC946/article/details/117690747
然后会询问是否需要更新到最新版本,选择Continue without updating
4. 分区划分方式
下一步选择分区的组织方式,LVM是在硬盘分区之上加上一层逻辑层,这里暂时保持默认设置;Encrypt the LVM group with LUKS的中文是“使用 LUKS 加密 LVM 组“,深入了解:https://blog.csdn.net/bbc955625132551/article/details/71293699
默认的
重新思考后进行划分的
物理机的配置如下。
作为虚拟机的时候,没必要划分出交换分区swap;参考物理机的boot空间,缩小以上虚拟机中partition 2的空间大小。
修改ubuntu-lv
这里是虚拟机,一般不保留配置分区;那么只设置根分区,甚至不设置/home分区,空间的分配就能更加灵活
物理机中建议/home分区,那么重装系统之后,关于用户的环境配置不会丢失;但是不建议多划分/usr分区,原因见下点
曾经在物理机中多设置出一个/usr分区,并在装有双系统的硬盘上的linux系统内核升级崩溃后,截止至2024.01使用经典的修复工具boot-repair修复失败,参考:https://blog.csdn.net/qq_41601836/article/details/111241227
这里的虚拟机将剩余空间全部分配给根目录
最终效果
5. Server名称和用户名称的设置
server名中不要用下划线,否则下划线会被自动去掉,达不到预期效果。
6. 预安装ssh和其它热门服务
默认安装好k8s,docker和服务器监控prometheus的最新stable版本。
开机后,系统会自动进行一些包的检测,使用以下命令检查。
- 命令ip address可以显示网卡的IP地址,使用命令ip addr show ens33可以单独显示网卡ens33的状态。
- 命令ping 172.16.41.1可以检查和物理机的连通性。
- 命令sudo apt-get update 可以更新一些系统需要的包。
步骤2选择最小安装则这里的ping命令不存在,需要额外安装
7. 其它探索
设置IP地址的静态和动态,vi /etc/netplan/00-installer-config.yaml,修改后使用更新命令sudo netplan apply,链接:https://linux.cn/article-15181-1.html
[注意事项]
选择最小安装-离线安装(不要检查源)
二、虚拟机的克隆
主要目的是构建集群,已知有下面两种方式
- 路径1,系统复制
- 路径2,通过VMWare进行克隆
需要保证的因素: - MAC地址变化,保证不和原来的虚拟机发生冲突
- IP地址变化(静态地址的话,需要重新修改)
- 新的系统里面保证安装的软件能够使用
根据已有资料说明通过VMWare克隆会是目前比较好的方案,参考:https://blog.csdn.net/wangmx1993328/article/details/108036920
1. 克隆新虚拟机
为了效率,暂时没有必要去探究另一种方案的局限性,这个思维相当重要。
为了方便后续可能的迁移和避免耦合,需要复制full版本(区别于linked)并更改名字。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/c31106e19ab446c9aabd1bb8ea762899.png)
2. 重新生成MAC地址
如果不更改MAC地址,可能会导致网络不可用
3. 更改服务器名称
# 通过这个命令更改后,立即生效,重新登陆或者重启后可以看见变化
hostnamectl set-hostname server02
cat /etc/hostname
Ctrl + D可以退出当前登陆
4. 更改静态IP地址
使用以下命令进行更改和验证
sudo vi /etc/netplan/00-installer-config.yaml
# 修改IP后,使用生效命令sudo netplan apply,这步可能会报错但是验证没问题就可以
sudo netplan apply
# 验证
ip address
ping 8.8.8.8
结果(其它机器访问本机,本机访问其它机器)
三、Linux权限管理
1. 三个权限文件(用户、组别、时效)
# 下面三个命令分别显示系统中 用户操作权限、用户组、用户的有效期权限
# 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
# 比如 hero_a:x:1000:1000:ourWorks:/home/hero_a:/bin/bash
cat /etc/passwd
# 组名:口令:组标识号:组内用户列表
# 比如 adm:x:4:syslog,hero_a
cat /etc/group
# 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
sudo cat /etc/shadow
2. 文件权限管理chmod
- 权限查看ls -l,得到形如“drwx------”的字符串
第一个字符d代表的是文件夹与否,后面的9个字符中每三个字符为一个组别,依次代表所属用户权限、组别用户权限和其它用户权限。其中字母代表的权限分别如下:r(read)、w(write)、x(execute)和-(无此权限)。
实践如下,修改权限后本用户读取不了。
- 权限分配chmod
- 数字分配(更简约)
赋值权限的时候只关注后面9位字符,先将不是“-”的地方记录为1,是-的地方记录为0,每3个为一组。一组中的三个二进制位表示一个权限集合,每个集合可以表示为100、010、001、000的叠加组合,转化为十进制分别是4(read)、2(write)、1(execute),这个组合之后的取值范围是0~7。 - 直接指定(更形象)
- 表达式指定(折中)
chmod 用户标识+操作符+权限 文件
用户标识分为u(user)、g(group)、o(other)、a(all);操作符为+(增加),-(删除),=(更新);权限为rwx(可以缺失个别字母)
- 数字分配(更简约)
- 改变文件所属用户、所属类别chown
#遇到权限不足的情况自行添加sudo,没sudo权限就联系管理员吧
chown user1 aFile #修改aFile的所属用户为user1;
chown user1: aFile #修改aFile的所属用户为user1,所属用户组为user1所在的主组;
chown :Group1 aFile #修改aFile的所属用户组为Group1,所属用户不变;
chown user1:Group2 aFile #修改aFile的所属用户为user1,所属用户组为Group2;
3. 用户权限管理usermod
# 使用whoami可以看出目前登陆的用户
# 使用usermod可以修改用户的权限
# 修改用户名之前必须使用Ctrl + D退出当前用户
# 1. 修改用户名
sudo usermod -l new_username old_username
# 2. 修改用户组别
sudo usermod -g new_gid username
# 3. 将用户添加到组别group1,group2
usermod -a -G group1,group2 USER
# 4. 更改用户家目录,加上-m就会移动原来的家目录的内容,不加就是只是创建新的家目录
usermod -d HOME_DIR -m USER
# 还具有修改账户备注名称、设定有效期、锁定或解除账户的功能
实际操作,进行microk8s的权限更改
cat /etc/group | grep "hero_a"
microk8s enable
sudo usermod -a -G microk8s hero_a
mkdir ~/.kube && sudo chown -R hero_a ~/.kube
cat /etc/group | grep "hero_a"
4. 更改用户名和用户home目录
不能修改当前登陆的用户名
首先使用sudo passwd root,输入当前用户密码一次,输入root密码两次。
然后使用Ctrl+ D退出当前用户,接着使用root用户进行登陆并使用下面命令进行修改。
# 展示
cat /etc/passwd
# 步骤一,将用户hero_a的目录更改为hero_b目录,必须加上参数-m,否则不会移动原hero_b目录的内容
usermod -d /home/hero_b -m hero_a
# 步骤二,将用户hero_a的名称更改为hero_b
usermod -l hero_b hero_a
注意,步骤一usermod命令中 hero_a 是用户名
步骤一和步骤二不能颠倒,否则就会报错
报错是/home/hero_b文件夹不存在;即使手动创建文件夹后继续执行颠倒后的最后一步,也会出现直接跳过。[先改变用户名已改变默认的home目录,而系统是直接通过在/etc/passwd里寻找hero_b的home目录;后一个命令只通过用户名寻找home目录,此时认为hero_b用户的home目录已是/home/hero_b,usermod -d命令紧跟着的文件夹也是它,所以不作修改而是直接报告no change]
然而,原先的配置文件等很多信息都存在文件夹/home/hero_a中
总结
- 数字表示法:数字5代表的三位二进制数是101,那么代表的权限就是可读、可执行(不能写)。
- 使用命令chmod 100 testFile.txt,就是说给testFile.txt的所有者hero_a分配执行权限,限制读权限和写权限;使用vi testFile.txt会出现权限的提示,使用sudo vi testFile.txt并输入密码后就能够有权限(超级权限)。
- 需要使用命令更改用户名和用户文件夹时,先要更改用户默认文件夹再更改用户名;记得保持两个步骤的连续性,要么都执行,要么都不执行。
- 初始化root用户的时候,使用sudo passwd root来设置它的密码,需要验证当前用户的密码;设置过root用户的密码之后,以后就不能用hero_a的密码进行超级权限的操作了。
参考链接:
- https://blog.csdn.net/yl19870518/article/details/100776136
- https://cloud.tencent.com/developer/article/2307512
- https://www.runoob.com/linux/linux-user-manage.html