6 用户与权限管理之sudo和访问控制

在上一篇中,我们讨论了Linux系统中的基本权限和用户组管理。本篇将深入探讨sudo命令的使用及其配置,以及如何实现访问控制,从而增强系统的安全性和管理的灵活性。随后,我们将为网络配置与管理打下坚实的基础。

1. sudo命令概述

sudo(superuser do的缩写)是Linux系统中一个非常重要的命令,它允许普通用户以超级用户(root)权限运行特定的命令。这一点对于日常管理和维护非常重要,特别是在多用户环境中。

1.1 配置sudo

在Linux系统中,sudo的配置文件位于/etc/sudoers。我们可以通过visudo命令安全地编辑此文件,以避免语法错误导致的系统无法使用sudo

使用visudo命令进行编辑:

1
sudo visudo

在编辑器中,我们可以添加用户和命令的权限。例如,如果我们想要允许用户alice以超级用户身份执行apt-get命令,可以添加如下行:

1
alice ALL=(ALL) NOPASSWD: /usr/bin/apt-get

1.2 使用sudo的示例

执行命令时,用户只需在命令前加上sudo,例如:

1
sudo apt-get update

这将以root权限执行apt-get update,以更新系统的软件包列表。

2. 访问控制

Linux系统中的访问控制是保护文件和程序的一种方法,它确保了只有被授权的用户可以访问或操作特定的资源。Linux使用用户其他用户的权限模型来进行访问控制。

2.1 文件权限与访问控制

每个文件和目录都有三个权限:

  • r(读权限)
  • w(写权限)
  • x(执行权限)

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

1
ls -l /etc/passwd

输出可能如下:

1
-rw-r--r-- 1 root root 2863 Oct  4 07:16 /etc/passwd

在这个例子中,-rw-r--r--表示:

  • root用户有读和写的权限。
  • 同组用户(又是root)有读权限。
  • 其他用户有读权限。

2.2 ACL(访问控制列表)

除了传统的用户和组权限外,Linux还支持更细粒度的控制,通过访问控制列表(ACLs)来实现。ACL允许为文件指定多个用户和组的权限。

要使用ACL,首先需确保文件系统支持它。可以通过以下命令设置ACL:

1
setfacl -m u:bob:rwx /path/to/file

这条命令为用户bob添加了对/path/to/file读、写和执行权限。

2.3 使用案例

假设我们有一个文件/var/www/html/index.html,需要让用户alicebob都可以在不拥有该文件的情况下进行读和写操作。使用ACL可以这样做:

1
2
sudo setfacl -m u:alice:rw /var/www/html/index.html
sudo setfacl -m u:bob:rw /var/www/html/index.html

验证是否成功配置:

1
getfacl /var/www/html/index.html

输出可能类似于:

1
2
3
4
5
6
7
8
9
# file: /var/www/html/index.html
# owner: root
# group: root
user::rw-
user:alice:rw-
user:bob:rw-
group::---
mask::rw-
other::---

通过上述配置,用户alicebob可以对index.html文件进行读写操作,而不影响其他用户的权限。

总结

在本篇中,我们学习了sudo命令及其配置,以及如何使用访问控制列表(ACL)进行细粒度的访问控制。这些技能对于维护Linux服务器和管理用户权限至关重要。掌握了这些知识后,我们将能够顺利过渡到下篇的网络配置与管理,深入了解网络基础知识,确保对系统的全面管理。

6 用户与权限管理之sudo和访问控制

https://zglg.work/linux-system-admin/6/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论