移动/etc/passwd后,不能切换用户了,退出后任何用户都不能登录!

       今天在看书时,发现一种使用tarball来进行攻击的方法,但是通常不会这么用tar命令,通过tar的-P选项,让tar打包和解包时不去除路径首部的/目录,这样在解压时就可以成功将你的攻击文件写入系统目录中如,/bin等。

       使用下面命令来建立有攻击性的tarball

$tar -Pczvf malicious.tar.gz /bin/attack

       查看生成的tarball

$tar tvzf malicious.tar.gz

可以发现,其中的文件为/etc/attack,如果不使用-P选项进行打包,那么生成时会除去根目录,变成etc/attack

       解包,这步最不容易成功,因为通常解包时都不会使用-P选项

$tar -Pxzvf malicious.tar.gz

      如果使用上面的命令解包,则会将attack解压到/etc目录下,而不是./etc/attack。

 

下面说说我有多jiong。我把/etc/passwd打包了,然后将原来的passwd改名了,然后使用命令

$sudo tar -Pxzvf malicious.tar.gz

打算将passwd文件成功解压到/etc目录下,但是这时出错了,如下图

 

 

看出来了吗?晕死我,现在由于/etc/passwd文件被重命名了,我自己(uid 1000)不是存在的用户了,更别提使用sudo命令了!关键是我现在不能使用

$sudo mv passwd_backup passwd来恢复!

现在,貌似还没有什么问题,等我退出后,发现不能通过gdm再次登录,当然使用控制台也是一样的,归根到底还是没有了/etc/passwd文件,然后无奈之下重启,现在由于找不到用户,所以gdm提示不能启动,现在玩儿大了吧!不能进入系统了,原以为重启后会自动使用/etc/passwd-备份文件恢复,但是实际上不是这样的。所以现在可以使用上一篇博客Ubuntu忘记用户名和密码中的方法来强行获得一个root shell来恢复/etc/passwd文件。这样就能重新进入系统了,这篇博客也得以写完!还要注意一点的是:使用e来编辑grub启动菜单时,全部是乱码,所以我使用的是c来获得一个grub命令行,自行输入root,kernle,initrd来进入系统并获得一个root shell。如果不是很明白,最好使用虚拟机来实验。

你可能感兴趣的:(Linux使用技巧以及软件开发)