前言

ubuntu简介

Ubuntu是一个以桌面应用为主的Linux发行版操作系统,其名称来自非洲南部祖鲁语或豪萨语的”ubuntu“一词,意思是“人性”“我的存在是因为大家的存在”,是非洲传统的一种价值观。Ubuntu基于Debian发行版GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了GNOME桌面环境,改为Unity。此前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。Ubuntu也拥有庞大的社区力量,用户可以方便地从社区获得帮助。自Ubuntu 18.04 LTS起,Ubuntu发行版重新开始使用GNOME3桌面环境。

通用必备配置

更换软件源

备份list文件

失败了也可以回溯

1
2
cd /etc/apt/
sudo cp sources.list sources.list.bak

更改list文件

1
sudo vi /etc/apt/sources.list

替换其中内容,更换为阿里源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

更新软件列表

1
2
sudo apt update 或 sudo apt-get update	# 更新软件列表
sudo apt upgrade 或 sudo apt upgrade # 更新软件

更改root密码

1
sudo passwd root

跟随指引操作即可

构建工具安装

安装gcc、g++、make等

1
sudo apt install build-essential

Git安装

常用于拉取github上的一些工具

1
2
sudo apt install git
git --version # 查看版本号

vim安装

常用文本编辑器

1
2
sudo apt install vim
vim -v # 查看版本号

安装glibc-doc

GNU C Library (glibc) 的文档

1
sudo apt install glibc-doc

安装python2及pip2

一些python脚本需要在python2环境下运行

安装python2

1
2
sudo apt install python2
python2 --version # 查看版本号

安装pip2

1
2
3
4
curl https://bootstrap.pypa.io/pip/<你的python2版本,例如2.7>/get-pip.py --output get-pip.py # 下载安装文件
sudo python2 get-pip.py # 安装pip2
pip2 --version # 查看版本号
rm get-pip.py # 安装完成后删除get-pip.py

安装pip3

常用python版本,一般自带了python3

1
2
sudo apt install python3-pip
pip --version 或 pip3 --version # 查看版本号

pip换源(清华源)

1
2
3
mkdir ~/.pip 或 mkdir -p ~/.config/pip
cd ~/.pip 或 cd ~/.config/pip
vim pip.conf

修改pip.conf的内容为

1
2
3
4
5
6
7
8
9
10
11
[global]

index-url=https://pypi.tuna.tsinghua.edu.cn/simple

timeout = 6000

[install]

trusted-host=pypi.tuna.tsinghua.edu.cn

disable-pip-version-check = true

其他源

1
2
3
4
5
6
https://pypi.douban.com/  # 豆瓣
https://pypi.hustunique.com/ # 华中理工大学
https://pypi.sdutlinux.org/ # 山东理工大学
https://pypi.mirrors.ustc.edu.cn/ # 中国科学技术大学
https://mirrors.aliyun.com/pypi/simple/ # 阿里云
https://pypi.tuna.tsinghua.edu.cn/simple/ # 清华大学

其他软件安装

安装fd

​ 项目地址cha0ran/fd-zh: fd Chinese document

fd 是一个在你文件系统中查找条目的程序。它是一个简单、快速、友好的 find 替代品。

​ 在ubuntu19.04及更新版本安装:

1
2
3
4
5
6
apt install fd-find  # 安装

vim /root/.bashrc
# 在最后添加一行alias fd='fdfind'
source /root/.bashrc # 刷新
fd -h # 检查

安装anaconda

多环境切换工具

查找并安装所需版本

清华大学开源软件镜像站 中查找符合自己版本的anaconda

这里选择https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Linux-x86_64.sh这个版本,安装其他版本替换相应链接即可

