LINUX.ORG.RU

Где логика в linux? или Как задать umask для конкретного пользователя...

 , препятница


0

1

А вы знали что umask для пользователя можно выставить через поле GECOS файла /etc/passwd?

При этом:
Поле GECOS служит для хранения таких данных как номер телефона, адрес, полное имя и т.п.
Название поля идет от названия старой операционной системы GECOS (the General Electric Comprehensive Operating Supervisor).
В свою очередь, «поле GECOS было введено в формат учётной записи пользователя UNIX, чтобы хранить идентификатор пользователя для предъявления системе GECOS».
http://ru.wikipedia.org/wiki//etc/passwd#GECOS
Это поле читает PAM модуль pam_umask.so, который и выставляет umask для пользователя.

А задача была простая: выставлять umask для пользователей, которые подключаются через всякие ftp, sftp, etc, т.е. не работают интерактивно и всякие .bashrc не выполняются.

P.S. С заданием umask для всех тоже все не просто, ее можно прописать в /etc/login.defs, как, например, UMASK 0027, но она превратится в 0007 из-за хитрого параметра USERGROUPS_ENAB.


P.P.S. Остался нерешенным вопрос, как для процессов php-fpm задать umask. Судя по всему, когда главный процесс, работающий от рута, создает дочерние процессы пулов (которые работают от пользователей), он не использует PAM, а делает что-то вроде seteuid для того чтобы процесс стал пользовательским.

Перемещено mono из talks

★★★★★

Последнее исправление: ls-h (всего исправлений: 1)

Зачем перенесли пост? Я не спрашиваю, как сделать по-другому.
Я делюсь впечатлениями и рассказываю о архаичном поле GECOS, которое уже давно надо было выпилить (в идеальном случае). По крайней мере, для вещей типа umask оно использоваться точно не должно.

ls-h ★★★★★
() автор топика

Это поле читает PAM модуль pam_umask.so

PAM не нужен.

ftp

дык в конфиге скажем proftpd.conf выставляется

sftp, etc, т.е. не работают интерактивно и всякие .bashrc не выполняются.

а вот там ~/.bash_login выполняется

emulek
()
Ответ на: комментарий от ls-h

И как там, в слаке, решается эта задача?

таких диких костылей в слаке нет AFAIK

emulek
()
Ответ на: комментарий от ls-h

Зачем перенесли

наверное модератор постеснялся про тебя плохое сказать со своего аккаунта.

emulek
()

А задача была простая: выставлять umask для пользователей, которые подключаются через всякие ftp, sftp, etc, т.е. не работают интерактивно и всякие .bashrc не выполняются.

А если сделать su -l <someuser> то же сработает ?

TEX ★★★
()

Я, навреное, открою тайну, но есть ещё sticky bit, который нетипично используется самбой. И совсем не по исходному своему назначению, которое, впрочем как и «поле GECOS», кануло в лету.

Delirium_veritas
()
Ответ на: комментарий от emulek

дык в конфиге скажем proftpd.conf выставляется

А если разным пользователям разный?
Да и вообще, мне думается что такое должно задаваться централизованно.

ls-h ★★★★★
() автор топика
Ответ на: комментарий от Delirium_veritas

Я, навреное, открою тайну, но есть ещё sticky bit

Да, я в курсе. Но тут хоть и немного, но название в тему.

ls-h ★★★★★
() автор топика
Ответ на: комментарий от ls-h

А если разным пользователям разный?

задавай разный. http://www.proftpd.org/docs/modules/mod_core.html#Umask хоть в ftpaccess.

Да и вообще, мне думается что такое должно задаваться централизованно.

тебе неправильно думается. Это личная настройка юзера. Юзер должен иметь возможность её менять. Потому-то она и задаётся так вот «криво».

emulek
()
Ответ на: комментарий от ls-h

А задача с php-fpm так и не решена. См. P.P.S. в топике.

читай доки того, что делает setuid.

emulek
()

Ну тогда еще узнай что есть:
auth 113/tcp authentication tap ident
который чисто гипотетически должен у тебя быть.

hbars ★★★★★
()
Ответ на: комментарий от ls-h

А задача с php-fpm так и не решена

man php-fpm

hint: при вызове ты указываешь юзера, от которого он работает

anonymous
()
Ответ на: комментарий от anonymous

hint: при вызове ты указываешь юзера, от которого он работает

Это я в курсе. Может быть много разных пулов, каждый от своего юзера. А где там про umask?

ls-h ★★★★★
() автор топика
Ответ на: комментарий от ls-h

Я делюсь впечатлениями и рассказываю о архаичном поле GECOS, которое уже давно надо было выпилить

А мне как раз эта ОС нравится из-за таких классических моментов. Ну шо ты с php-fpm не можешь сделать? Запускай из-под пользователя, для пользователя выставь umask.

crypt ★★★★★
()

Хо-хо!

Некоторые софтины umask=маска из /etc/passwd считают полным именем пользователя.
Зачем было делать так, чтобы pam_umask.so читал umask именно оттуда?

ls-h ★★★★★
() автор топика
Ответ на: Хо-хо! от ls-h

Зачем было делать так, чтобы pam_umask.so читал umask именно оттуда?

потому что это наверное единственное место в централизованных настройках, которые юзер может сам менять.

emulek
()
20 марта 2014 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.