私はSambaサーバー(ドメインコントローラーです)と、Kerberosで認証されたユーザーがログに記録されているUbuntu 14.04クライアント(クライアントは同様にドメインに参加しています)を持っています。ユーザーは、次のコマンドでネットワーク共有にアクセスしたいと考えています。
mount.cifs // DOMAIN/PATH/HOME/USER/PATH -o sec = krb5
ただし、「sec」パラメーターを使用する(または使用しない)と、mountコマンドはパスワードの入力を求めます。パスワードを入力すると、共有をマウントできますが、パスワードなしでマウントしたいと思います。
有効なKerberousチケットでどうすればよいですか?
Windowsドメインユーザーでサインインしている場合は、Kerberosチケットがすでに要求されています。 klist
を実行してテストできます。
このチケットを再利用するには、マウント順序にuser
およびcruid
オプションを追加する必要があります。これにより、資格情報を再度入力する必要がなくなります。
Sudo mount -t cifs -o user=$USER,cruid=$USER,sec=krb5 //domain/path /home/path
所有者としてのユーザー(つまり、書き込み権限を持つ)と共有をマウントするには、gid
およびuid
オプションを追加します。
Sudo mount -t cifs -o user=$USER,cruid=$USER,sec=krb5,gid=$GID,uid=$UID //domain/path /home/path
あなたはあなたの$GID
を実行してid -g $USER
そしてあなたの $UID
沿って id -u $USER
。
apt-get install keyutils
これを機能させるには。
初挑戦 -o vers=1
。カーネルのSMB2クライアントは ごく最近 Kerberosサポートのみを獲得しました– Ubuntu 14.04では、4.4.xカーネルのみがそれをサポートします。
次に、request-key
およびcifs.upcall
バイナリがインストールされており、後者は/etc/request-key.conf
(または/etc/request-key.d/
):
create cifs.spnego * * /usr/bin/cifs.upcall %k
最後に、システムログ(/var/log/debug
またはjournalctl -b
)cifs.upcallからのメッセージの場合、チケットが正しい場所で検索されていることを確認してください。実際には、どのプロセスが共有にアクセスしているかknowせず、$ KRB5CCNAMEが何を持っているかを把握していないため、いくつかの一般的な場所を推測する必要があります。
実際、Sudo経由でmount
を実行すると、マウントプロセス(uid 0として実行)には、デフォルトでanyチケットがありません。 ;別 Sudo kinit
が必要な場合があります。