- Linux 管理员教程
- 首页
- CentOS 概述
- 基本的 CentOS Linux 命令
- 文件/文件夹管理
- 用户管理
- 配额管理
- Systemd 服务启动和停止
- 使用 systemctl 进行资源管理
- 使用 crgoups 进行资源管理
- 进程管理
- 防火墙设置
- 在 CentOS Linux 中配置 PHP
- 使用 CentOS Linux 设置 Python
- 在 CentOS Linux 上配置 Ruby
- 为 CentOS Linux 设置 Perl
- 安装和配置 Open LDAP
- 创建 SSL 证书
- 安装 Apache Web 服务器 CentOS 7
- 在 CentOS 7 上设置 MySQL
- 设置 Postfix MTA 和 IMAP/POP3
- 安装匿名 FTP
- 远程管理
- CentOS 中的流量监控
- 日志管理
- 备份和恢复
- 系统更新
- Shell 脚本
- 软件包管理
- 卷管理
- Linux 管理员有用资源
- Linux 管理员 - 快速指南
- Linux 管理员 - 有用资源
- Linux 管理员 - 讨论
Linux 管理员 - 用户管理
在讨论用户管理时,我们需要理解三个重要的术语:
- 用户
- 组
- 权限
我们已经深入讨论了应用于文件和文件夹的权限。在本章中,让我们讨论用户和组。
CentOS 用户
在 CentOS 中,有两种类型的账户:
系统账户 - 用于守护进程或其他软件。
交互式账户 - 通常分配给用户以访问系统资源。
这两种用户类型的主要区别在于:
系统账户由守护进程用于访问文件和目录。这些通常不允许通过 shell 或物理控制台登录进行交互式登录。
交互式账户由最终用户用于通过 shell 或物理控制台登录访问计算资源。
有了对用户的基本了解,现在让我们为会计部门的 Bob Jones 创建一个新用户。使用adduser命令添加新用户。
以下是一些adduser常用开关:
开关 | 操作 |
---|---|
-c | 向用户帐户添加注释 |
-m | 如果不存在,则在默认位置创建用户主目录 |
-g | 分配给用户的默认组 |
-n | 不为用户创建私有组,通常是具有用户名组 |
-M | 不创建主目录 |
-s | 除了/bin/bash之外的默认 shell |
-u | 指定 UID(否则由系统分配) |
-G | 分配给用户的其他组 |
创建新用户时,请按如下方式使用-c、-m、-g、-n开关:
[root@localhost Downloads]# useradd -c "Bob Jones Accounting Dept Manager" -m -g accounting -n bjones
现在让我们看看我们的新用户是否已创建:
[root@localhost Downloads]# id bjones (bjones) gid = 1001(accounting) groups = 1001(accounting) [root@localhost Downloads]# grep bjones /etc/passwd bjones:x:1001:1001:Bob Jones Accounting Dept Manager:/home/bjones:/bin/bash [root@localhost Downloads]#
现在我们需要使用passwd命令启用新帐户:
[root@localhost Downloads]# passwd bjones Changing password for user bjones. New password: Retype new password: passwd: all authentication tokens updated successfully. [root@localhost Downloads]#
用户帐户未启用,不允许用户登录系统。
禁用用户帐户
有几种方法可以禁用系统上的帐户。这些方法从手动编辑/etc/passwd文件开始。甚至可以使用带有-l开关的passwd命令。这两种方法都存在一个很大的缺点:如果用户具有ssh访问权限并使用 RSA 密钥进行身份验证,他们仍然可以使用此方法登录。
现在让我们使用chage命令,将密码过期日期更改为过去的日期。此外,最好在帐户上记下我们禁用它的原因。
[root@localhost Downloads]# chage -E 2005-10-01 bjones [root@localhost Downloads]# usermod -c "Disabled Account while Bob out of the country for five months" bjones [root@localhost Downloads]# grep bjones /etc/passwd bjones:x:1001:1001:Disabled Account while Bob out of the country for four months:/home/bjones:/bin/bash [root@localhost Downloads]#
管理组
在 Linux 中管理组使管理员可以方便地将用户组合到容器中,并应用适用于所有组成员的权限集。例如,会计部门中的所有用户可能都需要访问相同的文件。因此,我们创建一个会计组,并添加会计用户。
在大多数情况下,任何需要特殊权限的操作都应在组中完成。这种方法通常比仅对一个用户应用特殊权限可以节省时间。例如,Sally 负责报表,并且只有 Sally 需要访问某些文件才能生成报表。但是,如果 Sally 有一天生病了,而 Bob 负责报表怎么办?或者报表的需要增长了怎么办?当创建一个组时,管理员只需执行一次。添加用户将根据需要更改或扩展进行应用。
以下是一些用于管理组的常用命令:
- chgrp
- groupadd
- groups
- usermod
chgrp - 更改文件或目录的组所有权。
让我们为会计组中的人员创建一个存储文件和创建文件目录的目录。
[root@localhost Downloads]# mkdir /home/accounting [root@localhost Downloads]# ls -ld /home/accounting drwxr-xr-x. 2 root root 6 Jan 13 10:18 /home/accounting [root@localhost Downloads]#
接下来,让我们将组所有权赋予accounting组。
[root@localhost Downloads]# chgrp -v accounting /home/accounting/ changed group of ‘/home/accounting/’ from root to accounting [root@localhost Downloads]# ls -ld /home/accounting/ drwxr-xr-x. 2 root accounting 6 Jan 13 10:18 /home/accounting/ [root@localhost Downloads]#
现在,会计组中的每个人都对/home/accounting具有读取和执行权限。他们也需要写入权限。
[root@localhost Downloads]# chmod g+w /home/accounting/ [root@localhost Downloads]# ls -ld /home/accounting/ drwxrwxr-x. 2 root accounting 6 Jan 13 10:18 /home/accounting/ [root@localhost Downloads]#
由于会计组可能会处理敏感文档,因此我们需要对其他或世界应用一些限制性权限。
[root@localhost Downloads]# chmod o-rx /home/accounting/ [root@localhost Downloads]# ls -ld /home/accounting/ drwxrwx---. 2 root accounting 6 Jan 13 10:18 /home/accounting/ [root@localhost Downloads]#
groupadd - 用于创建新组。
开关 | 操作 |
---|---|
-g | 指定组的 GID |
-K | 覆盖/etc/login.defs中 GID 的规格 |
-o | 允许覆盖非唯一组 ID 禁止 |
-p | 组密码,允许用户自行激活 |
让我们创建一个名为secret的新组。我们将向该组添加一个密码,允许用户使用已知密码添加自己。
[root@localhost]# groupadd secret [root@localhost]# gpasswd secret Changing the password for group secret New Password: Re-enter new password: [root@localhost]# exit exit [centos@localhost ~]$ newgrp secret Password: [centos@localhost ~]$ groups secret wheel rdc [centos@localhost ~]$
在实践中,组密码并不常用。辅助组足够,并且在其他用户之间共享密码并不是一个很好的安全实践。
groups命令用于显示用户属于哪个组。在对当前用户进行一些更改后,我们将使用它。
usermod用于更新帐户属性。
以下是usermod的常用开关。
开关 | 操作 |
---|---|
-a | 追加,将用户添加到补充组,仅与-G选项一起使用 |
-c | 注释,更新用户注释值 |
-d | 主目录,更新用户的主目录 |
-G | 组,添加或删除辅助用户组 |
-g | 组,用户的默认主组 |
[root@localhost]# groups centos centos : accounting secret [root@localhost]# [root@localhost]# usermod -a -G wheel centos [root@localhost]# groups centos centos : accounting wheel secret [root@localhost]#