인쇄 설정 대화 상자에서 admin/sudo 비밀번호 요청을 중지합니다.

인쇄 설정 대화 상자에서 admin/sudo 비밀번호 요청을 중지합니다.

저는 Cinnamon과 함께 Manjaro를 사용하고 있는데 인쇄 설정(정보)에 들어갈 때마다 system-config-printer비밀번호를 입력해야 하는 모서리에 있는 "잠금 해제"를 클릭하기 전까지는 아무 작업도 할 수 없습니다.

이것은 짜증나는 일이며 인증은 몇 분 후에 만료되므로 반복적으로 잠금을 해제해야 합니다.

모든 기능에 비밀번호 없이 액세스하도록 허용하는 방법은 무엇입니까 system-config-printer? 내 사용자를 그룹에 추가했습니다 cups. printer내 시스템에는 그룹이 없습니다.

이 기계는 나만 사용하기 위해 집에 있으며 이미 안전하며 프린터 설정에 대한 무단 액세스에 대해 걱정할 필요가 없습니다.

답변1

글쎄요, 귀하의 질문은 여전히 ​​두 부분으로 나누어져 있으므로 이를 나누어 각 질문에 개별적으로 답변하겠습니다.

1. CUPS 정책 및 액세스

CUPS는 Linux의 사실상의 인쇄 서버로 USB 케이블 직접 연결, 로컬 LAN 인쇄, WAN 액세스 등 모든 유형의 인쇄를 허용합니다. 따라서 여기에는 다양한 구성 설정이 있으며 그 중 다수는 보안 및 시스템 정책 관리와 관련된 것입니다. 현재 주요 목표는 기본적으로 비밀번호를 입력하지 않고도 소유하고 액세스할 수 있는 로컬(직접 연결 또는 LAN) 프린터로 인쇄할 수 있도록 허용하는 것이므로 이 시점에서 이러한 복잡한 세부 사항을 자세히 조사하는 것은 비생산적입니다. .

이를 설치하고(현재 대부분의 Linux 배포판에 포함되어 있음) 서비스를 시작한 경우 cups(머신이 보이면 system-print-settings이미 실행 중인 것입니다):

sudo systemctl start cups

그러니 네가 가면http://localhost:631//etc/cups/cupsd.conf기본적으로 액세스에 대한 제한이 없는 CUPS 구성을 위한 웹 액세스 가능 GUI인 CUPS 서버 관리 페이지가 표시됩니다 .

[...]
Browsing On
BrowseLocalProtocols dnssd
DefaultAuthType Basic
WebInterface Yes
<Location />
  # Restrict access to the server...
  Order allow,deny
</Location>
[...]

동일한 파일을 더 자세히 살펴보면 다음 cupsd.conf과 같은 다른 위치가 제한되어 있음을 알 수 있습니다.

<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
</Location>

비밀번호를 입력하면 비밀번호 http://localhost:631/admin/conf를 묻는 메시지가 표시됩니다.

이제 가장 중요한 부분은 다음과 같습니다.CUPS는 고려되지 않습니다. root또는 sudo**어떤 식으로든 특별해야 합니다. 서버 구성에 대한 액세스 권한을 부여하는 그룹에 속한다는 사실**

@SYSTEM의 사양은 /etc/cups/cupsd.conf에 있는 값에 대한 참조 입니다 /etc/cups/cups-files.conf. 일반적으로(관리자가 직접 변경하지 않는 한) 다음과 같습니다.

sudo grep -i System /etc/cups/cups-files.conf 
# Administrator user group, used to match @SYSTEM in cupsd.conf policy rules...
SystemGroup lpadmin

lpadmin이 그룹은 사용자( 포함)가 CUPS를 구성할 수 있도록 시스템에 존재합니다 root. 루트로 실행 중인 경우 해당 그룹이 에 포함되어 있는 것을 groups볼 수 있습니다 .lpadminroot

따라서 모든 시스템 사용자가 CUPS 구성 페이지에 액세스할 수 있으려면 해당 사용자가 lpadmin찾은 해당 그룹 이름의 일부이거나 다른 그룹 이름의 일부인지 확인해야 합니다.@SYSTEMcups-files.conf

