Передача продолжается после удаления загруженного файла

если нам нужно передать «нормального» пользователя в «дисковую» группу, как мы можем защититься от таких атак, как повышение привилегий?

Вы не могу. Решение - не помещать пользователей в группу disk . Это не предназначено для этого.

Чтобы предоставить пользователю доступ к необработанному тому, поместите этот том в другую группу и только этот том. Для этого нужно добавить правило udev . См. предоставление групповых разрешений определенному устройству , Правило Udev не устанавливает группу , Разрешить пользователю без полномочий root читать / записывать / dev файлы ,…

{ {1}}

1
04.05.2016, 23:32
2 ответа

Если в программе есть файл, открытый при его удалении, ядро ​​только помечает его как удаленный, но не освобождает место на диске, чтобы не нарушить работу программы (оно не может знать, важен ли файл для функция программы). Когда программа закрывает файл, дисковое пространство освобождается. Когда это произойдет, вы увидите «(удалено)», когда посмотрите на / proc / / fd процесс, у которого открыт файл.

Итак, это ядро ​​помогает не удалять файлы, используемые при передаче.

Если вы не хотите делиться файлом с помощью передачи, вы должны удалить его из передачи, насколько я помню, у передачи даже есть возможность удалить файлы как часть прекращения обмена.

Фактически вы можете восстановить файл, скопировав его из / proc / / fd / , поскольку это ссылка на файл (только та, которая существует только до тех пор, пока процесс открыт. ).

root@mypc:~# pgrep transmission
1470
root@mypc:~# cd /proc/1470/fd
root@mypc:/proc/1470/fd# ls -l | grep deleted
lr-x------ 1 user user 64 Dec  8 02:55 56 -> /mnt/download/my.file (deleted)
root@mypc:/proc/1470/fd# cp 56 /mnt/download/myrestored.file
4
27.01.2020, 23:26

Я подозреваю, что при загрузке программа сохраняет файл в неизвестном вам месте. После завершения он создает жесткую ссылку на тот же файл в папке загрузки, но при этом сохраняет жесткую ссылку в своем собственном каталоге (вероятно, ~/.transmission или что-то подобное).

Вы можете найти все жесткие ссылки на готовое скачивание, как описано в Как найти все жесткие ссылки на заданный файл? или использовать следующее: ~/Downloads выполните ls -i и запомните inode-номер вашего файла. Затем вы можете найти другой файл, выполнив find . -inum NUM в вашей домашней папке.

0
27.01.2020, 23:26

Теги

Похожие вопросы