耳机网-耳机大家坛
标题:
获取Roon ROCK ssh/root权限笔记
[打印本页]
作者:
中关村东路
时间:
2022-11-11 02:31
标题:
获取Roon ROCK ssh/root权限笔记
这个帖子对普通用户并没什么用。今天烧友说Roon ROCK更新了,性能不错,我想看一下ROCK有何神奇就找了台机器装了一下。结果发现没法远程登录,连了键盘也不行,有点纠结就想办法折腾了一个ssh/root权限来。有朋友想知道怎么搞的,我就在这简单记录一下,只面向不知道为什么对获得这个权限感兴趣的奇奇怪怪的朋友。这系统没什么好玩的,ssh/root权限其实也没什么用,操作都是普通Linux老用户都会的,不是破解,不感兴趣的朋友看到这就可以回帖点赞了。不过其实本帖有个小小的用处,就是在不能顺利安装的非NUC用户,可以用本帖的方法打补丁。不过说实话,如果你都能折腾到这个地步了,也肯定能自己搞定安装,甚至干脆不需要安装ROCK了。我也会简单粘贴一些获取root过程中看到的信息。
先说下材料吧,需要下载img;准备一个用来烧Roon ROCK的u盘;一个某Linux发行版的LiveUSB;一台Linux电脑或者虚拟机,需要内核态支持squashfs的,如果你不知道这是什么那一定是支持的,要在Linux上安装一个软件,Gentoo上叫squashfs-tools,其他发行版估计也差不多。
之后烧了u盘,启动之后一路next就可以安装到NUC电脑上了。接下来你可以启动试试,也可以直接开一个其他Linux发行版的LiveUSB,我用的是archlinux的,这东西特别小,启动起来直接给我一个Terminal prompt。喜欢图形界面的同学也可以用ubuntu之类的启动盘,最后还是得用Terminal,但是可以开个浏览器什么的方便搜索和复制粘贴吧。LiveUSB启动之后,先用fdisk找到NUC的硬盘,比如/dev/sda,或者/dev/nvme0n1之类的,我是sda。可以看到四个分区,第一个是efi,第二个是boot,也包括rootfs,第三个是roon server,第四个是保存roon索引数据和图片的。下面执行:
mount /dev/sda2 /mnt
cd /mnt
find .
.
./grub.cfg
./identity
./identity/.rmembid
./lost+found
./A
./A/grub.cfg
./A/rootfs.img
./A/initramfs
./A/bzImage.efi
./A/image_info
./grub.env
复制代码
可以看到,那个目录A,有用的是启动所需的bzImage,initramfs和rootfs。这个rootfs是squashfs格式,也就是说是只读的不能修改。我们要获取ssh权限,却需要修改。只好把这个文件传回自己的Linux电脑/虚拟机琢磨一下了。
scp rootfs.img zhjie@192.168.1.9:
复制代码
之后登录我自己的Linux,fdisk rootfs.img 就会告诉我 The device contains 'squashfs' signature 。好吧,解开看看吧,
unsquashfs -d /mnt/rock -f rootfs.img
ls /mnt/rock
复制代码
可以看到这是很规整的Linux目录结构。chroot进去看看吧
mount --types proc /proc /mnt/rock/proc
mount --rbind /sys /mnt/rock/sys
mount --make-rslave /mnt/rock/sys
mount --rbind /dev /mnt/rock/dev
mount --make-rslave /mnt/rock/dev
chroot /mnt/rock /bin/bash --login
复制代码
chroot进去会发现,没有安装systemd,那就去看看/etc/inittab吧,
less /etc/inittab
复制代码
可以看到,启动脚本是/etc/rc-startup
grep ssh /etc/rc-startup
复制代码
最后两行是关键,一行说明/root/.ssh/authorized_keys是起作用的;一行说明这机器启动之后会依次启动这些服务,其中第二个就是sshd,很好,不需要我再想办法安装了。这时候把你机器的ssh公钥复制到authorized_keys里就可以了。
echo "xxx" >> /root/.ssh/authorized_keys
复制代码
ctrl+D退出chroot,把/mnt/rock下的proc/sys/dev三个目录umount掉,之后制作新的rootfs
mksquashfs /mnt/rock rootfs.img
复制代码
下面就简单了,回到刚才LiveUSB登录的NUC,把刚刚修改过的rootfs覆盖掉就可以了。
scp zhjie@192.168.1.9:rootfs.img /mnt/A/rootfs.img
复制代码
重启之后即可登录:
➜ ~ ssh root@192.168.1.11
-bash-4.4#
复制代码
想改密码就改,不改也可以。登录之后查了烧友A想看的bbr是否支持,没:
sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic
复制代码
又查了烧友B想知道的内核优化的怎么样,是不是实时的,也没:
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_HAVE_PREEMPT_DYNAMIC=y
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
复制代码
编译优化级别是最低的Generic-x86-64,不支持rcu提权,不支持aqm优化,但是编译进去了微软surface支持和intel显卡的dri驱动。。。谁能帮我想想这些破玩意儿是干啥的,刷到sfp上吗。还有好多iptable和路由器专用的内核Module,强迫症患者不能忍啊,Roon是找了个做路由器的编译的这版内核吧。。
烧友C问系统是不是很干净,有没用的进程吗?这个有,有好多呢:看了一下241个。。除了Roon自己的四个,smb的几个,剩下的都没必要。有好几个docker的,好几个alsa的(roon server并不需要),好多logger的,几乎给每个进程都配了一个,还有用于傻瓜化找ip的mdns,vendor,ripper,等等莫名其妙的东西吧。
小结一下吧。从上述简单的浏览,这个Roon ROCK盛名难副。基本上就是buildroot做的那种路由器固件,只不过他用的是比较笨的办法自己挨个编译攒起来的。按他自己的说法会很小,我看了一下启动之后将近500M吧,我电脑是完整操作系统连gcc工具链都没删也就500多M。换句话说,也没像Roon自己宣传的那么小。截止此时,还在导入曲库,后天我再回来看,导完了我再来说使用是不是顺畅吧。
作者:
发烧的悟净
时间:
2022-11-11 14:50
学习了,赞
欢迎光临 耳机网-耳机大家坛 (http://erji.net/)
Powered by Discuz! X3.2