1
2
3
4
5
6
7
8
wget --user-agent=“Mozilla” + https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.06-1-Linux-x86_64.sh  # 下载
bash Anaconda3-2024.06-1-Linux-x86_64.sh # 跟随提示安装
vim /etc/profile # 添加环境变量 export PATH=~/anaconda3/bin:$PATH (具体路径以自身安装位置位置)
vim ~/.bashrc # 添加环境变量 export PATH=~/anaconda3/bin:$PATH (具体路径以自身安装位置位置)
source /etc/profile
source ~/.bashrc # 更新环境变量
conda -V # 查看版本号
rm Anaconda3-2024.06-1-Linux-x86_64.sh # 安装完成后清除安装文件

换源

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

# 中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes

conda config --remove-key channels # 恢复默认源
conda config --show # 查看源

conda常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
conda update -n base -c defaults conda  # 如果版本不是最新,可用此命令更新
conda create -n <虚拟环境名称> python=<X.X(3.6、3.7等)> # 创建虚拟环境
source activate <虚拟环境名称> # 激活虚拟环境
source deactivate <虚拟环境名称> # 退出虚拟环境
conda remove -n <虚拟环境名称> --all # 删除虚拟环境
conda list # 查看安装了哪些包
conda install <包名> # 安装包
conda install scrapy==1.3 # 安装指定版本的包
conda install -n <环境名> <包名> # 在conda指定的某个环境中安装包
conda env list 或 conda info -e 或 # 查看当前存在哪些虚拟环境
conda update conda # 检查更新当前conda
conda update anaconda # 更新anaconda
conda update --all # 更新所有库
conda update python # 更新python

xrdp安装

​ 微软的远程桌面协议(RDP) 是一个允许从一台计算机到另一台计算机进行图形化远程桌面连接的协议。RDP 的工作原理是让一台主机运行软件,允许其他几台计算机连接到它。

​ XRDP是 RDP 的一个开源实现,不需要运行任何专有程序。XRDP 不仅试图遵循 RDP,而且还与常规的 RDP 客户端兼容,如Remmina和GNOME Boxes。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 安装
sudo apt install xrdp

# 命令行启动
sudo systemctl set-default multi-user.target

# 图形化界面启动
sudo systemctl set-default graphical.target

# 设置开机自启
sudo systemctl enable xrdp

# 启动与关闭
sudo systemctl start xrdp
sudo systemctl stop xrdp

# 避免ssl证书无法验证,将xrdp用户加入ssl-cert用户组
sudo adduser xrdp ssl-cert

# 修改配置后记得重启
reboot

​ 安装远程连接xrdp的客户端(二选一即可)

1
2
sudo apt install gnome-boxes
sudo apt install remmina

Nodejs及npm安装

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
# 如果已经安装过Nodejs和npm,为了避免可能出现的问题,建议先卸载原有的
sudo apt-get remove --purge npm
sudo apt-get remove --purge nodejs
sudo apt-get remove --purge nodejs-legacy
sudo apt-get autoremove

rm -r /usr/local/bin/npm
rm -r /usr/local/lib/node-moudels
find / -name npm
rm -r /tmp/npm*

# 更新源
sudo apt-get update

# Nodejs安装
sudo apt-get install nodejs
sudo apt-get install nodejs-legacy

# npm安装
sudo apt-get install npm

# 更新npm包的源
sudo npm config set registry https://registry.npmmirror.com
sudo npm config list

# 全局安装n管理器,管理Nodejs版本
sudo npm install -g n

# 安装最新版本Nodejs
sudo n stable

# 版本检测
sudo node -v
sudo npm -v

更换python版本

​ 有时,系统自带的python版本不符合我们的需要,那么就需要我们自己再重新安装和配置python版本

​ 以安装python3.10.4为例

安装python3.10

1
2
# 直接通过apt-get安装
sudo apt-get install python3.10

从官网下载自行安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装依赖
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev

# 从官网下载源文件并解压安装
cd /home
sudo wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
sudo tar -zvxf Python-3.10.4.tgz
cd Python-3.10.4/
./configure --enable-optimizations
make
sudo make install # 不成功则改用sudo make altinstall
python3.10 --version # 验证是否安装成功,出现版本号则安装成功

更新python默认指向

修改软链接指向

