通常のLinuxボックスでsudo -s
通常のユーザーとして使用するとルートになりますHOME
が、~user
それでもポイントenv_reset
ですalways_set_home
。
ホームディレクトリがAFSファイルシステムにあるシステムでは、KRB5CCNAME
ルートが/tmp
。
ただし、sudo
これらのシステムでルート以外のローカルユーザー(サービス専用ユーザーなど)を変更すると、新しいユーザーはKerberosキャッシュにアクセスできません。モード600があります)。ただし、これにより、unset KRB5CCNAME && kinit user && aklog && exec bash
自分の環境に再びアクセスできます。
だから質問は:sudoが以前に持っていたkerberosチケットを取得し、新しいユーザーのkerberosチケットキャッシュに追加するためのきちんとした方法はありますか?
答え1
私が知っている限り、現在Kerberos PAMモジュールはこの機能をサポートしていないようです。しかし、それがどのように達成できるかはわかります。しかし、それ自体では不可能なものはありません。デフォルトでは、currentが指すチケットキャッシュを開き、それを繰り返し、見つかった各チケットを初期キャッシュが設定された後に新しく作成されたチケットキャッシュにコピーするpam_krb5
コードを取得する必要があります。KRB5CCNAME
資格情報をターゲットユーザー(誰も含む)に公開するので、これはデフォルトではなくオプションでなければなりません。その他誰がそのユーザーになることができるか)これは潜在的に危険です。
即時のソリューションが必要ですが、ksu
必要がないsudo
場合は、 ksu
現在Kerberosチケットキャッシュを保存することがすでにサポートされています(少なくともMIT Kerberosバージョンでは)。