Estou tentando configurar a política de senha de usuários no RHEL 6.6 e quero que o sistema solicite que os usuários recém-criados alterem a senha inicial no primeiro login.
Observe que tentei definir a variável EXPIRE para 0 e INACTIVE para -1 em / etc / default / useradd, mas isso leva à expiração da nova conta de usuário após a criação. A saída do comando chage após a criação do usuário com estas variáveis é:
# chage -l foo
Last password change : Feb 22, 2015
Password expires : May 23, 2015
Password inactive : never
Account expires : Feb 22, 2015
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
Quando tento fazer login com o usuário foo, é exibida a mensagem "Sua conta expirou. Entre em contato com o administrador do sistema".
Mas se eu abrir a janela 'Propriedades do usuário', selecione a guia 'Informações da senha' e marque 'Forçar alteração da senha no próximo login', o resultado será o que eu espero. O novo usuário será solicitado a alterar a senha. A saída do comando chage nesse caso será:
# chage -l foo2
Last password change : password must be changed
Password expires : password must be changed
Password inactive : password must be changed
Account expires : never
Minimum number of days between password change : 1
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
Quando eu entro no usuário foo2, o sistema pede que eu mude a senha.
Portanto, existe alguma maneira de configurar o sistema para definir os parâmetros da conta do usuário na criação, como no segundo caso?
Upd
cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=0
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
Mesmo se eu comentar INATIVO ou defini-lo como um valor positivo, a conta expirou, mas não uma senha.
Além disso, configurei o PAM na máquina.
Upd 2
Eu verifiquei isso na máquina com o RHEL 6.2 e sem a configuração do PAM. Efeito é o mesmo.
fonte
chage -d 0 {user-name}
.EXPIRE=0
em/etc/default/useradd
deve fazer o trabalho. Eu li que você tentou. Você pode adicionar as linhas não comentadas de/etc/default/useradd
? Ele está bloqueado mesmo se você não especificar INACTIVE = -1, mas um valor diferente, ou se você comentar essa linha? Você pode especificar se as contas estão bloqueadas mesmo quando criadas pela linha de comando. E, por favor, quando você tiver uma pergunta diferente, poste-a em uma página separada, caso a resposta seja diferente.adduser
permite que você coloque ochage
comando no/usr/local/sbin/adduser.local
. Você também pode definir o campo de idade em / etc / shadow como 0 diretamente.useradd
é o "utilitário de baixo nível", destinado a ser usado em conjunto com outros comandos.Respostas:
Como você está perguntando sobre o RHEL6, observei o código-fonte do useradd (que é entregue como parte do pacote 'shadow'). Em useradd.c existe uma função chamada new_spent, na qual configura uma nova entrada de senha de sombra. Lá, ele soluciona o problema "senha expirada na criação" desta maneira:
Soooo ... Se você definir um zero, torna-se um -1.
Os autores do programa codificaram especificamente contra a configuração do vencimento como 0, portanto, não importa se você o define como 0 no parâmetro / etc / default / useradd para EXPIRE. (Se fosse eu que fizesse esse código, eu teria procurado para ver se o usuário estava definindo a senha no comando e permitindo a expiração, mas não fui eu ...)
Além disso, foi sugerido acima que você pode colocar um script em /usr/local/sbin/adduser.local para executar um comando 'chage'. Este foi um bom conselho para um sistema Debian / Ubuntu em que useradd é um script perl que realmente executa esse arquivo se o encontrar, mas no RHEL o comando useradd é um binário em C.
Se eu fosse você e estivesse determinado a obter esse comportamento no usuário RHEL6, obteria o SRPM para o pacote shadow, comente as linhas acima e faça uma rpmbuild no pacote e rockaway. Ganhando!
fonte
Por que não adicionar isso a um script?
Se tudo o que você procura é o primeiro login, isso funcionará. O
-e
expira a senha da conta imediatamente; assim, no próximo login, o usuário é forçado a atualizar sua senha? (verman passwd
)fonte
Automático:
Fonte: GeekRide
Agora, editar esse arquivo no terminal foi difícil. Então, alterei as permissões do arquivo para 777 usando:
e editou-o no grub.
(Graças ao comando Linux .)
Verificado na minha Ubuntu 12.04.5 VM.
Manual:
Fonte: nixCraft
Cópia-pasta pura. Literalmente. ;)
Verificado na minha Ubuntu 12.04.5 VM.
fonte
chmod -R 777 /
é uma coisa muito estúpida de se fazer!