91Linux - ubuntu
type: channel
link: https://91linux.org/tag/ubuntu/
items: 非root用户使用authbind绑定特权端口
items: 定制ubuntu16.04笔记2
items: 定制Ubuntu16.04笔记1
items: 64位Ubuntu16.04安装ia32-libs库
items: 笔记本电脑用U盘安装Ubuntu16.04时卡住

非root用户使用authbind绑定特权端口
type: item
date: 2020-04-13T17:35:00+08:00
description: 在linux上普通用户无法绑定1024以下的端口，不过总是会碰到一些特殊情况，比如遇到最多的就是普通用户程序要监听80端口，有很多方法可以实现，之前常用的就是使用sudo给予普通用户一定的权限，不过总感觉sudo控制起来不是很方便，最近发现ubuntu下面有一款小程序authbind可以实现该功能，且配置起来也方便。authbind允许程序不使用root权限来绑定系统1024以下的特权端口，你必须使程序调用authbind，authbind会调用一些环境变量，来允许你的程序绑定在特权端口。ubuntu16.04安装authbindapt-get install authbind -y 默认的配置文件区域在/etc/authbind目录下，里面有三个目录：byport、byaddr、byuid。假如我们有个test账号，想运行一个程序绑定80端口在byport目录下建立80文件：/etc/authbind/byport/80，设置test账户有80文件的使用权限，如果80文件可以被test访问，则绑定就是成功的，否则绑定就是失败的。具体操作：chmod 755 /etc/authbind/port/80 chown test.test /etc/authbind/port/80 在你要启动的命令前加上authbind --deep命令即可。我们也可以直接在地址上绑定端口，在byaddr下建立ip:port文件，测试方法如上。也可以在byuid目录下建立uid文件，只要你的test账号可以访问，否则绑定失败。

定制ubuntu16.04笔记2
type: item
date: 2020-04-13T13:13:02+08:00
description: 一、安装需要使用的软件sudo apt-get install squashfs-tools genisoimage #装入 squashfs文件系统处理工具以及 ISO制作工具 sudo modprobe squashfs #加载 squashfs模块 二、提取光盘内容1、创建一个livecd文件夹作为工作目录mkdir ~/livecd 2、挂载ubuntu光盘镜像cd ~/livecd mkdir mnt sudo mount -o loop ubuntu-14.04-desktop-i386.iso mnt 3、展开ubuntu镜像文件中的内容到 mycd 目录mkdir mycd sudo cp -Ra mnt/* mycd 三、解压squashfs系统文件1、挂载 squashfs 文件系统mkdir squashfs sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs 2、展开 squashfs 文件系统中的内容到 myedit 目录下mkdir myedit sudo cp -Ra squashfs/* myedit/(这一步需要较长的时间) 四、配置设置自己的系统1、复制resolv.conf到系统目录sudo cp /etc/resolv.conf myedit/etc/ 2、hosts复制一份过去sudo cp /etc/hosts myedit/etc/ 3、替换apt源rm /home/yourname/livecd/myedit/etc/apt/sources.list cp /etc/apt/source.list /home/yourname/livecd/myedit/etc/apt apt-get update 4、在自己系统上挂载一些重要的目录sudo mount --bind /dev/ edit/dev sudo chroot myedit mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts 五、安装卸载系统中的软件，配置以达到自己的要求1、安装卸载软件cd ~livecd/ sudo chroot myedit sudo apt-get install 软件名 sudo apt-get remove 软件名 2、进行清理sudo apt-get autoremove sudo apt-get clean 3、记得卸载刚才加入的挂载，退出chroot环境umount /proc umount /sys umount /dev/pts exit sudo umount myedit/dev 六、生成自己的ubuntu系统镜像playubuntu.iso1、重新压缩系统文件到filesystem.squashfssudo rm mycd/casper/filesystem.squashfs //删除原有的filesystem.squashfs sudo mksquashfs myedit mycd/casper/filesystem.squashfs //生成自己的filesystem.squashfs 2、创建playubuntu.isocd mycd sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../playubuntu.iso ~/livecd/mycd/ (这是一条命令) 七、完成后我们可以在virtualbox虚拟机里测试了

