Linux 安装

Ubuntu Server 20.04 LTS

安装

下面是部分安装步骤,其他步骤可以直接选择【Done】下一步。

网络连接

配置ubuntu存档镜像

自定义存储布局

配置名字和密码

开启ssh远程

快照程序

重启

删除安装介质

登录

sudo 指令

-功能: 以 root 的身分执行命令
-语法: sudo 其他指令
-用户: 被 root 加入到『/etc/sudoers』文件中的用户

1.root 的密码除了 root 本人知道外,不需被其他需要用到 root 权限的用户知道。使用 sudo 时,要求输入的密码是『执行 sudo 指令的用户的密码』。

2.把所有可执行 sudo 指令的用户都规范在『/etc/sudoers』这个文件中,root 可以很容易地掌控整个系统。

passwd 命令

https://man.linuxde.net/passwdhttps://www.runoob.com/linux/linux-comm-passwd.html

Ubuntu 用户管理

修改密码

修改 root 密码(默认 root 无密码,登录第一个建立的用户执行以下命令创建密码):

sudo passwd root

修改开机登录密码(用户名为username):

sudo passwd username

创建用户

创建用户,同时创建该用户主目录,创建用户同名的组(用户名为username)。

sudo adduser username

会提示设置密码,其他提示一路回车即可。

如果需要让此用户有root权限,执行命令:

root@ubuntu:~# sudo vim /etc/sudoers

修改文件如下:

1
2
3
# User privilege specification
root ALL=(ALL) ALL
username ALL=(ALL) ALL

保存退出,username用户就拥有了root权限

切换用户

切换用户的命令

su username

从普通用户切换到root用户,还可以使用命令

sudo su

在终端输入 exitlogout 或使用快捷方式 ctrl+d ,可以退回到原来用户。

在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在 suusername 之间加 - ,例如 su - root

提示符: $ 表示普通用户;# 表示超级用户。

sudo su - root 切换的 root 用户和 root 登录用户区别

普通用户使用 sudo 来执行只有 root 才能执行权限的命令,跟用 root 用户执行是不一样的,因为这时候它用的还是普通用户的环境变量。

sudo su - root 切换的 root 用户启动的是非登录交互式shell, root 登录用户启动的是登录shell,它们加载的环境变量不一样。另外,它们的 uid 也是不一样,只有 euid 是相同的。

开启 root 用户

1
2
3
4
5
6
7
8
zhaolq@ubuntu20-04:~$ sudo passwd -u root # passwd -u 启用已被停止的账户
[sudo] password for zhaolq:
passwd: password expiry information changed. # 密码过期信息已更改。
zhaolq@ubuntu20-04:~$ sudo passwd root
New password:
Retype new password:
passwd: password updated successfully
zhaolq@ubuntu20-04:~$

使用 su root 测试是否可以进入 root 用户,如果出现 # 说明设置 root 用户密码成功:

1
2
3
4
5
6
7
zhaolq@ubuntu20-04:~$ su root
Password:
root@ubuntu20-04:/home/zhaolq# # 此时已成功切换到root用户
root@ubuntu20-04:/home/zhaolq# cd ~
root@ubuntu20-04:~# pwd
/root
root@ubuntu20-04:~#

至此,我们就可以使用 root 登录啦。

如果使用的是 LightDM 图形界面,还需要修改 LightDM 配置

推荐链接: https://blog.csdn.net/sunxiaoju/article/details/51993091

开启 root ssh 登录

openssh-client 和 openssh-server

如果只是想与 SSH 服务器进行 SSH 连接,那么只需要安装客户端 openssh-client(ubuntu 默认安装,如果没有就手动安装 apt install openssh-client )。

如果想将本机开放 SSH 服务就需要安装服务端 apt install openssh-server

查看是否安装 ssh-server

dpkg命令

