我编写的这个脚本通过仅接受用户想要使用的名称来手动创建用户。我目前正尝试在注释部分添加创建用户时的当前日期或当前时间戳。如果您查看脚本,其中有“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 particular
useradd` 命令。具有 root 级别访问权限的攻击者可以修改脚本。我建议你完全放弃你的脚本,并使用适当的工具来完成这项工作。