linux Ubuntu 用户权限设置

Ubuntu 用户权限设置指南

目录

  1. 用户和用户组管理
  2. 文件和目录权限
  3. sudo权限配置
  4. 常见示例
  5. 注意事项

用户和用户组管理

用户操作

操作 命令
创建用户 sudo adduser <用户名>
删除用户 sudo deluser <用户名>
修改用户密码 sudo passwd <用户名>
查看用户信息 id <用户名>

用户组操作

操作 命令
创建用户组 sudo groupadd <组名>
删除用户组 sudo groupdel <组名>
将用户加入附加组 sudo usermod -aG <组名> <用户名>
查看用户所属组 groups <用户名>

文件和目录权限

权限类型

  • r (读):文件可读,目录可列出内容
  • w (写):文件可修改,目录可创建/删除文件
  • x (执行):文件可执行,目录可进入

修改权限 (chmod)

bash 复制代码
# 数字模式(推荐)
chmod 755 filename  # 所有者:rwx,其他用户:r-x

# 符号模式
chmod u+rwx,g+rx,o-rwx filename  # 所有者加rwx,组加rx,其他用户移除所有权限

# 修改所有者 (chown)

```bash
sudo chown <用户名>:<组名> filename  # 同时修改所有者和组
sudo chown <用户名> filename        # 仅修改所有者

修改所属组 (chgrp)

bash 复制代码
sudo chgrp <组名> filename

特殊权限

setuid (4xxx): 文件执行时以所有者身份运行

setgid (2xxx): 目录中新文件继承组身份

sticky bit (1xxx): 仅文件所有者可删除目录内文件

sudo权限配置

编辑sudoers文件

sudo visudo # 安全编辑方式(避免语法错误)

配置示例

bash 复制代码
# 允许用户执行所有命令
<用户名> ALL=(ALL:ALL) ALL

# 允许组执行特定命令
%<组名> ALL=(ALL) /usr/bin/apt,/usr/bin/systemctl

常见示例

  1. 共享文件夹权限
bash 复制代码
sudo mkdir /shared
sudo chown root:shared_group /shared
sudo chmod 2775 /shared  # setgid + rwxrwxr-x
  1. 允许用户管理服务

在sudoers中添加:

bash 复制代码
%admins ALL=(ALL) /usr/bin/systemctl restart nginx

注意事项 谨慎使用chmod 777:过度开放权限可能导致安全风险。

最小权限原则:仅授予必要权限,避免用户越权操作。

定期审查权限:使用ls -l或find / -perm -4000检查特殊权限文件。

备份配置:修改/etc/sudoers前建议备份。

避免直接编辑系统文件:使用visudo而非直接编辑/etc/sudoers。

相关推荐
一心0921 小时前
ubuntu 20.04.6 sudo 源码包在线升级到1.9.17p1
运维·ubuntu·sudo·漏洞升级
好好学习啊天天向上1 小时前
世上最全:ubuntu 上及天河超算上源码编译llvm遇到的坑,cmake,ninja完整过程
linux·运维·ubuntu·自动性能优化
你想考研啊1 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
tan180°2 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
代码老y2 小时前
Docker:容器化技术的基石与实践指南
运维·docker·容器
典学长编程2 小时前
Linux操作系统从入门到精通!第二天(命令行)
linux·运维·chrome
wuk9983 小时前
基于MATLAB编制的锂离子电池伪二维模型
linux·windows·github
你想考研啊5 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins
Code blocks5 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
snoopyfly~5 小时前
Ubuntu 24.04 LTS 服务器配置:安装 JDK、Nginx、Redis。
java·服务器·ubuntu