【Linux】用户与权限管理

在这里插入图片描述

个人主页:Guiat
归属专栏:Linux

在这里插入图片描述

正文

1. 用户与用户组的基本概念

1.1 用户

在 Linux 系统中,用户是系统资源的使用者。每个用户都有一个唯一的用户 ID(UID),系统通过 UID 来识别用户。用户可以分为以下几类:

  • 超级用户(root):拥有系统的最高权限,UID 为 0。
  • 系统用户:用于运行系统服务或应用程序,UID 通常为 1-999。
  • 普通用户:由管理员创建,用于日常操作,UID 通常从 1000 开始。

1.2 用户组

用户组是用户的集合,用于简化权限管理。每个用户组也有一个唯一的组 ID(GID)。用户组可以分为以下几类:

  • 主用户组:用户创建时默认加入的组。
  • 附加用户组:用户可以加入多个附加用户组,以获得额外的权限。

2. 用户与用户组的管理

2.1 用户管理

2.1.1 创建用户

使用 useradd 命令可以创建新用户。例如,创建一个名为 alice 的用户:

sudo useradd alice

2.1.2 设置用户密码

使用 passwd 命令可以为用户设置密码:

sudo passwd alice

2.1.3 修改用户属性

使用 usermod 命令可以修改用户的属性。例如,将用户 alice 的主目录改为 /home/alice_new

sudo usermod -d /home/alice_new alice

2.1.4 删除用户

使用 userdel 命令可以删除用户。例如,删除用户 alice

sudo userdel alice

2.2 用户组管理

2.2.1 创建用户组

使用 groupadd 命令可以创建新用户组。例如,创建一个名为 developers 的用户组:

sudo groupadd developers

2.2.2 将用户加入用户组

使用 usermod 命令可以将用户加入用户组。例如,将用户 alice 加入 developers 组:

sudo usermod -aG developers alice

2.2.3 删除用户组

使用 groupdel 命令可以删除用户组。例如,删除用户组 developers

sudo groupdel developers

3. 文件权限管理

3.1 文件权限的基本概念

在 Linux 中,每个文件和目录都有权限设置,用于控制用户对文件的访问。权限分为三类:

  • 所有者权限:文件所有者的权限。
  • 组权限:文件所属用户组的权限。
  • 其他用户权限:其他用户的权限。

每类权限又分为三种:

  • 读权限(r):允许读取文件内容或列出目录内容。
  • 写权限(w):允许修改文件内容或在目录中创建、删除文件。
  • 执行权限(x):允许执行文件或进入目录。

3.2 查看文件权限

使用 ls -l 命令可以查看文件的权限。例如:

ls -l file.txt

输出示例:

-rw-r--r-- 1 alice developers 1024 Oct  1 12:34 file.txt

其中,-rw-r--r-- 表示文件权限,alice 是文件所有者,developers 是文件所属用户组。

3.3 修改文件权限

使用 chmod 命令可以修改文件权限。例如,将 file.txt 的权限设置为 rw-rw-r--

chmod 664 file.txt

或者使用符号模式:

chmod u=rw,g=rw,o=r file.txt

3.4 修改文件所有者和用户组

使用 chown 命令可以修改文件的所有者和用户组。例如,将 file.txt 的所有者改为 bob,用户组改为 staff

sudo chown bob:staff file.txt

4. 特殊权限

4.1 SUID(Set User ID)

SUID 权限允许用户以文件所有者的权限执行文件。例如,/usr/bin/passwd 文件通常具有 SUID 权限,允许普通用户修改自己的密码。

设置 SUID 权限:

chmod u+s file

4.2 SGID(Set Group ID)

SGID 权限允许用户以文件所属用户组的权限执行文件。对于目录,SGID 权限使得在该目录中创建的文件继承目录的用户组。

设置 SGID 权限:

chmod g+s file

4.3 Sticky Bit

Sticky Bit 权限用于目录,允许只有文件所有者才能删除或重命名文件。例如,/tmp 目录通常具有 Sticky Bit 权限。

设置 Sticky Bit 权限:

chmod +t directory

5. ACL(访问控制列表)

5.1 ACL 的基本概念

ACL 提供了更细粒度的权限控制,允许为特定用户或用户组设置权限。

5.2 查看 ACL

使用 getfacl 命令可以查看文件的 ACL。例如:

getfacl file.txt

5.3 设置 ACL

使用 setfacl 命令可以设置文件的 ACL。例如,允许用户 bob 读写 file.txt

setfacl -m u:bob:rw file.txt

5.4 删除 ACL

使用 setfacl 命令可以删除文件的 ACL。例如,删除用户 bob 的 ACL 条目:

setfacl -x u:bob file.txt

6. 用户与权限管理的实践

6.1 创建多用户环境

在一个开发团队中,通常需要为每个成员创建独立的用户账户,并将他们加入同一个用户组。例如:

sudo useradd -m -G developers alice
sudo useradd -m -G developers bob

6.2 设置共享目录

为了方便团队成员共享文件,可以创建一个共享目录,并设置适当的权限。例如:

sudo mkdir /shared
sudo chown root:developers /shared
sudo chmod 2775 /shared

其中,2775 表示设置 SGID 权限,并允许用户组读写。

6.3 使用 ACL 进行精细控制

如果需要对特定用户进行更精细的权限控制,可以使用 ACL。例如,允许用户 alice 读写 /shared 目录中的所有文件:

sudo setfacl -R -m u:alice:rw /shared

7. 总结

Linux 的用户与权限管理是系统安全的重要组成部分。通过合理配置用户、用户组、文件权限和 ACL,可以有效控制用户对系统资源的访问,确保系统的安全性和稳定性。掌握这些技能,对于系统管理员和开发人员来说至关重要。

结语
感谢您的阅读!期待您的一键三连!欢迎指正!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Guiat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值