温馨提示×

Linux Dopra:用户权限设置

小樊
38
2025-12-28 02:38:49
栏目: 智能运维

Linux 用户权限设置

说明 你提到的“Linux Dopra”应为“Linux 用户权限设置”。以下内容覆盖用户与组管理、文件与目录权限、sudo 授权、ACL 与特殊权限,以及安全实践,适用于主流发行版(如 CentOS、Ubuntu、openEuler 等)。

一 用户与组管理

  • 创建与删除
    • 创建用户:使用 adduser(交互式,自动建家目录)或 useradd(需配合参数);设置密码:passwd username
    • 删除用户:userdel username;连同家目录删除:userdel -r username
  • 组管理
    • 创建组:groupadd groupname;删除组:groupdel groupname
    • 将用户加入附加组:务必使用 usermod -aG groupname username(仅追加,避免覆盖原有附加组);查看所属组:groups username
  • 常用查询
    • 查看用户与组信息:id usernamegetent passwd usernamegetent group groupname

二 文件与目录权限基础

  • 权限模型
    • 三类主体:u(所有者)/ g(所属组)/ o(其他);三种权限:r(读=4)/ w(写=2)/ x(执行=1)
    • 数字法:如 755 = rwxr-xr-x644 = rw-r–r–;符号法:如 u+rwx,g+rx,o+r
  • 常用命令
    • 修改权限:chmod 755 filechmod u=rwx,g=rx,o=r file
    • 修改所有者和所属组:chown owner:group file;仅改组:chgrp group file
    • 递归设置:在目录上常用 -R(如 chown -R owner:group /datachmod -R 755 /data)。
  • 默认权限
    • 通过 umask 控制新建文件/目录的默认权限(如 umask 022 常用于服务器环境)。

三 赋予 sudo 权限与提权安全

  • 推荐方式
    • 使用 visudo 编辑 /etc/sudoers,为特定用户或用户组授予精确命令权限;或在支持的系统上启用 %wheel ALL=(ALL) ALL 并将用户加入 wheel 组(使用 usermod -aG wheel username)。
    • 示例(在 sudoers 中):username ALL=(ALL) ALL(允许执行任何命令);或仅允许特定命令以提升安全性。
  • 不推荐方式
    • 直接修改 /etc/passwd 将用户 UID 改为 0 以冒充 root,存在重大安全风险且不利于审计,应避免。

四 高级权限与访问控制

  • ACL(访问控制列表)
    • 细粒度授权:setfacl -m u:alice:rwx /data;查看:getfacl /data;递归:setfacl -R -m g:dev:rwX /data
  • 特殊权限
    • SUID(Set User ID):文件以所有者权限运行;SGID(Set Group ID):目录中新文件继承目录所属组;Sticky Bit:共享目录仅允许文件所有者删除自己的文件。
    • 设置示例:chmod u+s /usr/bin/progchmod g+s /projectchmod +t /shared_dir
  • 安全模块
    • 在启用 SELinux 的系统上,结合 SELinux 策略进行强制访问控制,使用 getenforce/setenforce 查看与切换模式。

五 安全实践与常用检查

  • 原则与配置
    • 遵循最小权限原则;避免 777;共享目录用 755/750 + Sticky Bit;项目协作目录可用 g+s 继承组;必要时用 ACL 精细化授权。
  • 例行检查与审计
    • 查找过高权限文件:find /home -type f -perm 777;检查用户过期信息:chage -l username;定期审计 /etc/passwd、/etc/shadow、/etc/group 的变更。
  • 风险提示
    • 修改 /etc/sudoers 请使用 visudo;变更系统账户与权限前做好备份与回滚方案;生产环境优先采用sudo 精细授权而非共享 root。

0