useradd -m -s /bin/bash lukai && \
echo 'Lukai@123!!' | passwd --stdin lukai && \
chmod 555 /home/lukai && \
mkdir -p /home/lukai/bin && \
for cmd in ls cat top ps df free tail journalctl; do \
ln -s /bin/$cmd /home/lukai/bin/ 2>/dev/null || ln -s /usr/bin/$cmd /home/lukai/bin/ 2>/dev/null; \
done && \
echo 'export PATH=$HOME/bin' >> /home/lukai/.bash_profile
说明
-
useradd -m -s /bin/bash lukai- 创建用户
lukai,创建 home 目录/home/lukai,shell 为/bin/bash
- 创建用户
-
echo 'Lukai@123!!' | passwd --stdin lukai- 批量设置密码
-
chmod 555 /home/lukai- Home 目录只读,防止用户修改自己的文件或创建任意文件
-
mkdir -p /home/lukai/bin- 创建白名单命令目录
-
for cmd in ...; do ln -s ...; done-
只允许执行列出的命令,其他命令不存在 PATH 中
-
例如
rm、mv、kill、docker、systemctl不在 PATH,无法执行
-
-
echo 'export PATH=$HOME/bin' >> ~/.bash_profile- 登录时只加载白名单 PATH
✅ 用户登录后:
su - lukai
cd /
ls
cat /etc/passwd
top
ps aux
df -h
free -m
tail -f /var/log/messages
journalctl -xe
-
所有命令可以用
-
系统文件无法写入
-
rm /etc/passwd、docker ps、systemctl restart nginx都会报command not found或Permission denied
ubuntu版本
sudo bash -c 'useradd -m -s /bin/bash lukai && \
echo "lukai:Lukai@123!!" | chpasswd && \
chmod 555 /home/lukai && \
mkdir -p /home/lukai/bin && \
for cmd in ls cat top ps df free tail journalctl; do \
ln -s /bin/$cmd /home/lukai/bin/ 2>/dev/null || ln -s /usr/bin/$cmd /home/lukai/bin/ 2>/dev/null; \
done && \
echo "export PATH=$HOME/bin:\$PATH" >> /home/lukai/.bash_profile'