使用sudo
RPISEC-MBE虚拟机,我已将 USB 闪存驱动器上的文件安装并复制到管理员文件夹(我有权访问)。不幸的是,即使sudo
我似乎也无法将它们复制到/levels/lecture
目录中。为什么它不允许我复制这些文件,即使以 root 身份?
gameadmin@warzone:~$ mkdir /media/usb ; sudo mount /dev/sdb1 /media/usb
gameadmin@warzone:~$ ls -l /media/usb/rpisec
total 32
drwxr-xr-x 2 root root 16384 Jun 7 15:41 bombs
drwxr-xr-x 2 root root 16384 Jun 7 15:41 crackme
gameadmin@warzone:~$ sudo cp -R /media/usb/rpisec/* /home/gameadmin/
gameadmin@warzone:~$ ls -l /home/gameadmin
total 8
drwxr-xr-x 2 root root 4096 Jun 7 15:42 bombs
drwxr-xr-x 2 root root 4096 Jun 7 15:42 crackme
gameadmin@warzone:~$ ls -l /levels/lecture
total 28
drwxr-xr-x 2 root root 4096 Jun 21 2015 aslr
drwxr-xr-x 2 root root 4096 Jun 21 2015 cpp
drwxr-xr-x 2 root root 4096 Jun 21 2015 format_strings
drwxr-xr-x 2 root root 4096 Jun 21 2015 heap
drwxr-xr-x 2 root root 4096 Jun 21 2015 misc
drwxr-xr-x 2 root root 4096 Jun 21 2015 rop
drwxr-xr-x 2 root root 4096 Jun 21 2015 shellcode
gameadmin@warzone:~$ sudo mv /home/gameadmin/* /levels/lecture/
mv: cannot move '/home/gameadmin/bombs' to '/levels/lecture/bombs': Permission denied
mv: cannot move '/home/gameadmin/crackme' to '/levels/lecture/crackme': Permission denied
答案1
从文档:
warzone 将许多文件标记为不可改变,以防止用户更改它们并破坏其他玩家的游戏体验。例如,我们不希望 lab2B 用户删除其 .pass 文件或 /levels 文件。一些系统文件(例如 /etc/passwd)也被标记为不可改变。
如果您想修改或删除这些文件,只需删除不可变标志:
chattr -i filename
我们建议您在完成更改后重新添加标志:
chattr +i filename
在许多情况下,文件不变性是一件很棒的事情。如果你有机会,学习如何使用它们可以为你省去很多麻烦