분명히 그룹에 사용자를 추가한 후 서비스 cups와 사용자 세션을 다시 시작해야 할 수 있으므로 재부팅하는 것이 좋습니다.

이제 sudo를 사용하지 않는 사용자도 프린터 옵션을 설정하고, 인쇄하고, 자신이 소유한 프린터로 작업을 전송/취소할 수 있습니다. 의 다른 기본 설정은 cupsd.conf기본적으로 충분히 안전해야 합니다. 아니면 적어도 제가 마지막으로 들은 내용입니다.

2 Print Settingssystem-config-printer

위의 방법을 사용하면 http://localhost:631/*루트가 아닌 사용자로 프린터 구성 옵션에 액세스할 수 있지만 lpadmin해당 사용자가 해당 그룹에 속해 있는 동안에는 여전히 비밀번호를 묻는 메시지가 표시될 수 있으며, 더 중요한 것은 특정 질문의 경우 관련 항목에는 영향을 미치지 않는다는 것입니다. system-config-printerDialog 관련 콘텐츠 에 .

이제 이 부분이 훨씬 더 까다롭다는 점을 인정합니다. sudoers다양한 형태의 액세스를 허용하는 sudo가 아닌 사용자의 그룹 권한을 사용할 때 이후 대화 상자를 열 때마다 비밀번호 프롬프트가 표시됩니다. 예를 들어 설정을 클릭하면 비밀번호 프롬프트가 표시됩니다. 백그라운드에 그대로 두면 결국 설정 대화 상자가 열리고 대부분의 구성 옵션을 변경하는 것이 불가능하거나 매우 비현실적인 것으로 판명되었습니다.

그런 다음 해당 대화 상자에 대한 정책 설정을 관리하는 방법을 조사한 결과 해당 파일을 찾았습니다.

필요한 것은 다음 코드 줄입니다.gawk(런타임은 내부 교체를 위해 설치되었는지 확인합니다)unlock다음을 실행할 때 버튼이나 비밀번호 프롬프트가 표시되지 않습니다 system-config-printer.

sudo gawk -i inplace '{gsub((/auth_admin|auth_admin_keep/),"yes"); print }' /usr/share/polkit-1/actions/org.opensuse.cupspkhelper.mechanism.policy 

그것이 하는 일은 해당 대화 상자에 대한 정책 파일 에 필요한 모든 값을 바꾸는 것입니다 auth_admin. 따라서 정책 파일에 다음 설정이 적용되고 액세스 수준이 변경됩니다.auth_admin_keepyes

$ sudo grep -e "action id" -e  "description xml:lang=\"en\"" -e "yes" /usr/share/polkit-1/actions/org.opensuse.cupspkhelper.mechanism.policy


 <action id="org.opensuse.cupspkhelper.mechanism.server-settings">
    <description xml:lang="en">Get/Set server settings</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.devices-get">
    <description xml:lang="en">Get list of available devices</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.printer-set-default">
    <description xml:lang="en">Set a printer as default printer</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.printer-enable">
    <description xml:lang="en">Enable/Disable a printer</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.printer-local-edit">
    <description xml:lang="en">Add/Remove/Edit a local printer</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.printer-remote-edit">
    <description xml:lang="en">Add/Remove/Edit a remote printer</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.class-edit">
    <description xml:lang="en">Add/Remove/Edit a class</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.job-edit">
    <description xml:lang="en">Restart/Cancel/Edit a job</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.job-not-owned-edit">
    <description xml:lang="en">Restart/Cancel/Edit a job owned by another user</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.all-edit">
    <description xml:lang="en">Change printer settings</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>
  <action id="org.opensuse.cupspkhelper.mechanism.printeraddremove">
    <description xml:lang="en">Add/Remove/Edit a printer</description>
      <allow_any>yes</allow_any>
      <allow_inactive>yes</allow_inactive>
      <allow_active>yes</allow_active>

이제 Part 1에서 작성한 내용을 통해 액세스가 허용되지 않으면 Part 2에서 정책 설정을 변경해도 CUPS에 아무런 영향을 미치지 않는다는 것을 알아야 합니다. 실제로 이 대화 상자에 액세스 cups하면 실행 중이 아니거나 액세스가 제한된 경우(루트에서 쫓아내는 경우에도) lpadmin인쇄할 수 없습니다 .

관련 정보