Загадка номер раз:
имеем на машине единственную физическую файловую систему размером в 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
Вопрос: так как он туда изначально всё-таки зашёл? Хинт: права на директорию, владельцы, группы и всё такое во время эксперимента не менялись, никакие файловые системы в задействованных директориях не монтировались и не размонтировались. Результат легко воспроизводится, таким способом можно туда зайти повторно, а правов опять не будет..
Оригинал этой записи в личном блоге.
no subject
no subject
Только он всё же не spare, а sparse ;)
no subject
dd seek=...
no subject
no subject
no subject
no subject
no subject
no subject
root@***:/# useradd -m foobarroot@***:/# ls -ld /home/foobar
drwxr-xr-x 2 foobar foobar 4096 Nov 10 07:41 /home/foobar
no subject