Ubuntu Server: Quick Configuration Guide

本文给出了初次安装好 Linux Ubuntu Desktop 版之后推荐掌握的一些基础配置方法,完成以下内容的阅读可以帮助新手快速掌握 Ubuntu Server/Desktop 的使用。

本文所作目的:一方面作为 Ubuntu 快速配置记录,方便下次使用;另一方作为分享以帮助更多的 Ubuntu 小白快速上手。

补充:如果文中有表述不正确的地方,望各位大佬不吝指正~~~


系统网络配置以及网络代理

首先,你需要掌握 Ubuntu Server 系统网络信息的基本查看方法:

查看网卡信息

通过 Ubuntu Server 的 Shell 中,执行 ifconfig 命令进行查看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ ifconfig

# 网卡信息:
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.131 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::87a4:c514:5d1d:2b86 prefixlen 64 scopeid 0x20<link>
ether 30:9c:23:76:b9:0f txqueuelen 1000 (Ethernet)
RX packets 832257 bytes 1230044351 (1.2 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 371708 bytes 28311409 (28.3 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xf7100000-f7120000
# 本地回环:
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 354776 bytes 26600434 (26.6 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 354776 bytes 26600434 (26.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

上面的 enp0s31f6 就是我们要设置网络的网卡名称,有些机器可能有好几块网卡,一定要看清楚!!!

如果没有 ifconfig 指令,所以我们要先安装 net_tools

1
$ sudo apt-get install net-tools

网络配置

这里提供两种 Ubuntu Server 网卡(网络适配器)的网络配置方法:

  • GUI 配置方法:DeskTop 环境下推荐使用图像化界面进行配置
  • 文件配置方法:使用网络相关的配置文件进行配置

网卡(网络适配器)需要配置的信息有:网络 IP 地址(IP ADDRESS)&& 子网掩码(NETMASK)&& 网关(GATEWAY)&& 域名解析服务器地址(DNS)。

| ================================================== Split Line =============================================== |

GUI 配置方法

Desktop(桌面)依次点击 >>> 系统设置【System Sets】>>> 网络设置【Network Sets】>>> 有线【Wired】设置 >>>【IPV4 Setting】:

这里可以选择设置网络为:自动 DHCP(Automatic(DHCP))<<< 动态 IP;或者 手动(Manual 模式)<<< 静态 IP

1
2
3
4
5
6
7
# 示例静态网络信息配置如下:

ADDRESS = 192.168.0.131 # IP 地址
NETMASK = 255.255.252.0 # 子网掩码
GATEWAY = 192.168.0.1 # 网关

DNS = 114.114.114.114, 8.8.8.8 # DNS

在命令行中输入 sudo vim /etc/NetworkManager/NetworkManager.conf,将里面的 managed = flase 改为 managed = true。让 NetworkManager 管理网卡,以监控网卡状态变化(up/down)。

设置完成之后,如果你不想每次配置完网络后重启服务器,可以通过重启相关的网络服务使配置生效(见后文重启网卡)。


如果你的 Ubuntu Server 版本低于 18.04,可使用当前章节的配置方法。否则请跳转至【文件配置方法(新)】。

文件配置方法(旧)

通过修改网卡配置文件的方法来配置网络:

[1] >>> 网卡配置

你可以通过,修改网卡配置文件 /etc/network/interfaces 来为 Ubuntu Server 设置网络:

1
sudo vim /etc/network/interfaces

网卡配置文件默认文件内容如下:

1
2
3
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

| ================================================== Split Line =============================================== |

↓↓↓↓↓↓ DHCP && 静态 IP && DNS 设置方法 ↓↓↓↓↓↓

[1.1] >>> 设置动态获取 IP

1
2
3
# interfaces(5) file used by ifup(8) and ifdown(8)
auto enp0s31f6
iface enp0s31f6 inet dhcp

注意,上面的网卡名称要依据 ifconfig 中查询到的网卡信息进行设置。

默认情况下,Ubuntu Desktop 版网络配置就是动态 IP。可以通过 >>> 【右上角网络标识】–>【Edit Connections】–>【Wired connection X】–> 在【IPV4 Settings】进行查看,可以看到:Method:Automatic(DHCP)

如果你不想每次配置完网络后重启服务器,可以通过重启相关的网络服务使配置生效(见后文重启网卡)。

| ================================================== Split Line =============================================== |

[1.2] >>> 设置静态 IP

事实上,很多情况下,我们更多的想给网卡分配一个固定 IP。

网卡的 IP 地址不是随便给定的,其依赖于所在局域网络的网关(路由)。

假设你的网关 IP 地址为:192.168.0.1/24,你可以通过 |>>> 在线网络和 IP 地址计算器 <<<| 站点,获取当前待配置网卡可用 IP 地址配置信息,做如下配置:

1
2
3
4
5
6
# interfaces(5) file used by ifup(8) and ifdown(8)
auto enp0s31f6
iface enp0s31f6 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1

[2] >>> DNS 配置

配置域名解析服务器(DNS)用于域名解析,以阿里 DNS 域名解析服务器地址:223.5.5.5 为例:

配置 DNS 服务器地址之后,想要配置生效,也要重启服务器或网络服务(见后文重启网卡)。

↓↓↓↓↓↓ 方法一 ↓↓↓↓↓↓

通过在网卡配置文件 /etc/network/interfaces 中进行设置:

1
2
3
4
5
6
7
auto enp0s31f6
iface enp0s31f6 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1

dns-nameservers 223.5.5.5

重启服务器或网络服务,DNS 生效后会体现在 /etc/resolv.conf 文件中:

1
2
3
4
5
6
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

# 上面的内容是原来就有的,下面是新加的内容:
nameserver 223.5.5.5

| ================================================== Split Line =============================================== |

↓↓↓↓↓↓ 方法二 ↓↓↓↓↓↓

直接通过域名解析服务器配置文件 /etc/resolv.conf 来配置 DNS:

如该配置文件的首行是否为:# This file is managed by man:systemd - resolved(8). Do not edit.,请跳转至 >>> 方法三。

1
2
3
4
5
6
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

# 上面的内容是原来就有的,下面是新加的内容:
nameserver 223.5.5.5
  • 如果重启系统或者网络后,ping 公网 ip 地址通,但是域名不通,编辑下面的文件,在其中加上上面的内容:

    /etc/resolvconf/resolv.conf.d/base 或:/etc/resolvconf/resolv.conf.d/head

  • 如果还是无法上网,可以将 /etc/NetworkManager/ 目录下的 system-connections 目录删除或者移走,然后再重启网络或者系统。

| ================================================== Split Line =============================================== |

↓↓↓↓↓↓ 方法三 ↓↓↓↓↓↓

如果你发现每次在 /etc/resolv.conf 配置 DNS 之后(方法二),重启服务器 DNS 就会重置为原始 127.0.1.1

仔细查看才发现 /etc/resolv.conf 本身在第一行的注释里面已经写了 “Do not edit”:

1
# This file is managed by man:systemd - resolved(8). Do not edit.

也即是说,当前 /etc/resolv.conf 归 systemd 管了,配置文件变为:/etc/systemd/resolved.conf,你可以在其中添加 DNS 信息:

1
2
DNS=114.114.114.114
DNS=8.8.8.8

然后,在 Ubuntu Terminal 中执行如下命令:

1
2
3
4
5
systemctl restart systemd-resolved
systemctl enable systemd-resolved

mv /etc/resolv.conf /etc/resolv.conf.bak
ln -s /run/systemd/resolve/resolv.conf /etc/

再查看 /etc/resolv.conf 文件就可以看到新的 DNS 信息已经写入其中了。


[3] >>> 重启网卡

如果你不想每次配置完网络后重启服务器,可以通过重启相关的网络服务使配置生效:

  • 重起网络服务:
1
2
3
4
5
6
$ sudo /etc/init.d/networking restart

# 或者:

# Server 中必须安装有 NetworkManager:
$ sudo service network-manager restart

个别系统重启服务后地址不变,这一般是缓存的问题,可以通过 ip 命令刷新一下缓存。

  • 重启 DNS 服务:
1
2
3
4
5
6
7
8
# 配置 `/etc/resolv.conf` 后重启方法:
$ sudo /etc/init.d/resolvconf restart
# 或者:
$ sudo service resolvconf restart

# 配置 `/etc/systemd/resolved.conf` 后重启方法:
$ systemctl restart systemd-resolved
$ systemctl enable systemd-resolved

文件配置方法(新)

从 Ubuntu 18.04 开始,开始使用 Netplan 工具来配置 IP 了,而不是使用 interfaces 配置文件和 networking 脚本。

如果还安装旧版本方法执行会产生异常:

1
2
3
4
5
ubuntu@ubuntu:~$ sudo systemctl restart networking
Failed to restart networking.service: Unit networking.service not found.
ubuntu@ubuntu:~$ sudo /etc/init.d/networking restart
[sudo] password for ubuntu:
sudo: /etc/init.d/networking: command not found

| ================================================== Split Line =============================================== |

下面正式来看使用 Netplan 工具来配置 IP 的全过程:

[1] >>> 检查环境

检查当前 Server 环境是否可用 Netplan 工具来配置 IP:

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
# 检查 Ubuntu 版本:
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal


# netplan 工具默认已经安装:
$ netplan --help
usage: /usr/sbin/netplan [-h] [--debug] ...

Network configuration in YAML

optional arguments:
-h, --help show this help message and exit
--debug Enable debug messages

Available commands:

help Show this help message
apply Apply current netplan config to running system
generate Generate backend specific configuration files from /etc/netplan/*.yaml
get Get a setting by specifying a nested key like "ethernets.eth0.addresses", or "all"
info Show available features
ip Retrieve IP information from the system
set Add new setting by specifying a dotted key=value pair like ethernets.eth0.dhcp4=true
rebind Rebind SR-IOV virtual functions of given physical functions to their driver
try Try to apply a new netplan config to running system, with automatic rollback

| ================================================== Split Line =============================================== |

Netplan 工具通过网络配置文件的方法来配置 Ubuntu 网络:

[2] >>> 网卡配置文件

Ubuntu 中的 “ 网卡配置文件(*.yaml)” 位于系统配置目录(/etc)下的 Netplan 配置目录(/etc/netplan/):

1
2
$ ls -l /etc/netplan/
-rw-r--r-- 1 root root 104 3月 16 2023 01-network-manager-all.yaml

需要注意,这里根据系统版本以及平台环境的不同,可能文件名称有所不同。你可以:

1
2
3
4
5
6
7
8
9
# 查看 Netplan 网络配置文件默认内容:
$ cat /etc/netplan/*.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager

# 修改网络配置文件:
$ sudo vi /etc/netplan/*.yaml

[4] >>> 网络测试

配置网卡和 DNS 之后,我们需要 reboot 重启服务器 或 重启网卡,使得配置生效。

首先查看配置后网卡信息:

1
$ ifconfig

然后检测网络连通性:

1
2
$ ping www.baidu.com
PING www.a.shifen.com (111.13.100.91) 56(84) bytes of data.

或者:

1
2
$ sudo apt-get install curl
$ curl www.baidu.com

首先 Ubuntu 分为 Server 版和 Desktop 版,这两种版本的网络设置方式有很大区别,主要是配置入口工具不一样。

Desktop 版:有一个 Network-manager 软件,要尽量使用这个软件来进行 IP 的设置。
Server 版:不同版本号,IP 配置方法有较大差别。例如:低于 Ubuntu16 版使用 networking,而 Ubuntu18 使用 netplan。


配置网络代理

出于信息安全,大部分公司都会存在内、外网以进行网络限制,往往我们需要通过网络代理服务器才可以访问外网。

下面我们来看配置网络代理服务的方法:

GUI 配置

[1] >>> 配置系统代理

Desktop 依次点击:【System Sets】–>【Network Sets】–>【Network Proxy】,配置系统网络代理内容如下:

1
2
3
# 示例网络代理配置如下:
HTTP Proxy:http://proxy.xxxxxx.com:8080
HTTPS Proxy:https://proxy.xxxxxx.com:8080

其中,proxy.xxxxxx.com 表示用于网络代理的服务器地址,8080 为代理服务器用于网络代理的端口。

配置系统代理后,全局生效!!!Ubuntu 中所有应用均可以使用系统代理访问外网。

[2] >>> 配置浏览器网络代理

1
2
3
# 你可以仅仅为浏览器设置网络代理,以浏览器可访问外网

# 从浏览器设置中找到网络代理设置相关,设置其为 【使用系统代理设置】 或 【自定义代理】。

配置文件

[1] >>> 配置系统代理

配置系统代理后,全局生效!!!Ubuntu 中所有应用均可以使用系统代理访问外网。

1
2
3
4
5
6
7
8
$ vim ~/.bashrc

# 文件尾追加:http(s)_proxy = http(s)://用户名:密码@代理地址:代理端口。如下:
export http_proxy = http://用户名:密码@proxy.xxxxxx.com:8080
export https_proxy = https://用户名:密码@proxy.xxxxxx.com:8080

# 更新 bashrc
$ source ~/.bashrc

[2] >>> 单独配置应用程序网络代理

注意,我们可以单独为 Ubuntu 中应用程序配置代理,例如 apt-get、wget 等,为应用程序单独设置代理的方法可参见网络,这里不赘述。

当然,应用程序可以直接使用上文配置好的系统网络代理。


Proxyenv (推荐)

很多人可能发现,一旦给系统设置代理后会影响其它用户使用,我们更希望能够即开即关,而上述的网络代理设置方法不太灵活。

下面给出一种通过自定义网络代理配置文件,实现随时切换网络环境(内、外网)的方法:

[1] >>> 启用网络代理

自定义一个用来进行配置网络代理的文件:

1
$ vim ~/.proxyenv

模板示例内容如下,可以根据需求进行组合添加:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/bin/sh

# For terminal
export proxyserveraddr=123.123.123.123
export proxyserverport=8087
export HTTP_PROXY="http://$proxyserveraddr:$proxyserverport/"
export HTTPS_PROXY="https://$proxyserveraddr:$proxyserverport/"
export FTP_PROXY="ftp://$proxyserveraddr:$proxyserverport/"
export SOCKS_PROXY="socks://$proxyserveraddr:$proxyserverport/"
export NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com,200.200..;11.11.0.0;"
export http_proxy="http://$proxyserveraddr:$proxyserverport/"
export https_proxy="https://$proxyserveraddr:$proxyserverport/"
export ftp_proxy="ftp://$proxyserveraddr:$proxyserverport/"
export socks_proxy="socks://$proxyserveraddr:$proxyserverport/"
export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com,200.200..;11.11.0.0;"

# For apt-get
cat <<-EOF| sudo tee /etc/apt/apt.conf
Acquire::http::proxy "http://$proxyserveraddr:$proxyserverport/";
Acquire::https::proxy "https://$proxyserveraddr:$proxyserverport/";
Acquire::ftp::proxy "ftp://$proxyserveraddr:$proxyserverport/";
Acquire::socks::proxy "socks://$proxyserveraddr:$proxyserverport/";
EOF

每次使用网络代理时,可以使用如下命令启用网络代理:

1
$ . ~/.proxyenv

| ================================================== Split Line =============================================== |

[2] >>> 关闭网络代理

自定义一个用来关闭配置网络代理的文件:

1
$ vim ~/.unproxyenv

模板示例内容如下,可以根据需求进行组合添加(要保证与上文 ~/.proxyenv 内容相对应):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/sh

# For terminal
unset proxyserveraddr
unset proxyserverport
unset HTTP_PROXY
unset HTTPS_PROXY
unset FTP_PROXY:
unset SOCKS_PROXY
unset NO_PROXY
unset http_proxy
unset https_proxy
unset ftp_proxy
unset socks_proxy
unset no_proxy

# For apt-get
echo -n ""|sudo tee /etc/apt/apt.conf

使用网络代理结束时,可以使用如下命令关闭网络代理:

1
$ . ~/.unproxyenv

| ================================================== Split Line =============================================== |

[3] >>> 网络代理配置完整样例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
## 1. 启用代理:

$ vim ~/.proxyenv
# 添加内容如下:
#!/bin/sh
export http_proxy="http://210.83.210.xxx:9527"
export https_proxy="http://210.83.210.xxx:9527"
export ftp_proxy="http://210.83.210.xxx:9527"
export no_proxy="127.0.0.1, localhost, 10.1.*.*"

$ . ~/.proxyenv

## 2. 取消代理:

$ vim ~/.unproxyenv
# 添加内容如下:
unset http_proxy
unset https_proxy
unset ftp_proxy
unset no_proxy

$ . ~/.unproxyenv

更换 Apt-get 软件源 (换源)

在介绍 Apt-get 换源之前需要介绍一下 Apt-get 中源概念:

何为源

就像家里的电视机,Apt-get 相当于买了一台电视机,有了电视不意味着你就能看节目了,你要手动添加频道(信号源)才能看你想看的电视节目。

你可以将 Apt-get 源理解为一个存放了各种 Apt-get 应用包的远程服务器,更进一步的说 源 是用于访问服务器的链接。

Apt-get,默认使用的是 Ubuntu 官方提供的源,这时 Apt-get 源 设置的是官方源对应的链接。当你使用 Apt-get 进行包的安装、更新操作时,会从官方源中去搜索、下载你需要的包。

而由于 Apt-get 使用的官方源位于外网,网络时好时坏,这可能会导致使用 Apt-get 进行包的安装、更新等操作失败的情况:

1
2
3
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
ConnectTimeout ......

这时就需要更换一个稳定、高速的源来提供良好的网络环境。所幸的是,国内镜像源站点提供了 Apt-get 的镜像源,感谢开源~~~


Apt-get 源的配置文件是:/etc/apt/sources.list,你可以在其中配置国内镜像源。

备份官方源

换源之前,先来将官方源备份一份:

1
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backups

一旦配置出错,或者想还原官方源的时候可以随时还原。


更换国内源

修改源配置文件中的官方源为国内镜像源:

1
$ sudo vim /etc/apt/sources.list

国内常用 Ubuntu 镜像源:教育网的源(比如:清华源、中科大源)、阿里源、网易源等等。

需要注意的是:同一镜像源中,不同版本的 Ubuntu 源是不同的。

例如:ubuntu 14.04 LTS (trusty)/ubuntu 16.04 LTS (xenial)/ubuntu 18.04 LTS (bionic)/ubuntu 20.04 LTS (focal)/ubuntu 22.04 LTS (jammy)/ubuntu 23.04 (lunar)/ubuntu 24.04 (noble)/…?

修改源配置文件时,需要根据你的 Ubuntu 具体版本来添加相应的源!!!

1)教育网推荐(中科大的、清华源)

1
2
3
4
5
### 1. 清华源:https://mirrors.tuna.tsinghua.edu.cn
Apt-get Sources Help >>> https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

### 2. 中科大源:https://mirrors.ustc.edu.cn
Apt-get Sources Help >>> https://mirrors.ustc.edu.cn/help/ubuntu.html

2)阿里源

1
2
阿里源: https://mirrors.aliyun.com/ubuntu/
Apt-get Sources Help >>> https://developer.aliyun.com/mirror/ubuntu

3)网易源

1
2
网易源: https://mirrors.163.com/
Apt-get Sources Help >>> https://mirrors.163.com/.help/ubuntu.html

其中,Apt-get Sources Help 后面的网址是各个镜像源 Ubuntu 换源的帮助文档。


更新源

换源后,你需要更新一下软件源,以启用新源:

1
$ sudo apt-get update

| ================================================== Error Info =============================================== |

当你使用 apt install 安装应用包石,你可能会遇到 E: Unable to locate package xxxxx 的错误。

此时,你可以重新更新一下软件源,然后重启执行安装命令。如果仍然无法使用,可以更换另一个软件源,然后更新软件源后重试。

| ================================================== Split Line =============================================== |

你可以使用新源,升级系统中应用程序(可选):

1
$ sudo apt-get upgrade

PPA

使用 Ubuntu APT-GET 获取应用包,会出现 E: Unable to locate package 的情况,但你确定应用包肯定是存在的。当你网上查阅时发现,会让你另外配置一下 PPA 源,这是什么?!!

PPA(Personal Package Archive),允许应用程序开发人员和 Linux 用户创建自己的存储库来分发软件。

配置 PPA 源,让你可以轻松地获得通过官方 Ubuntu 库无法获得的新软件版本或软件。

关于 PPA 的具体使用指南可以参见【The Ultimate Guide to PPA in Ubuntu】。


用户登录设置

用户登录、用户切换相关设置:

首先来查看

设置 Root 用户登录

Ubuntu 中只要为 root 设置一个密码,即可开启 root 账户。之后即可通过密码升级为 root 权限:

[1] >>> 添加 root 用户

1
2
3
4
5
# 设置 root 用户登录密码(之后获取 root 权限密码)
$ sudo passwd root

# 切换为 root 用户
$ su root

| ================================================== Split Line =============================================== |

[2] >>> 登陆界面设置 root 用户登录选项

Ubuntu 默认的是 root 用户不能登录图形界面的,只能以其他用户登录图形界面。

可以通过修改配置文件 ../50-ubuntu.conf,以解决:

1
2
3
4
5
$ vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

% 添加如下内容:
greeter-show-manual-login=true
all-guest=false

其中,greeter-show-manual-login 表示允许 “手工输入登陆系统的用户名和密码”;all-guest 表示 “不允许 guest 登录”。

修改完成后需要重启系统生效。先不要着急重启!!!原因接下:

重启系统,用 root 用户在图形界面登录会产生错误,读取 /root/.profile 时发生错误(Error found when loading /root/.config)。

因此,重启系统前,需要先切换为 root 用户(su root),然后将 /root/.profile 文件中的 mesg n 替换成 tty -s && mesg n,其它信息不变!!!


sudo 授权和免密

普通用户想要获取 root 权限,需要在命令前使用 sudo。

但每次使用 sudo 时都需要输入 root 密码,有时候很烦~~~那,能不能免密使用呢?!!

虽然给普通用户的 sudo 设置免密有安全隐患,但如果你只是个人使用,那就无所谓~~~

配置步骤如下:

[1] >>> 登陆或切换到 root 用户下

1
$ su root

[2] >>> sudo 配置文件添加写权限

1
$ chmod u+w /etc/sudoers

[3] >>> 配置 sudoers 文件

1
$ vim /etc/sudoers

在 sudoers 文件中找到 root ALL=(ALL:ALL) ALL 内容后,换行后为 user 用户添加 sudo 授权和免密:

1
2
3
4
# User privilege specification
root ALL=(ALL:ALL) ALL
# user 用户 sudo 免密记录,user 为你的用户名
user ALL=(ALL:ALL) NOPASSWD: ALL

你可以根据实际需要在 sudoers 文件中按照下面四行格式中任意一条进行添加:

1
2
3
4
5
6
7
8
9
# 允许用户 youuser 执行 sudo 命令(需要输入密码)
youuser ALL=(ALL) ALL
# 允许用户组 youuser 里面的用户执行 sudo 命令(需要输入密码)
%youuser ALL=(ALL) ALL

# 允许用户 youuser 执行 sudo 命令(免密)
youuser ALL=(ALL) NOPASSWD: ALL
# 允许用户组 youuser 里面的用户执行 sudo 命令(免密)
%youuser ALL=(ALL) NOPASSWD: ALL

[4] >>> 撤销 sudo 配置文件写权限

1
chmod u-w /etc/sudoers

添加新用户

如何添加一个用户供日常使用,或者供他人使用:

[1] >>> 创建新用户

1
2
[root@LAPTOP-SNOSCKOB ~]# adduser orange
[root@LAPTOP-SNOSCKOB ~]#

[2] >>> 修改新用户密码

1
2
3
4
5
[root@LAPTOP-SNOSCKOB ~]# passwd orange
Changing password for user orange.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

[3] >>> sudo 授权和免密

新创建的用户并不能使用 sudo 命令,需要为其添加授权或免密(参照上文):

1
2
3
4
5
6
7
8
9
[root@LAPTOP-SNOSCKOB ~]# chmod -v u+w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0440 (r--r-----) to 0640 (rw-r-----)

[root@LAPTOP-SNOSCKOB ~]# vi /etc/sudoers
# 添加如下内容:
orange ALL=(ALL) ALL

[root@LAPTOP-SNOSCKOB orange]# chmod -v u-w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0640 (rw-r-----) to 0440 (r--r-----)

修改主机名

在终端输入如下命令,可查看主机名:

1
2
$ hostname
Ubuntu20DE-VM

你可以通过修改主机名配置文件(/etc/hostname)来实现 hostname 的修改:

1
2
3
4
$ sudo vi /etc/hostname

# 修改后重启:
$ reboot

配置 SSH 远程登录


重启或开关机

[1] >>> 重启命令

1
2
3
4
5
6
7
8
# 立刻重启
$ reboot
$ shutdown -r now

# 过 10 分钟自动重启
$ shutdown -r 10
# 在时间为 20:35 时候重启
$ shutdown -r 20:35

[2] >>> 关机命令

1
2
3
4
5
6
7
# 立刻关机(一般加-p 关闭电源)
$ halt
$ poweroff
$ shutdown -h now

# 10 分钟后自动关机
$ shutdown -h 10

常用应用

常见基础应用安装:

VIM

Linux 更早版本默认的文本编辑器是 Vi IMitation(Vi),但不太好用:

1
2
# 使用 vi 命令编辑文件:
$ vi ../target_file

随着功能的不断增强,出现了 Vi IMproved。甚至基于 VIM 进一步增强的 Neovim…

[1] >>> Setup

这里选择安装最基础的 vim-gtk <<<<< Vi IMproved - enhanced vi editor - with GTK2 GUI(增强的 VI 编辑器 – 使用GTK2 GUI)。

1
$ sudo apt-get install vim-gtk

[2] >>> configuration

VIM 配置文件是 vimrc,可通过如下命令进入 vimrc 配置文件:

1
$ sudo vim /etc/vim/vimrc

远程访问 Ubuntu Desktop

提供如下访问解决思路:

1
2
3
4
5
% 1. 第三方桌面:xfce

% 2. 第三方软件:TeamViewer、VNC、向日葵(推荐)

% 3. 带 xserver 功能的 SSH 工具

Author

Waldeinsamkeit

Posted on

2015-04-01

Updated on

2024-03-10

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.