linux创建普通只读用户

复制代码
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

说明

  1. useradd -m -s /bin/bash lukai

    • 创建用户 lukai,创建 home 目录 /home/lukai,shell 为 /bin/bash
  2. echo 'Lukai@123!!' | passwd --stdin lukai

    • 批量设置密码
  3. chmod 555 /home/lukai

    • Home 目录只读,防止用户修改自己的文件或创建任意文件
  4. mkdir -p /home/lukai/bin

    • 创建白名单命令目录
  5. for cmd in ...; do ln -s ...; done

    • 只允许执行列出的命令,其他命令不存在 PATH 中

    • 例如 rmmvkilldockersystemctl 不在 PATH,无法执行

  6. 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/passwddocker pssystemctl restart nginx 都会报 command not foundPermission 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'
相关推荐
AAA@峥1 分钟前
CentOS7 源码编译安装 MySQL5.7|SQL 基础操作 + 备份恢复完整实战
运维·数据库·sql·centos
撩得Android一次心动15 分钟前
Linux编程笔记3【个人用】
linux·笔记
OpenPomeloxCommunity16 分钟前
3. Linux 同步机制之 spinlock 设计与实现(一):通用层
linux
念恒123061 小时前
网络基础
linux·网络·c++
皮卡狮2 小时前
Linux静态库和动态库详解
linux
撩得Android一次心动2 小时前
Linux编程笔记4【个人用】
linux·笔记·学习
2601_963282773 小时前
极寒专网技术拆解:黑龙江零下 40℃场景数字对讲组网全方案|黑龙江移远科技寒地通信底层技术解析
运维·网络·人工智能·科技
七牛云行业应用3 小时前
Ollama 本地部署 DeepSeek 完全指南:macOS / Windows / Linux 三端安装 + GPU 配置 + API 调用
linux·windows·macos
LedgerNinja3 小时前
WEEX API 稳定性实战:限频、重试与风控的工程化清单
运维·区块链