Como adicionar data atual ou hora atual a um script useradd manual?

0

Este script que eu fiz é criar manualmente um usuário levando apenas o nome que o usuário deseja usar. No momento, estou tentando adicionar a data atual ou o registro de data e hora atual quando o usuário é criado na parte de comentários. Se você olhar o script onde eu tenho "data +% s" é onde eu quero imprimir o carimbo de data ou hora atual. date +% s tradicionalmente exibe o timestamp do unix, mas não sei como fazer isso funcionar.

int=$(cat /etc/passwd | wc -l)
mkdir /home/$1
chmod 700 /home/$1
echo "$1:!!:17216:0:99999:7:::" >> /etc/shadow
echo "$1:x:50$int" >> /etc/group
echo "$1:x:50$int:50$int:date +%s:/home/$1:/bin/bash" >> /etc/passwd
#chown $1:$1 /home/$1
cp -r /home/dlodi001/. /home/$1
chown -R $1:$1 /home/$1
    
por Danny 19.02.2017 / 20:07

2 respostas

1

Você deseja usar a substituição de comandos $() da seguinte forma:

echo "$1:x:50$int:50$int:$(date +%s):/home/$1:/bin/bash" >> /etc/passwd

No entanto, sua abordagem geral ao script é falha. Por que você está escrevendo para o comando /etc/passwd and / etc / shadow manually ? Bad approach. There's already tools for that which do so in secure manner, in particular useradd 'que é um executável compilado. Os scripts podem ser modificados por invasores com acesso ao nível de raiz. Sugiro que você abandone completamente o seu script e use ferramentas apropriadas para esse trabalho.

    
por Sergiy Kolodyazhnyy 19.02.2017 / 20:15
2

Tente

echo "$1:x:50$int:50$int:$(date +%s):/home/$1:/bin/bash"

Colocar um comando em $() retornará sua saída

    
por hytromo 19.02.2017 / 20:15