如何将当前日期或当前时间戳添加到手动用户添加脚本?

如何将当前日期或当前时间戳添加到手动用户添加脚本?

我编写的这个脚本通过仅接受用户想要使用的名称来手动创建用户。我目前正尝试在注释部分添加创建用户时的当前日期或当前时间戳。如果您查看脚本,其中有“date +%s”,我想打印出当前日期或时间戳。date +%s 传统上输出 unix 时间戳,但我不确定如何使其工作。

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

答案1

尝试

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

将命令括在内$()将返回其输出

答案2

您想使用命令替换,$()如下所示:

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

但是,你编写脚本的整体方法存在缺陷。你为什么要编写已编译的可执行文件/etc/passwd and/etc/shadow manually ? Bad approach. There's already tools for that which do so in secure manner, in particularuseradd` 命令。具有 root 级别访问权限的攻击者可以修改脚本。我建议你完全放弃你的脚本,并使用适当的工具来完成这项工作。

相关内容