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 需要访问某些文件来进行报告。但是,如果有一天莎莉生病了而鲍勃来报告怎么办?或者报告的需求增加了?创建群组后,管理员只需创建一次。添加用户是随着需求的变化或扩展而应用的。

以下是用于管理组的一些常用命令 -

  • chgrp
  • 组添加
  • 团体
  • 用户模式

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]#

接下来,让我们将组所有权授予会计组。

[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 群组密码,允许用户自行激活

让我们创建一个名为“秘密”的新组。我们将为该组添加密码,允许用户使用已知密码添加自己。

[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用于更新帐户属性。

以下是常见的用户模式开关。

转变 行动
-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]#