Debian系统中用户权限设置指南
用户权限管理的核心是通过用户和组划分权限边界。Debian提供了以下基础命令:
adduser命令(交互式设置密码及信息),例如sudo adduser username;若需自定义UID/GID,可添加--uid/--gid参数。deluser命令,sudo deluser username(默认保留家目录);若需彻底删除,添加--remove-home参数。usermod命令调整用户属性,常用选项:
sudo usermod -l newname oldname:修改用户名;sudo usermod -d /new/home -m username:修改家目录(-m自动迁移旧目录内容);sudo usermod -aG groupname username:将用户添加到指定组(-aG表示追加,避免移除原有组)。sudo groupadd groupname;sudo groupdel groupname;sudo gpasswd -d username groupname。文件权限决定了用户对资源的访问能力,分为所有者、所属组、其他用户三类,每类包含读(r)、写(w)、执行(x)权限。
ls -l命令,输出如-rw-r--r-- 1 user group 1024 Jan 1 10:00 file.txt,其中rw-(所有者)、r--(所属组)、r--(其他用户)。chmod命令通过符号或数字设置权限:
sudo chmod u+x,g-w,o=r file.txt(所有者加执行、所属组去写、其他用户设为只读);sudo chmod 755 file.txt(所有者7=rwx,所属组5=r-x,其他用户5=r-x),常用于目录(755)和可执行文件(755)。sudo chown username file.txt;sudo chgrp groupname file.txt;sudo chown username:groupname file.txt。sudo允许普通用户以root权限执行命令,需通过sudoers文件严格管理:
sudo组(推荐):sudo usermod -aG sudo username(用户下次登录生效);sudoers文件:sudo visudo(安全编辑,避免语法错误),添加username ALL=(ALL:ALL) ALL(允许用户在任何主机以任何用户/组身份执行任何命令)。visudo添加具体命令,例如username ALL=(ALL) /usr/bin/apt(仅允许用户使用apt命令)。ACL提供更细粒度的权限(如给特定用户/组设置权限),需先启用:
sudo mount -o remount,acl /;/etc/fstab,在对应挂载行添加acl选项(如UUID=xxx / ext4 defaults,acl 0 1)。sudo setfacl -m u:username:rwx /path/to/dir;sudo setfacl -m g:groupname:r-x /path/to/dir;sudo getfacl /path/to/dir;sudo setfacl -x u:username /path/to/dir。passwd命令),设置方法:sudo chmod u+s file(权限变为4755)。/var/www目录),设置方法:sudo chmod g+s dir(权限变为2755)。/tmp目录),设置方法:sudo chmod +t dir(权限变为1777)。apache只能访问/var/www),配置文件位于/etc/apparmor.d/,修改后需重启服务:sudo systemctl restart apparmor。selinux-basics和selinux-policy-default,并通过sudo setenforce 1启用。