Linux 是多用户系统,先管『人』再管『权』。用户组 useradd·groupadd、权限 chmod·chown·umask、精细授权 ACL,以及绕不开的 vim 编辑器。
项目 3 已学的 touch / cp / mv / rm / ln / cat 这里继续用;重点是查找与类型判断。
沿目录树查找文件,条件可叠加(名字/类型/大小/时间)。
-name '*.conf' 按文件名(支持通配)-type f/d 只找文件 / 目录-size +10M 大于 10MB-mtime -7 7 天内修改过-user root 属主是 root-exec 命令 {} \; 逐个处理-exec 命令 {} + 批量处理(更快)| xargs rm 交给 xargsfind /etc -name '*.conf'
find / -type f -size +100M 2>/dev/null
find /var/log -mtime -1 -exec ls -lh {} \;file 文件名 看真实类型(文本 / 二进制 / 压缩包),避免被扩展名骗。
file /bin/ls
file index.html每个用户有唯一 UID,属一个或多个 GID(组)。关键信息存 /etc/passwd(账号)、/etc/shadow(密码,仅 root 读)、/etc/group(组)。
建用户与设密码,是服务器运维的日常。
-m 建家目录 /home/用户-s /bin/bash 指定登录 Shell-u 1001 指定 UID-g 组 主组 · -G 组1,组2 附加组-d /data/u 指定家目录位置passwd 用户 root 给用户设密passwd -l 用户 锁账号passwd -u 用户 解锁passwd -d 用户 清空密码改用户属性与删用户。
-aG 组 用户 追加附加组(务必带 -a)-l 新名 旧名 改名-L / -U 锁 / 解锁-d 目录 -m 改家目录并迁移userdel 用户 删账号(留家目录)userdel -r 用户 连家目录一起删id 用户 查看 UID/GIDuseradd -m -s /bin/bash -G wheel zhang
passwd zhang
usermod -aG docker zhang
userdel -r zhang建组与批量管组成员。
groupadd 组名 建组groupadd -g 2000 组 指定 GIDgpasswd -a 用户 组 加成员gpasswd -d 用户 组 移除gpasswd -M a,b,c 组 设全部成员groupdel 组 删空组groupadd dev
gpasswd -a zhang dev
gpasswd -M zhang,li dev每文件有 属主(u) / 属组(g) / 其他(o) 三类身份,每类有 r 读(4) / w 写(2) / x 执行(1) 三种权。rwxr-xr-- = 754。目录的 x 表示『能否进入』。
改权限(数字法最常用)与改属主属组。
chmod 755 f 数字法:u=rwx g=rx o=rxchmod u+x f 符号法:给属主加执行chmod g-w f 去掉属组写权chmod -R 755 dir 递归改目录chown 用户 文件 改属主chown 用户:组 文件 属主属组一起改chown -R www:www /var/www 递归chgrp 组 文件 只改属组chmod 644 f.txt
chmod +x deploy.sh
chown -R www:www /var/wwwumask 决定新建文件的默认权限:文件 = 666 - umask,目录 = 777 - umask。常见 umask 022 → 文件 644、目录 755。
umask 022
touch new.txt && ls -l new.txt当『某用户 / 某组』要单独授权、又不想改属组时用 ACL。setfacl 设、getfacl 查。
给单个用户/组单独加权限,突破 ugo 三类限制。
-m u:zhang:rwx 文件 给用户 zhang 单独 rwx-m g:dev:rx 目录 给 dev 组单独 rx-R 递归设置-b 文件 清除全部 ACLgetfacl 文件 看 ACL 明细. 表示有 ACLsetfacl -m u:zhang:rwx /data/share
getfacl /data/share命令模式(打开即进入,移动/删除)、插入模式(按 i/a/o 进入,才能打字)、末行模式(按 : 进入,保存/退出/替换)。Esc 随时回命令模式。
服务器上改配置几乎全靠它;记住『先 Esc 回命令模式』。
i 光标前插 · a 后插 · o 下行新行h j k l 左 下 上 右0 / $ 行首 / 行尾 · gg / G 首行 / 末行x 删字符 · dd 删行 · yy 复制 · p 粘贴:w 保存 · :q 退出 · :wq 保存退出:q! 强退不存 · :s/旧/新/g 替换/关键字 向下搜 · n 下一个vim /etc/hostname
# 进入后按 i 改内容,Esc,再敲 :wq 回车保存stu01(带家目录、可登录),设密码,再把它加入 wheel 组以便用 sudo。/data 目录属主改为 stu01:stu01 并递归;用 chmod 750 /data 让其他人不可进。umask 077 后新建文件,验证其默认权限变成了 600。setfacl -m u:stu02:r-x /data 单独给 stu02 读进权,再用 getfacl 查看。用户/权限是服务器安全的地基,项目 7~12 配服务时每条都要回到『谁有权、权限对不对』。