Если службы запускаются через Upstart или /etc/init.d, отредактируйте соответствующие initscripts.
- init.d:
umask 02
вверху скрипта (это обычныеsh
скрипты) - Выскочка :
umask 02
где угодно
В Linux нет строгого определения «логин», а учетная запись - это просто UID, который может (или не может) быть связан с именем / homedir / и т. Д.
Когда вы входите в систему через консоль / через SSH, программа входа в систему (или демон SSH) использует PAM для настройки среды (возможно pam_umask
), а затем запускает оболочку с флагом «login». /etc/profile
Сценарий принадлежит Sh и Баш снарядов, которые только читают его «входа» заклинаниями.
Когда вы используете sudo touch ...
или sudo /etc/init.d/foo start
, sudo по- прежнему вызывает PAM для настройки auth / account / session, но не запускает оболочку вообще, то есть все файлы "profile" или "bashrc" будут игнорироваться. (То есть, если вы не используете sudo -i ...
.)
Когда Upstart запускает сервис, он просто переключает UID на ваш сервис, пропуская любые скрипты «профиля» или конфигурацию PAM. Единственная конфигурация, которая читается, - это файл службы, в /etc/init
который вы должны поместить параметр umask.