1
2
3
4
5
6
7
8
9
# 找到并删除原有软链接
which python # which命令找到的路径就是原有软链接路径,没有找到说明不存在,可忽略下一条命令
sudo rm /usr/bin/python

# 找到python3.10的安装路径
which python3.10 # 我的在/usr/local/bin/python3.10路径

# 重新建立软链接
sudo ln -s /usr/local/bin/python3.10 /usr/bin/python

现在使用python命令显示的就是python3.10.4了

设置python的环境变量

编辑.bashrc文件
1
sudo vim  ~/.bashrc 

找到

1
2
3
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

修改为

1
2
3
4
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias python='/usr/local/bin/python3.10'

其中新添加内容的引号中部分换成自己的python安装路径

最后按下esc,然后依次输入:wq回车即可

1
2
# 更新环境变量
source ~/.bashrc

更新pip默认指向

修改软链接指向

1
2
3
4
5
6
7
# 找到并删除原有软链接
which pip
sudo rm /usr/local/bin/pip

# 重新建立软链接
# pip路径与python路径一致,上文中python路径在/usr/local/bin/python3.10,那么pip路径在/usr/local/bin/pip3.10
sudo ln -s /usr/local/bin/pip3.10 /usr/local/bin/pip

现在使用pip命令指向的就是python3.10的pip了

PWN环境配置

gdb-multiarch

1
2
sudo apt-get install gdb-multiarch
gdb-multiarch -v # 查看版本号

pwntools

主要的攻击武器,本质是一个python库

1
pip install pwntools

LibcSearcher

1
2
git clone https://github.com/lieanu/LibcSearcher.git
python ./LibcSearcher/setup.py develop

pwndbg

动态调试

如果还未安装gdb,请先安装gdb

1
sudo apt install gdb

随后执行

1
2
git clone https://github.com/pwndbg/pwndbg
./pwndbg/setup.sh

checksec

检查二进制文件的受保护状态

1
2
3
git clone https://github.com/slimm609/checksec.sh.git
sudo cp ./checksec.sh/checksec /usr/local/bin/checksec # 添加为shell命令
rm checksec.sh # 清除多余文件

ROPgadget

One_gadget

1
2
3
sudo apt install ruby
sudo apt install gem
gem install one_gadget

main_arena_offset

1
git clone https://github.com/bash-c/main_arena_offset

seccomp-tools

1
2
sudo apt install gcc ruby-dev
sudo gem install seccomp-tools

可能出现的问题及解决方案

使用apt更新或安装软件时,提示“由于没有公钥,无法验证下列签名”

​ 例如这样的情况

1
2
W: GPG 错误:https://download.docker.com/linux/ubuntu focal InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 7EA0A9C3F273FCD8
E: 仓库 “https://download.docker.com/linux/ubuntu focal InRelease” 没有数字签名。

​ 执行以下命令即可

1
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7EA0A9C3F273FCD8

​ 注意最后的7EA0A9C3F273FCD8需要根据你的报错提示中给出的NO_PUBKEY进行替换

error: externally-management-environment

​ 在ubuntu24.04及更新版本中,尝试使用pip安装python模块可能会出现以下问题:

image-20250223203747626

​ 这是由于 PEP 668 造成的更改。从 Ubuntu 23.04 开始,它建议使用特定于 Python 的包管理工具(例如 pip)使用虚拟环境安装包,以避免与操作系统包管理器安装的包发生冲突。不过,用户仍然可以像以前一样强制 pip 安装到解释器的全局上下文中。

方法一:通过添加 --break-system-packages 标志来绕过

​ 例如安装imagesearch

1
pip install --user imagesearch --break-system-packages

​ 如果不想每次都输入**–break-system-packages**,可以将其写入配置文件。

1
2
mkdir -p ~/.config/pip
echo -e "[global]\nbreak-system-packages=true" > ~/.config/pip/pip.conf

方法二:使用 pipx代替pip

​ Pipx 是一种替代命令行工具,用于在隔离环境中安装和运行 Python 应用程序。然而,它仅适用于Python 应用

1
2
sudo apt install pipx
pipx ensurepath