Два dir с одинаковым владельцем, но `cat> f` создает файлы, принадлежащие другому владельцу

455
Diagon

Почему myfile.txt и myotherfile.txt имеют разные владельцы?

Первый каталог, myhandle на моем рабочем столе, был создан с помощью sudo chown. Второй каталог в / run / ... был создан как сетевая файловая система с помощью keybase.

Из моего ~ / рабочего стола / myhandle:

$ ls -l .. total 0 drwx------ 1 me root 126 Nov 23 23:10 myhandle  $ ls -la total 0 drwx------ 1 me root 126 Nov 23 23:10 . dr-x------ 1 me root 46 Nov 20 01:50 ..  $ cat > myfile.txt test  $ ls -la total 4 drwx------ 1 me root 146 Nov 23 23:11 . dr-x------ 1 me root 46 Nov 20 01:50 .. -rw-rw-r-- 1 me me 5 Nov 23 23:11 myfile.txt 

From / run / user / 1000 / keybase / kbfs / private / myhandle

$ ls -l .. total 1 drwx------ 1 me root 504 Nov 23 23:12 myhandle  $ ls -la total 0  $ cat > myotherfile.txt test  $ ls -la total 1 -rw------- 1 me root 5 Nov 23 23:12 myotherfile.txt 
2

1 ответ на вопрос

2
Christoph Sommer

Компонент path kbfsзвучит так, как будто его содержимое может находиться в другой файловой системе ( kbfsэто имя базы ключей файловой системы).

Для специальных файловых систем не является неслыханным, чтобы не придерживаться общих ожиданий относительно разрешений.

См. Также старую ошибку в базе ключей, когда в своей файловой системе она сообщала о совершенно других разрешениях, чем фактически использовала: https://github.com/keybase/kbfs/issues/212

Быстрый поиск показывает, что `/ run / user / 1000 / keybase / kbfs` действительно является точкой монтирования для файловой системы [FUSE] (https://en.wikipedia.org/wiki/Filesystem_in_Userspace), а соответствующий исполняемый файл -` kbfsfuse`. Kamil Maciorowski 5 лет назад 0
Я думаю, что происходит - может быть, вы скажете мне, если это правильно, - то, что при записи в эту файловую систему, на самом деле, это запись базы ключей, и сама база ключей работает от имени самого пользователя, но от имени root. (Разве это так, что у работающего демона есть пользователь / группа, в которой он работает?) В результате файлы приобретают эту собственность. Diagon 5 лет назад 0
Файловые системы могут свободно сообщать о любых разрешениях и использовать любую логику, чтобы решить, кому разрешено делать и что делать в файловой системе. Большинство стандартных файловых систем придерживаются установленных здесь соглашений, так что пользователь может предсказать, какие операции будут успешными, но на самом деле ничто не мешает файловой системе сказать пользователю «никто не может записать в этот файл» и, в действительности, разрешить всем сделать это. Christoph Sommer 5 лет назад 0