1
2
3
4
5
6
7
root@ubuntu20-04:/etc/ssh# dpkg -l | grep ssh
ii libssh-4:amd64 0.9.3-2ubuntu2 amd64 tiny C SSH library (OpenSSL flavor)
ii openssh-client 1:8.2p1-4 amd64 secure shell (SSH) client, for secure access to remote machines
ii openssh-server 1:8.2p1-4 amd64 secure shell (SSH) server, for secure access from remote machines
ii openssh-sftp-server 1:8.2p1-4 amd64 secure shell (SSH) sftp server module, for SFTP access from remote machines
ii ssh-import-id 5.10-0ubuntu1 all securely retrieve an SSH public key and install it locally
root@ubuntu20-04:/etc/ssh#

启动 ssh

1
2
3
4
5
6
7
root@ubuntu20-04:/etc/ssh# ps -ef | grep ssh
root@ubuntu20-04:/etc/ssh# ps -e | grep ssh
1053 ? 00:00:00 sshd

#如果看到sshd那说明ssh-server已经启动了。如果没有,可以这样启动:
root@ubuntu20-04:/etc/ssh# sudo /etc/init.d/ssh start
root@ubuntu20-04:/etc/ssh# sudo service ssh start

ssh 配置

ssh配置文件详解

ssh-server 配置文件位于 /etc/ssh/,有两个配置文件 ssh_configsshd_config

在这里可以定义 SSH 的服务端口,默认端口是 22,可以定义成其他端口号。

/etc/ssh/ssh_config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
选项参数                                 说明
Host * 选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。
ForwardAgent no 设置连接是否经过验证代理(如果存在)转发给远程计算机。
ForwardX11 no 设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set
RhostsAuthentication no 设置是否使用基于rhosts的安全验证
RhostsRSAAuthentication no 设置是否使用用RSA算法的基于rhosts的安全验证
RSAAuthentication yes 设置是否使用RSA算法进行安全验证
PasswordAuthentication yes 设置是否使用口令验证
FallBackToRsh no 设置如果用ssh连接出现错误是否自动使用rsh
UseRsh no 设置是否在这台计算机上使用“rlogin/rsh”
BatchMode no 如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用
CheckHostIP yes 设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes
StrictHostKeyChecking no 如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接
IdentityFile ~/.ssh/identity 设置从哪个文件读取用户的RSA安全验证标识
Port 22 设置连接到远程主机的端口
Cipher blowfish 设置加密用的密码
EscapeChar ~ 设置escape字符

