Назад | Перейти на главную страницу

Как я могу изменить маску для пользователя, когда он входит в альтернативную группу?

Я хочу umask быть более снисходительным для пользователей, когда они переключаются в группу, отличную от группы по умолчанию. Просто чтобы продемонстрировать, что я имею в виду:

$ id
uid=500(beamin) gid=500(beamin) groups=10(wheel)

$ umask
0022

$ sg wheel

$ umask # I want this to now be 0002 instead
0022 

Я думал добавить скрипт в /etc/profile.d/ это будет выглядеть так:

if [ "`id -u`" -ge 500 ] && [ "`id -g`" -ne "`id -u`" ]; then
   umask 0002
fi

я получил 500 потому что все наши пользователи uids больше или равно этому. Это лучший способ сделать это? Или у кого-то есть что-то более понятное?

Я думаю, ваше решение в порядке. В сценарии оболочки вы можете использовать:

(umask 022;exec sg wheel )

Тест с:

umask 002
umask
( umask 022; exec sg wheel umask)
umask

Для альтернативного решения см. Мой аналогичный пост: Как установить структуру разрешений для нескольких пользователей, редактирующих несколько сайтов в / var / www в Ubuntu 9.10?

Вы можете создать сценарий mysg, который выполняет sg arg, за которым следует umask X, где X равно 002 или 022 в зависимости от того, какая группа была введена. Наверное, не самое элегантное решение ...