sed: регулярное выражение, как заменить?

Только root может изменять владельца файлов. Достаточно современные версии Linux предоставляют возможность CAP_CHOWN ; пользователь, обладающий этой возможностью, также может изменить владельца произвольных файлов. CAP_CHOWN является глобальным, после предоставления он применяется к любому файлу в локальной файловой системе.

Право собственности на группу может быть изменено владельцем файла (и пользователем root). Однако это ограничено группами, к которым принадлежит владелец. Итак, если пользователь U принадлежит к группам A, B и C, но не к D, то U может изменить группу любого файла, которым U владеет, на A, B или C, но не на D. Если вы ищете произвольные изменения, тогда CAP_CHOWN - это правильный путь.

ВНИМАНИЕ CAP_CHOWN имеет серьезные последствия для безопасности, пользователь с оболочкой с возможностью CAP_CHOWN может получить привилегии root. (Например, chown libc самому себе, пропатчите своих троянских коней, chown его обратно и дождитесь, пока корневой процесс его заберет.)

Поскольку вы хотите ограничить возможность смены владельца на определенные каталоги, ни один из доступных инструментов вам не поможет. Вместо этого вы можете написать свой собственный вариант chown , который учитывает предполагаемые ограничения. Эта программа должна иметь возможность CAP_CHOWN , например.

setcap cap_chown+ep /usr/local/bin/my_chown

ВНИМАНИЕ Ваша программа, вероятно, будет имитировать подлинный chown , например my_chown пользователь: имена файлов группы . Выполняйте проверку ввода очень осторожно. Убедитесь, что каждый файл удовлетворяет намеченным ограничениям, в частности, обратите внимание на программные ссылки, выходящие за границы.

Если вы хотите ограничить доступ к своей программе для определенных пользователей, вы можете либо создать специальную группу, либо установить групповое владение my_chown для этой группы, установить разрешения на 0750 и добавить всех разрешенных пользователей. в эту группу. В качестве альтернативы вы можете использовать sudo с подходящими правилами (в этом случае вам также не нужна магия возможностей). Если вам нужна еще большая гибкость, тогда вам нужно закодировать правила, которые вы имеете в виду, в my_chown .

-1
22.08.2015, 22:39
0 ответов

Теги

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