Linux国产操作系统,UCA-系统工程师学习必备技能,Linux启动流程、计划任务、密码破解和密码防破解以及ssh服务

       随着国家技术的要求和国际形势的发展,为了避免被卡脖子,国产操作系统开始进入大力发展阶段!C++方向有一个很好的优势是可以和Linux相连通,做运维、操作系统,前途无限!!!

 废话少说,我们进入本次学习的主题!!对于Linux系统启动的流程了解!!

基本流程

Linux的启动流程

1.开机自检:设备开机时,会有滴一声,自检开始,主要是检查计算机硬件,如:CPU,内存,主板,显卡等设备是否有故障

2.加载BIOS:BIOS自检,首先会在一个Boot Sequence程序中搜索可以让系统启动的引导设备(比如我们有时在BIOS中设置为从硬盘启动,或者从CD-ROM启动等等),如果BIOS找不到可以引导的设备及相关程序后,便会启动失败,如果找到相关硬盘设备,则BIOS将控制权交给启动设备中的MBR主引导记录

3.读取MBR主引导记录:大小为512字节,存放预启动信息、分区表等信息

4.grub引导菜单:系统读取内存中的grub配置信息,并依照此配置信息来启动不同的操作系统

5.加载kernel内核:根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作(内核文件都是以一种自解压的压缩格式存储以节省空间,存储于/boot目录下),自解压完成,则加载init(systemd)

6.init初始化(systemd所有进程的父进程):初始化系统环境

7.启动内核模块

root@uos:~# ls -l /boot/
root@uos:~# ls -l /boot/ -h

 

root@uos:~# vim /boot/grub/grub.cfg 

 

root@uos:~# pstree
root@uos:~# vim /etc/fstab(硬盘挂载)

计划任务

时间

root@uos:~# * * * * *
root@uos:~# 分 时 日 月 周
root@uos:~# 30 2 * * *(表示两点半,顺序是倒着的)
root@uos:~# 30 22 12 12 1(表示12月12日礼拜一22点30分)
root@uos:~# * * * * 1-5(表示周一到周五)
root@uos:~# * * * * 1,3,5(表示周一周三和周五)

*代表所有范围内的时间, 逗号‘,’代表不连续时间,横线‘ - ’表示连续的时间

root@uos:~# 0  8-18/2  *  *  *  (8点到18点之间每隔2小时)
root@uos:~# 0  *  */3  *  * (每隔3天)
root@uos:~# touch /home/tangyimin/Desktop/tang
root@uos:~# rm -f /home/tangyimin/Desktop/tang(最好使用绝对路径,相对路径可能会出错)
root@uos:~# which touch
root@uos:~# at(一次性计划任务)
root@uos:~# apt install at(这需要装一下的,但是生产一线用的不是很多)
root@uos:~# crontab(周期性计划任务)
root@uos:~# crontab -e(表示编辑)
root@uos:~# crontab -e -u root(也可以这么写)

 

Choose 1-3 [1]: 3
crontab: installing new crontab
root@uos:~# ls -l /home/tangyimin/Desktop(这是root的命令,所以有锁限制)
root@uos:~# crontab -l -u root
root@uos:~# crontab -l -e root

 

然后就可以在里面编写内容。

root@uos:~# crontab -r -u root(删除)
root@uos:~# vim /tang.sh(可以自己在脚本里编写)
root@uos:~# bash /tang.sh
root@uos:~# rm -f /home/tangyimin/Desktop/tang*
root@uos:~# crontab -e -u root

bash就可以执行任务了。

这个就是限制了用户权限。

touch /tmp/uosfile crontab -e -u root 第一次使用crontab -e时需选择编辑器,vim.basic完整版的vim;vim.tiny是tiny版本的vim,功能比较少。 */1 * * * * echo "UOS SYSTEM" >> /tmp/uosfile

crontab -l -u root 查看某用户的计划任务列表,不指定用户则查看当前用户。

密码破解和密码防破解

破解root密码

1.开机按"e"键,进入grub引导菜单

2.找到linux vmlinuz-* 开头的行在末尾添加rw init=/bin/bash

3.按ctrl+x或F10继续启动

4.passwd root

5.reboot -f 或手动重启

这种修改方式必须要接触到物理设备,远程的操作是不支持的

 

防止破密码:增加grub口令

1.grub-mkpasswd-pbkdf2 #输入密码,使用伪随机函数生成密钥grub.pbkdf2.sha512.10000.......

2.vim /etc/grub.d/40_custom

3.set superusers="uos"

4.password_pbkdf2 uos grub.pbkdf2.sha512.10000.6D67AA5F717AFE93D368A57804BC21B136DCA9D30CBA6F74D9ABCBA32E76B59758E04A5D0A766734EDE586DEA2EC3E7F786F127FB55C7922826455612B5406F5.30060B65CA1D5736364D109C7CB6459E5E2851EFF460E43D72AAB8A592784B2D5353D9B51EE1EAFBC45AF739417CFC5EC12EE92D546E9BC6A7BB58444BC27455 5.update-grub 重启验证

