Если Вы действительно хотите позволить пользователю становиться корнем, не вводя пароль, Вы должны меньше всего удостоверяться, что возможность ограничивается конкретным пользователем или эксклюзивной группой.
Можно использовать sudo
позволить выполнять определенные команды, не вводя пароль.Править /etc/sudoers
файл с командой visudo
и добавьте что-то как следующая строка:
%wheel ALL = NOPASSWD: /bin/su
Этот пример позволит пользователям войти wheel
группа для выполнения sudo su
не вводя пароль.
Если Вы хотите сделать это, потому что Вы регулярно выполняете конкретные команды как корень, я предложил бы добавить sudoers
правила для просто тех команд вместо этого для уменьшения воздействия полномочий.
Я только что проверил систему 14.04 и похоже, вам нужен cups-bsd
.
Есть пара команд, которые могут помочь вам определить, какие пакеты какие файлы содержат, dlocate и apt-file (возможно, и другие).
Вы также можете использовать средство Поиск пакетов Ubuntu , которое немного проще в использовании и дает более чистый вывод.
Затем на следующей странице есть ответы
Все, что мне действительно нужно было сделать, это пойти спросить Google, как искать пакеты Ubuntu, и ответ был обнаружен simples .
TL;DR:
apt remove lpr
apt install cups-bsd
Чтобы добавить контекст того, как люди могут попасть сюда:
Любопытно то, что я мог распечатать PDF-файл с помощью evince, но Okular ничего не смог сделать. Запустив Okular в терминале, я продолжал видеть:
usage: lpr [-cdfghlmnpqrstv] [-#num] [-1234 font] [-C class] [-i [numcols]]
[-J job] [-Pprinter] [-T title] [-U user] [-wnum] [name...]
на терминале для каждого задания на печать. Используя strace я видел:
[pid 22556] execve("/usr/bin/lpr", ["/usr/bin/lpr", "-P", "brother-color", "-#1", "-J",\
"S500D_ADA_Health_History_2007-12415.pdf", "-o", "media=Letter", "-o", "portrait", "-o"\
, "sides=two-sided-long-edge", "-o", "outputorder=normal", "-o", "Collate=True", "-o", "\
page-left=12", "-o", "page-top=12", "-o", "page-right=12", "-o", "page-bottom=12", "-o",\
"fit-to-page", "-o", "number-up=1", "-o", "number-up-layout=lrtb", "-o", "job-billing",\
"-o", "job-priority=50", "-o", "job-sheets=none,none", "-o", "BRMonoColor=FullColor", "\
-r", "/tmp/okular_zNNHus.ps"], 0x7ffe5a2e69e0 /* 57 vars */ <unfinished...>
А затем, работая над минимизацией этой команды, я обнаружил, что удаление опций -o приводит к тому, что команда не выдает ошибку, и именно так я и оказался здесь. Чтобы распространить это на все наши настольные компьютеры, я настроил puppet, например:
package { 'lpr' : ensure=>absent }
package { 'cups-bsd' : ensure=>installed }
Я не совсем понимаю, как мы оказались с установленными чашками, но не тот lpr. Теперь отсортировано, и никаких различий для других приложений не замечено.