Defina o MOTD específico do usuário ou do grupo no SSH

3

Gostaria de desabilitar ou alterar o MOTD mostrado no logon do SSH por grupo / por usuário. Esta pergunta no SuperUser tem uma resposta informando que posso usar Match blocks em sshd_config . No entanto, man sshd_config declara:

Match
         ...
         Only a subset of keywords may be used on the lines following a
         Match keyword.  Available keywords are AcceptEnv,
         AllowAgentForwarding, AllowGroups, AllowTcpForwarding,
         AllowUsers, AuthenticationMethods, AuthorizedKeysCommand,
         AuthorizedKeysCommandUser, AuthorizedKeysFile,
         AuthorizedPrincipalsFile, Banner, ChrootDirectory, DenyGroups,
         DenyUsers, ForceCommand, GatewayPorts, GSSAPIAuthentication,
         HostbasedAuthentication, HostbasedUsesNameFromPacketOnly,
         KbdInteractiveAuthentication, KerberosAuthentication,
         MaxAuthTries, MaxSessions, PasswordAuthentication,
         PermitEmptyPasswords, PermitOpen, PermitRootLogin, PermitTTY,
         PermitTunnel, PubkeyAuthentication, RekeyLimit,
         RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset,
         X11Forwarding and X11UseLocalHost.

E não consigo ver nada relacionado ao MOTD nessa lista. E, de fato, tentar usar essa sugestão faz com que sshd não seja iniciado devido à configuração incorreta.

Então, posso fazer isso? Se sim, como? A partir da configuração do SSH ou alterando o que gera / imprime o MOTD?

A alteração de arquivos em /etc/update-motd.d não é útil, pois, de acordo com man update-motd :

   Executable  scripts in /etc/update-motd.d/* are executed by pam_motd(8)
   as the root user at each login, and this information is concatenated in
   /var/run/motd. 

(Eu testei isso com um script que fez echo $USER . Eu tenho um root no meu MOTD.)

Isso deixa a configuração do PAM. Eu imagino que seja possível desabilitar pam_motd em uma base por grupo / usuário, mas não tenho certeza de como fazer isso. A última opção seria desabilitar pam_motd e usar pam_exec , mas espero que não chegue a isso.

    
por muru 15.10.2014 / 22:27

1 resposta

3

Aqui está uma implementação sobre por usuário / grupo motd inspirado em motd ou banner de login por usuário

Primeiro comentário:

session    optional   pam_motd.so  motd=/run/motd.dynamic
session    optional   pam_motd.so

em /etc/pam.d/login e defina PrintMotd no em /etc/ssh/sshd_config

Em seguida, você pode definir seu script de mensagem por usuário / grupo e colocá-lo na pasta, por exemplo:

sudo mkdir -p /etc/mymotd/groups
sudo mkdir -p /etc/mymotd/users

Nessas pastas, você pode criar scripts executáveis para cada grupo ou usuário que imprime na saída padrão a mensagem do dia.

Você pode criar /etc/profile.d/perUserGroupMotd.sh com as seguintes linhas:

gidName='id -gn'
if [ -e /etc/mymotd/groups/$gidName ]; then
   /etc/mymotd/groups/$gidName
else 
   if [ -e /etc/mymotd/users/$USER ]; then
      /etc/mymotd/users/$USER
   fi
fi

ou você pode usar o arquivo para habilitar / desabilitar a mensagem e depois executar /path/to/script -g $gidName ou /path/to/script -u $USER , obviamente existem muitas implementações possíveis diferentes.

Sobre o pam_motd , no final, encontrei esses dois erros:

Por essas razões, não é possível usar pam_motd para seu objetivo.

A diretiva

HUSHLOGIN_FILE em /etc/login.defs deve inibir todas as conversas habituais durante a sequência de login , portanto, qualquer saída é suprimida até a última data de login.

Eu acho que o motd é projetado para alcançar todos os usuários no sistema e, por isso, ssh e pam_motd simples ativam ou desativam para todos os usuários.

    
por Lety 25.10.2014 / 00:08

Tags