root@uos:~# grub-mkpasswd-pbkdf2
输入口令:
Reenternpasswd:
root@uos:~# vim /etc/grub.d/40_coustom
root@uos:~# update-grub
root@uos:~# reboot(重启)

救援模式

启动修复

1.rm -rf /boot/* 2.关机BIOS,设置光盘启动,点击install UOS后,按ctrl+alt+f2进入命令行模式 3.sudo mount /dev/sda2 /mnt(随便挂) 挂载根分区

  1. sudo mount /dev/sda1 /mnt/boot 挂载/boot分区

  2. sudo mount --bind /dev /mnt/dev 硬件设备,bind绑定(目录挂载到目录)

  3. sudo mount --bind /proc /mnt/proc

  4. sudo mount --bind /sys /mnt/sys

  5. sudo cp -rf /boot/* /mnt/boot/ 将光盘引导/boot复制到系统/boot

  6. sudo chroot /mnt 把根目录换成指定的目的目录

  7. grub-install /dev/sda 将GRUB安装到指定硬盘或分区上

  8. update-grub 恢复grub.conf

  9. exit

  10. reboot 选择硬盘启动

root@uos:~# rm -rf /boot/*
然后就是关机BIOS,设置光盘驱动,点击install UOS后千万不要正式安装,这样内容会被覆盖掉的,要按Ctrl+Alt+F2进入命令行
root@uos:~# sudo mount/dev/sda2/mnt
root@uos:~# sudo mount/dev/sda1/mnt/boot
root@uos:~# sudo mount/dev/mnt/dev
root@uos:~# sudo mount-bind/dev/mnt/dev
root@uos:~# sudo mount-bind/proc/mnt/proc
root@uos:~# sudo mount-bind/proc/mnt/sys
root@uos:~# sudo cp-rf/boot/*/mnt/boot/
root@uos:~# sudo chroot/mnt
root@uos:~# grub-install /dev/sda
root@uos:~# update-grub

按照UCA-系统工程师课程上来的操作:

root@uos:~# reboot

 

然后就启动到光盘启动,通过光盘启动就支持救援

  

千万不要选择直接安装,直接安装的话,原本的磁盘就会被清空。要让它读入,当有图形化页面出现的时候在进行操作Ctrl+Alt+F2,进入命令行模式。

就是在此图处Ctrl+Alt+F2实现命令行模式转换

 

ssh的免密登录

root@uos:~# useradd -m tang1
root@uos:~# passwd tang1
root@tang1:~Desktop# useradd -m tang2
root@tang1:~Desktop# passwd tang2
root@tang1:~# su - tang1
$ ssh tang2@192.168.163.145
$ ssh-keygen (公钥)

上面的是博主本人的,自己的地址自己看啊!!! 

$ ls -l /home/tang1/.ssh/

要把公钥传到tang2下面,需要如下操作

$ ssh-copy-id tang2@192.168.163.145

总而言之ssh免密码登录 server1: ssh-keygen 一直回车 ssh-copy-id root@192.168.200.202 server2验证 cat ~/.ssh/authorized_keys server1的公钥已添加

针对ssh服务,我们深入了解一下

root@uos:~# dpkg -l | grep ssh

 

openssh-client是客户端,openssh-server是服务器端。

当然还是先看它的服务是怎么样的。

root@uos:~# systemctl status ssh

 

ssh是客户端连接工龄,sshd是服务端进程。

Linux下ssh和sshd的区别:ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式。

root@uos:~# vim /etc/ssh/sshd_config

PermitRootLogin prohibit-password

要理解就需要用到下面的命令:

root@uos:~# ifconfig

root@uos:~# ping 192.168.163.145
root@uos:-/Desktop# ssh tang@192.168.163.145
tang@uos:~$ touch /home/tangyimin/Desktop/tangfile
root@uos:~# passwd root(改密码)

密码永远是不对的,就算是passwd改密码了,也是不可进入的。所以要改就需要下面的步骤来进行。

root@uos:~# vim /etc/ssh/sshd_config
然后在vim里面改文件
#PermitRootLogin prohibit-password(不建议在原来的地方直接改,建议yy复制一下,然后在复制的内容中改)
PermitRootLogin yes
然后就退出
root@uos:~# systemctl restart sshd(然后必须重启一下,生效一下)
root@uos:~# ls -l /home/tangyimin/Desktop

传文件:

root@uos:~# scp /home/tangyimin/Desktop/tangfile1 tang@192.168.163.145 :/tmp(传输命令)

把这个文件/home/tangyimin/Desktop/tangfile1拷贝到 tang@192.168.163.145这台机器下的/tmp文件里。

从远程传到本机:

root@uos:~# scp -r tang@192.168.163.145 :/home /tmp

 以上内容均可以在统信镜像下的虚拟机上实现或者可以在Linux操作系统上执行。

选择Linux,是我们程序员进阶的一大特长和发展!!!

 

 希望大家能多多支持!!!!!!!互相关注啊!!!!!蟹蟹蟹蟹!!!!!

  • 31
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Williamtym

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值