Некоторое время назад, когда я разговаривал в IRC, один из пользователей канала, в котором я находился, предложил установить каталог для того, чтобы он унаследовал идентификатор пользователя для файлов, чтобы решить проблему, возникшую у другого человека. В то время я говорил и говорил: «Linux не поддерживает директории setuid». После этого человек, давший совет, показал мне пастин ( http://codepad.org/4In62f13 ) своей системы, соблюдающий набор разрешений setuid для каталога.
Просто чтобы объяснить, когда я говорю «linux не поддерживает каталоги setuid», я имею в виду, что вы можете перейти к «каталогу chmod u + s», и он установит бит в каталоге. Тем не менее, linux (как я понял) игнорирует этот бит (для каталогов).
Попробуйте, как я мог, я просто не могу воспроизвести этот пастин. Кто-то однажды предложил мне, что можно было бы подражать поведению с selinux - и, играя по правилам, можно принудительно установить uid в файле, но не из разрешения директории setuid (что я вижу). Чтение в Интернете было довольно неинформативным - большинство мест утверждают, что «нет, setuid для каталогов не работает с linux», а иногда «это может быть сделано при определенных обстоятельствах» (например, это: http://arstechnica.com/ etc / linux / 2003 / linux.ars-12032003.html )
Я не помню, кто был первоначальным человеком, но исходная система была системой Debian 6, и файловая система, на которой она работала, была смонтирована xfs с "default, acl". Я попытался воспроизвести это, но пока не повезло (пробовал пока что с различными версиями Debian, Ubuntu, Fedora и Centos)
Кто-нибудь может подсказать мне, что или как вы получаете систему для соблюдения setuid в каталоге?
источник
grpid|bsdgroups
илиnogrpid|sysvgroups
), который означает, что файлы в каталогах создаются с группой каталога, а не с группой владельца; возможно поиграть с этим?Ответы:
Setuid для каталогов не ведет себя как setgid. Если только выход оболочки не был получен из FreeBSD, кому-то было скучно, и он немного развлекался за ваш счет.
http://en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories
источник
Частичный ответ / обходной путь:
Я пытался сделать то же самое, я решил не бороться с этим и попробовать другой метод. Я попробовал списки контроля доступа, чтобы установить разрешения по умолчанию. (Примечание: вам может понадобиться сначала их включить).
Здесь testuser используется для запуска тестов, и обычный пользователь может удалить результаты, не приводя к использованию root (каждый раз).
источник
От RHEL
man chmod
Численно, если я правильно помню,
chmod 4711 ./dir
добавляет установленный бит UID,chmod 2711 ./dir
добавляет установленный бит gid для этого,6711
устанавливая наследование uid + gid согласно демонстрации в pastebin.На страницу руководства
chmod u+s
==chmod 4XXX
иchmod g+s
==chmod 2XXX
источник
=755
или00755
используя