印刷用表示へ切り替え 通常表示へ切り替え 更新履歴を表示 更新履歴を隠す
Linux CUPS のジョブを Windows から削除できるようにする

CUPS の設定で,Windows からジョブをキャンセルするようにしたいが,/etc/cups/passwd.md5 が生成されない場合の対処法について。

■ ■ ■

はじめに

CUPS を使って Linux サーバにプリンタを接続しておくと,Winodows PC からネットワークプリンタとして共有できるので便利である (nlog(n): CUPS でプリンタ共有環境を作る)。しかし,1つ問題が発生した。Windows からプリンタのジョブをキャンセルできないのである。さらに,Linux でその設定をしようとすると,パスワードファイルが生成されないという問題が発生。この問題が解決したので,以下に紹介する。CUPS の設定については,詳しい解説がある (CUPSでLinuxのプリンタ (PIXUS) を共有する: Netsphere Laboratories)。この記事は,パスワードファイル生成で問題が発生するときの補足をしているだけである。

環境は,印刷ジョブを出す PC が Widows XP Professional Edition,サーバは Vine Linux 4.2, CUPS 1.1.23 である。

状況

アクセス拒否のメッセージ
アクセス拒否のメッセージ


  • Windows PC から印刷ジョブのキャンセルができない (「アクセスが拒否されました」と表示される)
  • Web 経由ならジョブのキャンセルができるが,root のパスワードが必要

これは不便である。

Linux の設定

/etc/cups/cups.conf の編集

/etc/cups/cups.conf を編集し,コメントを外して次のセクションを有効にする。

<Location /jobs>
#
# You may wish to limit access to job operations, either with Allow
# and Deny lines, or by requiring a username and password.
#
AuthClass Group
AuthType BasicDigest
AuthGroupName sys
</Location>

印刷のためのユーザを登録

エラーログ /var/log/cups/error_log には次のように記録されていた。

E [31/Mar/2008:23:07:37 +0900] cancel_job: "anonymous" not authorized to delete job id 105 owned by "nlogn"!

「ユーザ anonymous は nlogn のジョブを削除する権限を持っていない」ということである。したがって,その権限を anonymous に持たせてやればよい。anonymous というユーザはデフォルトでは存在しないので,作成する必要がある。現在のプリントユーザを確認するには,/etc/cups/passwd.md5 の中を見ればよい。デフォルトではそもそもファイルが存在しない。

ユーザは,ユーザ名 anonymous,グループ名 sys で登録する。登録のコマンドは次の通り。パスワードは後に使うことはないので,覚えておく必要はない。成功すると /etc/cups/passwd.md5 が生成される。

# lppasswd -g sys -a anonymous

パスワードは6文字以上で,ユーザ名を含んではならず,文字と数字の両方を含んでいなければならない。この条件を満たしていないと,次のように失敗する。

# lppasswd -g sys -a anonymous
Enter password:
Enter password again:
lppasswd: Sorry, password rejected.
Your password must be at least 6 characters long, cannot contain
your username, and must contain at least one letter and number.

私のサーバでは,パスワードを正しく設定しても,次のエラーメッセージが表示され,passwd.md5 は生成されなかった。

# lppasswd -g sys -a anonymous
Enter password:
Enter password again:
lppasswd: failed to backup old password file: No such file or directory

passwd.md5 ファイルが生成されない問題については,turbolinux では lppasswd コマンドのパーミッション設定で解決できるとある (lppasswd で /etc/cups/passwd.md5 ができない)。しかし,Vine Linux 4.2 ではダメだった。

この問題は,空の passwd.md5 を touch して新規作成することで解決できる。

# pwd
/etc/cups
# touch passwd.md5
# lppasswd -g sys -a anonymous
Enter password:
Enter password again:
# ls -la passwd*
-r-------- 1 root root 42  4月 2日 23:48 passwd.md5
-rw-r--r-- 1 root root  0  4月 2日 23:47 passwd.old

おわりに

実は,設定をしてみたものの,ジョブが詰まることが起こっていないので,動作確認ができていない。

Posted by n at 2008-04-04 00:38 | Edit | Comments (0) | Trackback(0)
Trackbacks

  • 「手違いで複数トラックバックを送ってしまった!」という場合でも気にしないでください (重複分はこちらで勝手に削除させていただきます)
  • タイムアウトエラーは,こちらのサーバの処理能力不足が原因です (詳細は トラックバック送信時のエラー をご覧ください)
  • トラックバックする記事には,この記事へのリンクを含めてください(詳細は 迷惑トラックバック対策 をご覧ください)
Comments
Post a comment
  • 電子メールアドレスは必須ですが,表示されません (気になる場合は「メールアドレスのような」文字列でもOKです)
  • URL を入力した場合はリンクが張られます
  • コメント欄内ではタグは使えません
  • コメント欄内に URL を記入した場合は自動的にリンクに変換されます
  • コメント欄内の改行はそのまま改行となります
  • 「Confirmation Code」に表示されている数字を入力してください (迷惑コメント対策です)


(必須, 表示されます)


(必須, 表示されません)


(任意, リンクされます)


Confirmation Code (必須)


Remember info (R)?