Estou em uma situação semelhante com os diretórios iniciais do autofs nos diretórios do Kerberized NFSv4:
- Se eu estou vindo de outra máquina kerberizada, posso SSH para a máquina de destino com um TGT encaminhado e minha conta na máquina de destino efetua login normalmente com meu diretório pessoal montado automaticamente.
- Se eu não estiver vindo de outra máquina kerberizada, posso (sujeito à ACL local) efetuar login com uma senha nessa máquina e fazer com que o PAM gere um ticket. O diretório inicial montado automaticamente também aparece nesta situação.
- Não consigo fazer login nesta máquina se depender da conta ter uma entrada em
~/.ssh/authorized_keys
porque o diretório inicial está inacessível para o daemon SSH no destino. Ele não está inacessível porque está desmontado, mas é inacessível porque o daemon SSH não tem o TGT para acessar o diretório inicial que contém o arquivo authorized_keys
.
- Quando obtiver acesso a uma máquina, independentemente de
sudo
permissões, não posso sudo su
para a conta de outro usuário sem que seu diretório pessoal fique inacessível - novamente, não tenho o TGT.
- Nessa máquina, eu posso
su
para sua conta e tenho seu diretório home disponível no login se eu tiver sua senha, porque o login através de su
passa pelo PAM e isso me dá uma TGT que permitirá que o automount seja bem-sucedido.
- Nas arquiteturas em que o TGT é armazenado em um armazenamento de chaves acessível (como um conjunto de chaves do sistema), o TGT não é apagado pelo logoff, a menos que se faça um
kdestroy
explícito. Agora posso sudo su
para a conta desse usuário e o diretório inicial do automount será bem-sucedido.
O tópico comum aqui é que o TGT não está acessível a menos que um ticket encaminhado seja transferido de outra máquina ou o usuário tenha a senha para obter o ticket com alguma forma de login ou kinit
.
Permitindo que as contas de serviço ocasionalmente hospedem usuários (por exemplo, para centralização de configuração complexa como ~/.kube/
), é insuficiente colocar um keytab no diretório de conta pela mesma razão que authorized_keys
não funciona. Também não é suficiente depender de tickets com um longo tempo de vida e tarefas cron para reabastecer um keychain do sistema porque uma reinicialização limparia o keychain e ficaria indisponível até a próxima invocação do cron (o que provavelmente seria algum tempo). Também é uma bagunça para configurar o cron assim em um cluster de máquinas.