Отключите динамические заголовки окон экрана GNU для всего сеанса экрана

  • A folder with the setgid bit set force all its content to have the same owner group as the folder

Ага. Вновь созданные файлы получают группу каталога, группу файла можно, конечно, впоследствии изменить.(Мы называем их каталогами, а не папками.)

  • A program with the setgid bit set always run on behalf of the owner group

Ага. Хотя вам не нужен setgid в каталоге, если вы создаете файлы только через двоичный файл setgid. Программа setgid получает рассматриваемую группу в качестве основной группы, поэтому любые создаваемые ею файлы по умолчанию принадлежат этой группе (, а не группе вызывающего пользователя ).

  • I set setgid bit for the shell script

Это та часть, которая не работает. Большинство систем не учитывают биты setuid и setgid в интерпретируемых скриптах , так как это легко приводит к ряду проблем с безопасностью.

Что вам нужно сделать, так это написать программу-оболочку на C, которая выполняет скрипт, и сделать эту оболочку setgid; или (предпочтительно )используйте что-то вроде sudo, чтобы позволить вашим пользователям запускать скрипт с правами другой группы.(sudoуже имеет дело с такими вещами, как очистка переменных окружения, которые могут быть проблематичными. )В обоих случаях убедитесь, что скрипт и его интерпретатор находятся в каталогах, которые пользователи не могут изменять.

Для sudoтребуемая конфигурация (в/etc/sudoers)будет примерно такой:

username ALL=(:privgroup) /path/to/script

Это позволит пользователю usernameзапускать /path/to/scriptкак группу privgroup. Вы можете использовать %groupnameвместо username, чтобы позволить всем членам groupnameзапускать скрипт. Пользователям нужно будет запустить сценарий, используя sudo -g privgroup /path/to/script, потому что sudoпо умолчанию пытается запустить указанную команду как root, а мы этого не разрешили. Но вы можете написать оболочку для этой команды.

0
26.07.2019, 03:42
0 ответов

Теги

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