标签:opt chroot sudo 麒麟 squashfs etc 桌面上 root
chroot介绍:
chroot 就是 change-root,可以说是最简单和古老的容器化软件之一,它允许用户安全地将应用程序和服务隔离。
chroot 通过更改程序的根目录,限制访问和可见性,从而提供了额外的隔离和安全层级。
将程序设置为 chroot 环境是一种在安全空间中测试其可靠性的好方法,而不会改变实际系统的文件。此外,在 chroot 环境中,您还可以减少受到受损软件包引起的安全风险,因为在 chroot 环境中,受损的软件包将无法访问和修改敏感系统文件。
程序只能访问和查看导入到 chroot 目录中的文件,也被称为”chroot监狱”。这样可以防止程序及其子进程干扰基本系统的运行。
chroot
测试环境
chroot
提取 casper 目录的 filesystem.squashfs 文件
cd /opt ; sudo mkdir mnt livecd tool
sudo cp /media/ss/Ventoy/Kylin-Desktop-V10-SP1-RC5-Build02-210521-arm64 .iso tool/
sudo mount /opt/tool/Kylin-Desktop-V10-SP1-RC5-Build02-210521-arm64 .iso /opt/mnt/
sudo cp -rp /opt/mnt/ . /opt/livecd/
sudo umount /opt/mnt/
|
解压 filesystem.squashfs 文件到当前目录,解压出来的目录为 squashfs-root (解压 2 份,一份用来测试,一份用来做
还原点)
cd /opt/livecd/casper/
sudo unsquashfs filesystem.squashfs
mv squashfs-root squashfs-root_backup(提示无权限时,添加 sudo ,再不行使用此命令 sudo rsync -avz --delete squashfs-root/ squashfs-root_backup/)
sudo unsquashfs filesystem.squashfs
|
参考当前系统做初始化配置:
cp -rf /etc/apt/sources .list squashfs-root /etc/apt/sources .list
rm -rf squashfs-root /etc/apt/sources .list.d/
echo 127.0.0.1 ` hostname ` >> squashfs-root /etc/hosts
rm squashfs-root /etc/resolv .conf
echo "nameserver 10.41.162.100" >> squashfs-root /etc/resolv .conf
xhost + local : # 为了让 chroot 执行图形化界面,开启 xhosts 监听若chroot环境无法重定向到屏幕则使用xhost +命令
|
进入新系统做一次 aptupdate :
sudo chroot squashfs-root
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
apt update
|
退出新系统:
umount /proc
umount /sys
umount /dev/pts
exit
|
将 squashfs-root 同步到 squashfs-root_backup 用来做还原点:
sudo rsync -avz --delete squashfs-root/ squashfs-root_backup/
|
使用 squashfs-root 做测试:将 blazers 和待测文件复制到系统内:
cp -rpf blazers/ squashfs-root /tmp/
cp -rpf xxx.deb squashfs-root /tmp/
|
进入到 squashfs-root 系统执行测试:
sudo chroot squashfs-root
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export DISPLAY=:0
cd /tmp/blazers
. /run .sh -p qwer1234 --include opensource --pkg /tmp/xxx .deb
|
# 测试结束后退出:
umount /proc
umount /sys
umount /dev/pts
exit
|
测试完成后取测试报告
cp squashfs-root /tmp/blazers/report /home/kylin/
|
用还原点进行系统还原:
sudo rsync -avz --delete squashfs-root_backup/ squashfs-root/
|
Q&A
A.进入chroot后为root用户,如何切换至普通用户
1.设置当前root用户密码
passwd root
2.root用户状态下创建用户并设置密码
adduser kylin
3.修改/etc/hosts文件内容
在第二行新增一行
3.修改/etc/sudoers文件
新增红线内容
B.使用sudo切换时显示未知的名称或服务
参考A.中的步骤2
C. 使用sudo XXX命令时提示用户不在sudoers文件中
参考A.中的步骤3
D. 执行xrandr命令时,报错No protocol specified Can't open display :0
No protocol specified
Can't open display :0
执行如下命令
export XAUTHORITY=/home/<user>/.Xauthority
再次执行xrandr可正常输出
标签:opt,
chroot,
sudo,
麒麟,
squashfs,
etc,
桌面上,
root
From: https://blog.51cto.com/u_16449259/11917719