定制Ubuntu16.04笔记1
type: item
date: 2020-04-13T13:06:07+08:00
description: 挂载ISO，复制出需要的文件mkdir ~/ISOBUILD mount -o loop ubuntu-mini-remix-16.04-amd64.iso /media cp -av /media/* ~/ISOBUILD cp -av /media/.disk ~/ISOBUILD rm -f ~/ISOBUILD/.disk/casper-uuid-generic umount /media intrd.lz 的解压重打包mkdir ~/INITRD ; cd ~/INITRD cp ~/ISOBUILD/casper/initrd.lz initrd.lzma lzma -dkf initrd.lzma cpio -idv initrd rm -rf conf/uuid.conf rm -rf initrd.lzma ; rm -rf initrd sudo find | cpio -H newc -o | lzma > initrd.lz cp initrd.lz ~/ISOBUILD/casper/initrd.lz squashfs的重新封装cd ~/ unsquashfs ~/ISOBUILD/casper/filesystem.squashfs mount --bind /dev ~/squashfs-root/dev mount -t proc proc ~/squashfs-root/proc mount -t sys sys ~/squashfs-root/sys chroot squashfs-root 各种自定义开始...定制结束exit mksquashfs squashfs-root ~/ISOBUILD/casper/filesystem-new.squashfs mv ~/ISOBUILD/casper/filesystem.squashfs /~ mv ~/ISOBUILD/casper/filesystem-new.squashfs ~/ISOBUILD/casper/filesystem.squashfs 生成最终的ISOmkisofs -R -J -l -V 'ubuntu-12.04-base-live' -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ~/ubuntu-12.04-base-live.iso ~/ISOBUILD 关键点~/ISOBUILD/.disk/casper-uuid-generic conf/uuid.conf 这两处一定要删除，不然启动的时候 initrd检测的UUID信息和这里定义的不一致，导致filesystem.squashfs挂载失败，肯定启动不了，这是很多网上的文章都没提到，有一点疑惑 还不知道这个UUID到底是谁的UUID，欢迎大神指点迷津

64位Ubuntu16.04安装ia32-libs库
type: item
date: 2020-04-13T10:13:00+08:00
description: ubuntu 13之后，64位系统下无法安装ia32-libs库，提示没有可用的软件包终端执行sudo apt-get install ia32-libs提示：正在读取软件包列表...完成 正在分析软件包的依赖关系树 正在读取状态信息...完成 现在没有可用的软件包 ia32-libs，但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已经被废弃， 或者只能在其他发布源中找到 E：软件包 ia32-libs 没有可供安装的候选者 原因是Debian项目宣布，预计于2013年发布的Debian 7（代号Wheezy）将支持Multiarch。Multiarch（多架构）术语被用于指一个系统能安装和运行有多个不同二进制文件的应用程序，例如i386-linux-gnu程序能运行在 amd64-linux-gnu系统上。Multiarch还简化了跨架构编译。Debian在年度会议DebConf11上作出了引入 Multiarch支持的决定。开发者表示，它大大增强了Debian实现通用操作系统承诺的能力，加强了新的64位系统对32位应用程序的支持。解决办法:首先判断在用的架构sudo dpkg --print-architecture输出当前的使用的架构，比如amd64添加架构sudo dpkg --add-architecture i386添加i386架构，然后刷新下源列表sudo apt-get update这时就已经包含i386的软件列表安装i386sudo apt-get install -y iceweasel:i386

笔记本电脑用U盘安装Ubuntu16.04时卡住
type: item
date: 2020-04-12T21:31:10+08:00
description: 解决办法重新开机，光标选中Install Ubuntu ，按e，进入grub界面，将倒数第二行中的quiet splash -改为nomodeset。按F10保存，就可以进入安装界面继续安装了。