Parece que isso não é uma opção aqui (Fedora 19, shadow-utils-4.1.5.1-5.fc19). Parece uma extensão muito útil, no entanto. Por favor, comunique isso como um pedido de melhorias no bugtracker da sua distribuição (ou para onde isso deveria acontecer).
Existem muitas pessoas que já responderam à pergunta "como executar useradd adequadamente em um script?"
A minha pergunta é: "é possível dizer ao useradd para executar um script quando é chamado?"
Estou escrevendo um script para enviar arquivos de identidades (ssh-keys) em um cluster HPC quando um usuário é criado, mas acho que a maneira mais "limpa" seria escrever um script que fosse executado por useradd.
O script deve fazer algo assim:
#!/bin/bash
# sshpush.sh
#
# a script to SSH without passwords around the cluster nodes
mkdir $HOME/.ssh
cd $HOME/.ssh
ssh-keygen -q
cat id_rsa.pub >> authorized_keys
cat > config <<EOF
StrictHostKeyChecking no
FallBackToRsh no
BatchMode yes
ConnectionAttempts 5
UsePrivilegedPort no
Compression no
Cipher blowfish
CheckHostIP no
EOF
cpush /etc/passwd
cpush /etc/shadow
cpush /etc/groups
observe que o diretório / home está montado como NFS em todos os nós.
O ideal é que o script seja executado no final do processo de criação do usuário, depois que $HOME
for criado e o usuário como um grupo válido e id.
Parece que isso não é uma opção aqui (Fedora 19, shadow-utils-4.1.5.1-5.fc19). Parece uma extensão muito útil, no entanto. Por favor, comunique isso como um pedido de melhorias no bugtracker da sua distribuição (ou para onde isso deveria acontecer).
Eu não fiz muitos testes com o seu caso, mas às vezes você pode usar alias command=
para alterar o que o comando faz. Experimente com ls
primeiro e brinque com ele para aprender como o aliasing pode funcionar. Quando terminar, diga unalias ls
e o shell integrado continuará funcionando.