用户和用户组管理是Linux系统管理中极为重要的环节,管理不当就可能出现账号锁定或无法登录等诸多问题并留下大量的安全隐患。本节将主要介绍用户管理中常见的一些问题并对系统安全提出一些建议。
/etc/nologin文件给系统管理员提供了一种在Linux系统维护期间禁止用户登录的方法。为了提高系统的安全性和防止数据不同步的现象,系统管理员在对系统进行维护时,通常建立0字节的/etc/nologin文件,如果存在/etc/nologin文件,非root用户的登录尝试将会失败。建立/etc/nologin文件的命令如下:
这种保护机制也被应用到系统的关机、重启等环节中。通常系统在关闭时将自动创建/etc/nologin文件,禁止所有用户登录,然后处理相关程序的退出停止工作,并在即将关闭系统前删除/etc/nologin文件。如果系统在还未正常删除/etc/nologin文件前出现突然断电停机等情况,就会出现因nologin文件未删除而引起普通用户无法登录的现象。此时根用户登录系统并删除nologin文件,问题即可解决。建议用户在使用系统的过程中,不要采用直接关闭电源等不正常手段关闭系统,因为不正常关闭系统会对系统造成严重的损害。
注意: 由于SSH不查看/etc/nologin文件,因此即使/etc/nologin文件存在,仍可使用SSH登录系统。
账户到期或密码失效都会使用户无法登录系统。可以使用chage命令查看账户密码的有效期,chage命令的命令行格式为:
表4.3给出了chage选项的定义及说明。
表4.3 chage选项定义及说明
例如,使用“-l”选项显示student1用户的密码时效设置如下:
在密码过期之前警告的天数 :7
当student1用户在2012年7月23日之后登录系统时,系统会强行要求用户修改密码。如果用户未能在2012年7月23日之前修改密码,则会因为账号失效而导致无法登录系统。
系统管理员可以通过who和last命令来查询当前系统登录用户和用户历史登录的情况。对于可疑用户和非法登录用户应及时采取安全措施。
要查询当前系统中登录的用户,可以使用who命令,如下所示:
要查询最近的使用者登录时间,可以使用last命令。系统会列出最近一个月的用户登录日志,last的命令行如下:
从前几节的学习中,可以看到Linux系统提供了一些预置账号,而用户可能根本不需要这些账号。如果用户确实不需要这些账号,可以将其删除。因为这些账号名是公开的,很容易受到攻击。用下面的命令可以删除一些不必要的用户:
1.id命令
用于显示用户当前的UID、GID和用户所属的组列表。
2.whoami命令
用于显示当前用户的名称。
3.groups命令
用于显示指定用户所属的用户组,如果未指定用户则显示当前用户所属的组。
上面的结果显示根用户所属的用户组分别为root、bin、daemon、sys、adm、disk和wheel。这与/etc/group文件中所标记的内容一致:
4.newgrp命令
5.finger命令
用于查找并显示用户信息。
6.who命令
显示当前登录用户的用户名、登录终端、登录时间及登录地址。
7.w命令
用于显示当前登录的所有用户的信息。
8.cnfin命令
修改用户的基本信息。执行该命令系统会进入交互模式,依次询问用户的真实姓名、住址、办公电话和家庭电话。
9.write命令
使用write命令,可以将信息实时传递给登录的用户或终端。通过在命令行指定用户或终端可以控制信息发往何处,不带任何选项使用该命令,会将信息发送给所有登录的用户。
用户student1会收到:
Red Hat Enterprise Linux 5可以利用用户组来组织用户进而加强系统的安全性。在/etc/passwd配置文件中,每个用户的UID通常与其GID是一致的。但有些时候有些用户可能属于一个公共部门,也可能正在从事一个公共项目。通过创建一个共同的组和一个共享目录,可以使这个组的所有成员能够自由读取共享目录中所存放的文件。
例如项目组成员student1、student2和student3需要创建一个公共目录用于存放项目开发中的文件。可以将这些用户组织到一个公共组并创建一个共享目录。通过设置SGID位,允许该组中的任何用户把文件复制到共享目录中,并允许该组其他成员读取共享目录中的所有文件。具体操作步骤如下。
(1)使用groupadd命令创建一个公共组:
(2)使用useradd 命令创建student1、student2和student3账号,并给每个用户分配一个密码:
(3)创建一个名为/home/student的新共享目录。对于拥有这个目录的用户和组,使用chmod770 /home/student命令给这个目录分配读/写和执行权限(rwx)。
(4)在共享目录上配置SGID位,这将使得拥有这个目录的组中的所有用户都能够拥有所有权级的权限。
(5)使用chgrp命令为这个目录设置所有权: