web-dev-qa-db-ja.com

Kerberosチケットを使用してSamba共有をマウントする

私はSambaサーバー(ドメインコントローラーです)と、Kerberosで認証されたユーザーがログに記録されているUbuntu 14.04クライアント(クライアントは同様にドメインに参加しています)を持っています。ユーザーは、次のコマンドでネットワーク共有にアクセスしたいと考えています。

mount.cifs // DOMAIN/PATH/HOME/USER/PATH -o sec = krb5

ただし、「sec」パラメーターを使用する(または使用しない)と、mountコマンドはパスワードの入力を求めます。パスワードを入力すると、共有をマウントできますが、パスワードなしでマウントしたいと思います。

有効なKerberousチケットでどうすればよいですか?

5
mbalint987

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これを機能させるには。

7
naitsirch

初挑戦 -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が必要な場合があります。

3
user1686