Навязчивая аутентификация на сервере печати CUPS в режиме PAM

При настройке сервера печати с аутентификацией PAM окошко аутентификации администратора печати вылазит, мягко говоря, очень часто. В том числе при попытке распечатать документ. Хотя в режиме ALD можно спокойно печатать без прав админа печати.

Как это окошко аутентификации убрать? Или где-то прав на принтер надо накидать?

 

окошко аутентификации

superadmin Изменённый комментарий
0
2516

задан 17 июля 2018

Робот
1 ответ

Р

Робот

ответил 20 июля 2018

Для разработчиков

Чтоб при обращении к привилегированным действиям Cups постоянно не вводить логин/пасс админа печати, их можно сохранить в конфиг, затем определить коллбэк-функцию, которая будет вызываться при запросе аутентификации. Она то и заменит нам это окошко.

cupsSetUser( «print_admin» );

auto cb2 = [](const char *prompt, http_t *http, const char *method,
const char *resource, void *user_data)
{
const char* pwd = …; //из конфига
return pwd;
};

cupsSetPasswordCB2(cb2, nullptr);

Выполнить сразу после коннекта к серверу печати.

Для написания гуя для markjob подход выше не работает. Я создал на клиентской машине пользователя-заглушку с логином админа печати и выполняю sudo -u print_admin markjob. В этом случае окошко ввода не появляется, а идёт вывод запроса пароля в stdout типа Введите пароль для print_admin. Если бы делали без sudo, то пользователем для ввода пароля был владелец процесса, а это нам не надо. Ну а дальше пишем в stdin и парсим.

Чтобы разрешить создавать задачи на печать.

Сам же принтер у меня с политикой parsec, следовательно идём в /etc/cups/cupsd.conf, ищем <Policy parsec>… <Limit Create-Job Print-Job…> и коментим AuthType Default. Перезапускам сервис. С другими Limit’ами тоже нужно поиграться, в плане комментирования AuthType Default

Чтобы ответить на вопрос, авторизуйтесь в сообществе.