/etc/ssh/sshd_config

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
参数选项                                                       说明
Port 22 SSH 预设使用 22 这个 port,您也可以使用多的 port !
Protocol 2,1 选择的 SSH 协议版本,可以是 1 也可以是 2 ,如果要同时支持两者,就必须要使用 2,1 这个分隔了!
ListenAddress 0.0.0.0 监听的主机适配卡!举个例子来说,如果您有两个 IP,分别是 192.168.0.100 及 192.168.2.20 ,那么只想要开放 192.168.0.100 时,就可以写如同下面的样式:
ListenAddress 192.168.0.100 只监听来自 192.168.0.100 这个 IP 的SSH联机。如果不使用设定的话,则预设所有接口均接受 SSH
PidFile /var/run/sshd.pid 可以放置 SSHD 这个 PID 的档案!左列为默认值
LoginGraceTime 600 当使用者连上 SSH server 之后,会出现输入密码的画面,在该画面中,在多久时间内没有成功连上 SSH server ,就断线!时间为秒!
Compression yes 是否可以使用压缩指令?
HostKey /etc/ssh/ssh_host_key SSH version 1 使用的私钥
HostKey /etc/ssh/ssh_host_rsa_key SSH version 2 使用的 RSA 私钥
HostKey /etc/ssh/ssh_host_dsa_key SSH version 2 使用的 DSA 私钥
KeyRegenerationInterval 3600 由前面联机的说明可以知道, version 1 会使用 server 的 Public Key ,每隔一段时间来重新建立一次!时间为秒!
ServerKeyBits 768 Server key 的长度!
SyslogFacility AUTH 当有人使用 SSH 登入系统的时候,SSH会记录信息
LogLevel INFO 登录记录的等级---》全部
PermitRootLogin no 是否允许 root 登入!预设是允许的,但是建议设定成 no!
UserLogin no 在 SSH 底下本来就不接受 login 这个程序的登入!
StrictModes yes 当使用者的 host key 改变之后,Server 就不接受联机
RSAAuthentication yes 是否使用纯的 RSA 认证!?仅针对 version 1 !
PubkeyAuthentication yes 是否允许 Public Key ?只有 version 2
AuthorizedKeysFile .ssh/authorized_keys 设定若要使用不需要密码登入的账号时,那么那个账号的存放档案所在档名!
RhostsAuthentication no 本机系统不使用 .rhosts , .rhosts 不安全!
IgnoreRhosts yes 是否取消使用 ~/.ssh/.rhosts 来做为认证!
RhostsRSAAuthentication no 针对 version 1 ,使用 rhosts 档案在/etc/hosts.equiv配合 RSA 演算方式来进行认证!
HostbasedAuthentication no 这个项目与上面的项目类似,不过是给 version 2 使用的!
IgnoreUserKnownHosts no 是否忽略家目录内的 ~/.ssh/known_hosts 这个档案所记录的主机内容
PasswordAuthentication yes 密码验证当然是需要的!
PermitEmptyPasswords no 上面那一项如果设定为 yes 的话,这一项就最好设定为 no ,这个项目在是否允许以空的密码登入!
ChallengeResponseAuthentication yes 挑战任何的密码认证!所以,任何 login.conf 规定的认证方式,均可适用!
PAMAuthenticationViaKbdInt yes 是否启用其它的 PAM 模块!启用这个模块将会导致 PasswordAuthentication 设定失效!

与Kerberos 有关的参数设定!底下不用设定
KerberosAuthentication no
KerberosOrLocalPasswd yes
KerberosTicketCleanup yes
KerberosTgtPassing no

有关在 X-Window 底下使用的相关设定
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

PrintMotd no 登入后是否显示出一些信息呢?例如上次登入的时间、地点等,预设是 yes ,但是,如果为了安全,可以考虑改为 no !
PrintLastLog yes 显示上次登入的信息!预设也是 yes
KeepAlive yes 一般而言,如果设定这项目的话,那么 SSH Server 会传送KeepAlive 的讯息给 Client 端,以确保两者的联机正常!在这个情况下,任何一端死掉后, SSH 可以立刻知道!而不会有僵尸程序的发生!
UsePrivilegeSeparation yes 使用者的权限设定项目!
MaxStartups 10 同时允许几个尚未登入的联机画面
DenyUsers * 设定受抵挡的使用者名称
AllowUsers * 设定允许的使用者名称

许可 root 登录

vim 打开 /etc/ssh/sshd_config 文件,vim 搜索 PermitRootLogin,修改如下:

1
2
3
4
5
6
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

重启 SSH 服务:

1
2
3
root@ubuntu20-04:/etc/ssh# sudo /etc/init.d/ssh reload
root@ubuntu20-04:/etc/ssh# sudo service ssh reload
root@ubuntu20-04:/etc/ssh# sudo systemctl reload ssh

安装中文环境

安装英文版ubuntu,在打开含有中文字符文件时会乱码,有需要给Ubuntu Server装中文环境

1、安装之前,执行 echo $LANG
屏幕显示:en_US.UTF-8
说明现在是英语环境,需要切换到中文环境。

2、安装中文语言包

apt-get update && apt-get install language-pack-zh-hans

3、vim /etc/default/locale
把原来英语 US 的都换成如下的内容,并且注意配置文件中不能有多余的空格

1
2
3
4
5
6
7
8
9
10
11
12
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
LC_NUMERIC="zh_CN"
LC_TIME="zh_CN"
LC_MONETARY="zh_CN"
LC_PAPER="zh_CN"
LC_NAME="zh_CN"
LC_ADDRESS="zh_CN"
LC_TELEPHONE="zh_CN"
LC_MEASUREMENT="zh_CN"
LC_IDENTIFICATION="zh_CN"
LC_ALL="zh_CN.UTF-8"

