Загадка номер раз:
имеем на машине единственную физическую файловую систему размером в 14GB:
$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 14G 9.6G 3.6G 73% /
udev 10M 0 10M 0% /dev
tmpfs 391M 536K 391M 1% /run
/dev/mapper/evg0-eroot 14G 9.6G 3.6G 73% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 782M 284K 782M 1% /run/shm
и в этой системе имеем файлик размером в 50GB:
$ ls -lh /tmp/foo
-rw-r--r-- 1 dil dil 50G Nov 8 21:30 /tmp/foo
Вопрос: как это вообще возможно, и как конкретно такое можно сделать? Файловая система при этом в полном порядке, fsck никаких ошибок не находит.
Загадка номер два:
юзер foo находится в домашней директории юзера bar. Но ни хрена там не видит, правов не хватает:
foo@somehost:/home/bar$ pwd
/home/bar
foo@somehost:/home/bar$ ls -la
ls: cannot open directory .: Permission denied
foo@somehost:/home/bar$ ls -l ../
ls: cannot access ../: Permission denied
и если он из неё выйдет, то обратно его уже не пускают:
foo@somehost:/home/bar$ cd /home
foo@somehost:/home$ cd /home/bar
bash: cd: /home/bar: Permission denied
Вопрос: так как он туда изначально всё-таки зашёл? Хинт: права на директорию, владельцы, группы и всё такое во время эксперимента не менялись, никакие файловые системы в задействованных директориях не монтировались и не размонтировались. Результат легко воспроизводится, таким способом можно туда зайти повторно, а правов опять не будет..
Оригинал этой записи в личном блоге.