Задний план: У меня есть задание cron, которое создает каталоги новых пользователей. Чаще всего эти пользователи уже загружают файлы на сервер до выполнения задания.
Так будет ли успешно изменено право собственности на файлы, если они находятся в процессе загрузки?
У меня есть работа cron, которая занимается каталогами новых пользователей.
Я так понимаю, вы имеете в виду как каталоги этих новых пользователей, так и все содержимое этих каталогов (т.е. chown -R newuser:newuser /home/newuser-dir
).
Это состояние гонки, очень похоже на программирование, за исключением того, что вы испытываете это на уровне системы, а не процесса, но это все же угроза безопасности.
Пн правильно, если у вас нет очень странных требований, было бы намного лучше использовать процесс загрузки, который не требует такой фоновой задачи для изменения владельца файла.
Потому что в каком-то смысле вы берете непроверенные данные (загруженный файл) и автоматически устанавливаете уровень доверия, эквивалентный другому, предположительно более надежному пользователю, не обязательно обеспечивая безопасность файлов. Это создает возможность злоупотребления этим условием гонки, например, если новый пользователь может создать символическую или жесткую ссылку на системный файл (например, /etc/shadow
), чтобы они могли получить хешированные пароли, чтобы затем смонтировать офф-лайн взлом пароля атака. Это было бы печально.
Предполагая, что вы выполняете рекурсивный chown
, и файлы записываются где-нибудь в дереве, право собственности на которое вы рекурсивно меняете, тогда да.
Каким же пользователем они загружают файлы? Как у них есть разрешение на запись, если каталоги не были chown
Эд еще? Почему бы не установить правильные разрешения перед тем, как предоставить им доступ?
Информация о владельце устанавливается при создании файла. Если после этого он изменится, он останется, пока программа не перезапишет информацию о владельце снова после этого.