4、vim /etc/environment
原来有一行 PATH=.. 不要动这一行
另起一行,复制粘贴以下内容,并且注意配置文件中不能有多余的空格

1
2
3
4
5
6
7
8
9
10
11
12
LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"
LC_NUMERIC="zh_CN"
LC_TIME="zh_CN"
LC_MONETARY="zh_CN"
LC_PAPER="zh_CN"
LC_NAME="zh_CN"
LC_ADDRESS="zh_CN"
LC_TELEPHONE="zh_CN"
LC_MEASUREMENT="zh_CN"
LC_IDENTIFICATION="zh_CN"
LC_ALL="zh_CN.UTF-8"

5、重启机器 reboot

换源

https://developer.aliyun.com/mirror/ubuntu

更新和升级

1
2
3
4
5
6
sudo apt update           # 更新软件包列表,若找不到安装程序说明不在此列表内,更新列表后重试
sudo apt upgrade # 更新所有已安装的包(最新的不一定是最好的)

sudo apt-get autoclean # 清理旧版本的软件缓存
sudo apt-get clean # 清理所有软件缓存
sudo apt-get autoremove # 删除系统不再使用的孤立软件

CentOS-8.1.1911

安装

image-20200504014900000

image-20200504014900001

选择语言

image-20200504014907894

安装信息摘要

image-20200504015257978

网络和主机名

image-20200504015925317

时间和日期

image-20200504020109556

软件选择

image-20200504020226000

安装目标位置(自定义分区)

image-20200504020226260

image-20200504020259460

image-20200504020440549

image-20200504020550549

最终

image-20200504021146168

用户设置

image-20200504021559767

image-20200504021733189

image-20200504021917940

重启

image-20200504022107961

image-20200504022219141

登录

image-20200504022647577

删除安装介质

image-20200504124425512

修改主机名

1
2
[root@192 ~]# hostnamectl set-hostname centos8-1911.zhaolq.com
[root@192 ~]# reboot

换源

https://developer.aliyun.com/mirror/centos

1
2
3
[root@centos8-1911 ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 备份
[root@centos8-1911 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo # 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
[root@centos8-1911 ~]# yum makecache # 生成缓存

更新和升级

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# yum check-update    # 检查是否有可用的更新rpm软件包
[root@localhost ~]# yum update # 更新rpm软件包
[root@localhost ~]# yum -y update # 升级所有包,改变软件设置和系统设置,系统版本内核都升级
[root@localhost ~]# yum -y upgrade # 升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变

[root@localhost ~]# yum clean packages # 清除缓存目录下的软件包
[root@localhost ~]# yum clean headers # 清除缓存目录下的 header
[root@localhost ~]# yum clean oldheaders: 清除缓存目录下旧的 headers
# yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的headers
[root@localhost ~]# yum clean all

清空历史命令

装载共享文件夹

虚拟机设置:

image-20200510121433282

重启系统:

1
2
3
4
5
6
7
8
root@ubuntu20-04:~# ls /mnt/hgfs/
root@ubuntu20-04:~# mkdir /mnt/hgfs
root@ubuntu20-04:~# vmware-hgfsclient # 查看共享目录
SharedFolders
root@ubuntu20-04:~# vmhgfs-fuse --help
root@ubuntu20-04:~# /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o subtype=vmhgfs-fuse,allow_other # 装载所有共享
root@ubuntu20-04:~# ls /mnt/hgfs/
SharedFolders

在 Linux 客户机中装载共享文件夹 若要开机自动装载,请将装载命令添加到 /etc/profile 文件。

安装JDK

安装Docker

安装telnet

安装GUI

登录shell控制台输出错误

Ubuntu:

image-20200524222808015

CentOS: Error -107 cannot open connection!

原因:装载共享文件夹命令添加到了/etc/profile 文件中,而系统读取此文件时并未发现有共享。

解决:设置共享文件夹