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'
相关推荐
曼岛_2 小时前
[AI实战]Ubuntu 下安装OpenClaw——从零搭建你的专属AI助理
linux·人工智能·ubuntu·openclaw·龙虾
试试勇气2 小时前
Linux学习笔记(十六)--进程信号
linux·笔记·学习
李昊哲小课2 小时前
Python 文件路径操作详细教程
linux·服务器·python
小小小米粒2 小时前
k8s网络通信ip申请如何层级同步进行pod网络层级网络访问请求路由流程
linux·运维·服务器
Cyber4K2 小时前
【妙招系列】在Linux中测试自己邮箱是否可接收邮件?
linux·运维·python
s6516654962 小时前
linux-寄存器
linux
wanhengidc2 小时前
云手机 数据信息资源共享
大数据·运维·服务器·游戏·智能手机
星夜落月2 小时前
给自己搭一个私人阅读空间:FreshRSS 部署手记
运维·服务器·网络·rss
航Hang*2 小时前
第2章:进阶Linux系统——第1节:配置与管理Samba服务器
linux·运维·服务器·笔记·学习