Я хочу 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
потому что все наши пользователи uid
s больше или равно этому. Это лучший способ сделать это? Или у кого-то есть что-то более понятное?
Я думаю, ваше решение в порядке. В сценарии оболочки вы можете использовать:
(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 в зависимости от того, какая группа была введена. Наверное, не самое элегантное решение ...