setgid bit question

#!/bin/sh
new='/usr/bin/ibtool_orig'
for i; do
    if [ "$i" = --errors ] || [ "$i" = --warnings ]; then
        : # skip these
    else
        new="$new $i"
    fi
done
exec $new

Предполагается, что в параметрах не будет специальных символов оболочки, таких как кавычки, скобки и т. Д .; обработка, которая делает это намного более сложным, и тогда сценарий perl может быть проще:

#!/usr/bin/perl
my @new = grep(!/^--(errors|warnings)\z/, @ARGV);
exec '/usr/bin/ibtool_orig', @new;

Хм, он тоже немного короче :)

0
08.05.2018, 19:46
1 ответ

Бит setgid для файлов не имеет ничего общего с каталогами. Бит setgid в вашем примере означает, что исполняемый файл hoststatзапускается с идентификатором группы, установленным на I'd группы mail, предположительно потому, что ему требуется контролируемый доступ к файлам или каталогам, принадлежащим группе mail.

1
28.01.2020, 02:43

Теги

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