Linux 是一个多用户的操作系统,用户和用户组的管理是系统管理员的重要工作之一。本文的内容包括如何利用图形化工具 rfuser 和在命令行界面下完成用户账号、工作组的建立和维护,并正确设置用户权限和安全性问题。
利用图形配置工具 rfuser 与使用命令进行用户/用户组管理完成的是同样的工作,不同之处在于图形工具的操作界面友好直观,用户也不必去记忆大量的命令和参数。
概述
在 Linux 系统中,每个用户对应一个帐号。Red Flag Server 4.1 安装完成后,系统本身已创建了一些特殊用户,它们具有特殊的意义,其中最重要的是超级用户,即 root。
超级用户承担了系统管理的一切任务,可以不受限制地进行任何操作,因此建议只有在完全必要的情况下才以 root 身份进行操作。
由超级用户创建允许登录系统的普通用户,一般超级用户也需要为自己建立一个用来处理一般事务的普通帐户。
下面是用户和组群管理的一些基本概念:
用户名: 系统中用来标识用户的名称,可以是字母、数字组成的字符串,区分大小写。
用户标识UID: 系统中用来标识用户的数字。
用户主目录: 系统为每个用户配置的单独使用环境,即用户登录系统后最初所在的目录,用户的文件都放置在此目录下。
登录shell: 用户登录后启动以接收用户的输入并执行输入相应命令的程序,如/bin/bash、
/bin/csh。
用户组/组群: 具有相似属性的多个用户被分配到一个组中。
组标识GID: 用来表示用户组的数字标识
超级用户在系统中的用户ID和组ID都是0。
普通用户的用户 ID(UID)从500开始编号,并且默认属于与用户名同名的组。组 ID(GID)
也从500开始编号。
用su命令改变身份
用户在系统使用过程中可以随时使用 su 命令来改变身份。例如,系统管理员在平时工作时可以用普通帐号登录,在需要进行系统维护时用 su 命令获得 root 权限,之后再用 su 回到原帐号。
su 的语法为:su
username 是要切换到的用户名,如果不指定用户名,则默认将用户身份切换为 root,系统会要求给出正确的口令。
默 认情况下,只要知道 root 口令,任何用户都可以通过 su 命令切换到 root 身份,这是一个安全漏洞。所以我们强烈建议:只有 wheel 组成员才可以通过 su 命令转换为root。实现的办法是修改 /etc/pam.d/su 文件,取消对如下一句“auth required
/lib/security/$ISA/pam_wheel.so use_uid”的注释。
系统中的用户管理配置文件
/etc/passwd 文件
Red Flag Server 4.1 系统中用于管理用户帐号的基本文件是 /etc/passwd,该文件中包含了系统中所有用户的用户名和它们的相关信息。每个用户帐号在文件中对应一行,并且用冒号(;)分为七个域。
每一行的形式如下:
用户名:加密的口令:用户ID:组ID:用户的全名或描述:登录目录:登录shell
下面是 root 用户在此文件中对应的行:
root:X:0:0:root:/root:/bin/bash
Linux 系统将每一个用户仅仅看成是一个数字,即用每个用户惟一的用户 ID 来识别,配置文件
/etc/passwd 给出了系统用户 ID 与用户名之间及其他信息的对应关系。
/etc/passwd 文件对系统的所有用户都是可读的,这样的好处是每个用户都可以知道系统上有哪些用户,但缺点是其他用户的口令容易受到攻击(尤其当口令较简单时)。所以在 红旗 Linux 中使用影子口令格式,将用户的口令存储在另一个文件 /etc/shadow 中,该文件只有根用户 root 可读,因而大大提高了安全性。
/etc/shadow 文件
为了保证系统的安全性,系统通常对用户的口令进行 shadow 处理,并把用户口令保存到只有超
级用户可读的 /etc/shadow 文件中。该文件包含了系统中所有用户和用户口令等相关信息。
每个用户在该文件中对应一行,并且用冒号分成九个域。每一行包括以下内容:
1、 用户登录名
2、 用户加密后的口令,(若为空,表示该用户不需口令即可登录,若为 * 号,表示该帐号被禁
止)
3、 从1970年1月1日至口令最近一次被修改的天数
4、 口令在多少天内不能被用户修改
5、 口令在多少天后必须被修改
6、 口令过期多少天后用户帐号被禁止
7、 口令在到期多少天内给用户发出警告
8、 口令自1970年1月1日被禁止的天数
9、 保留域
/etc/group 文件
在 Linux 中,使用组来赋予用户访问文件的不同权限。组的划分可以采用多种标准,一个用户可
同时包含在多个组内。管理用户组的基本文件是 /etc/group,其中包含了系统中所有用户组的相关信息。每个用户组对应文件中的一行,并用冒号分成四个域。其中每一行的形式如下:
用户组名:加密后的组口令:组ID:组成员列表
下面是用户组 sys 在 /etc/group 中对应的一行:
sys:x:3:root,bin,adm
代表的信息包括:系统中有一个称为 sys 的用户组,设有口令,组 ID 为3,组中的成员有 root、
bin、adm 三个用户。
Red Flag Server 4.1 在安装中同样创建了一些标准的用户组,在一般情况下,建议您不要对这些用户组进行删除和修改,除非您完全明白它们的用途和意义。
/etc/skel 目录
一般来说,每个用户都有自己的主目录,用户成功登录后就处于自己的主目录下。主目录中存放有与用户相关的文件、命令和配置。当为新用户创建主目录时,系统会在新用户的主目录下建立一份
/etc/skel 目录下所有文件的拷贝,用来初始化用户的主目录。
使用rfuser管理用户与组群
利用 rfuser 用户和组群管理工具,可以轻松的管理系统中的用户和用户组,包括完成新建、查看、管理帐号、密码、权限等所有操作。
在控制面板的“系统配置”项中选择“本地用户和组”,或在 KDE 桌面环境下使用命令 rfuser ,
即可打开本地用户和组管理器。
rfuser 工具需要以超级用户身份运行。
系统缺省创建的用户和组群对于系统管理和应用程序的使用有重要的意义,不要随意修改或删除它们,尤其是 root 用户,否则有可能导致系统异常甚至崩溃。
查看用户和用户组
在图2-1所示的本地用户和组管理主界面中,点击“用户”标签列出本地用户及其基本信息,包括用户名、用户 UID、所属主组群、用户描述信息、登录 shell 和用户的主目录信息;点击“组”标
签显示系统中组群信息,包括组名称、组 ID 和组成员。
默认情况下,用户和组列表中会列出系统中所有的用户和用户组信息。如果要想只显示使用过程中添加的用户和用户组信息而不显示系统内建用户和用户组,按下窗口右上方的“隐藏系统帐户”按钮,或者在菜单中选择“工具隐藏系统帐户”,这时显示用户信息.
要恢复显示所有用户/用户组信息,按窗口右上方的“显示所有帐户”按钮,或者在“工具”菜单中选择“显示所有帐户”。
添加新用户
点 击工具栏中的“添加新用户”按钮,出现“增加新用户”向导。在“用户信息”窗口中输入用户名和描述信息,用户名的首位必须是英文字母,并且不能与已有的用 户名重复;“用户ID”是该用户在系统中唯一的标识,范围是1~65535,默认情况下,系统会为用户指定一个500以上的标识号,也可以手工指定用户的 UID号,但推荐由系统自动分配;“登录shell”一般只需采用默认的/bin/bash;添加用户时默认会在系统中创建一个用户主目录 /home/username ,也可以指定其他的目录。
点击“继续”按钮进入下一步,在右侧的“密码”和“确认”文本框中输入至少6位的用户密码。
密码最好是数字、字母及特殊字符的组合,图方便使用简单的数字、英语单词、生日、电话等都可能成为个人信息安全的隐患。
可以设置用户密码的使用期限,选中“永不过期”则用户密码永远有效;选择“无密码”表示该用户不需要密码就可以登录系统。
点击“继续”按钮进入“用户—组关系设置”界面。
从系统已有的用户组列表中选择新添加用户将从属的组,按“增加->”按钮加入“隶属于”列表。
一个用户可以同时从属于几个不同的组,在“主组群”中选择用户所属的主组名称。
Red Flag Server 4.1 使用 UPG(user private group)机制,如果在此步骤中没有选择新用户所属的用户组,系统会在创建新用户的同时会默认创建一个和用户名同名的组。
点击“继续”按钮进入下一步,弹出窗口中显示了将添加用户的信息,按下“完成”按钮,新建的用户将加入用户列表。
rfuser 会将新创建的用户同时加入系统的 samba 用户列表,即该用户也同时成为能够使
用 SMB 远程访问本机文件或打印机的授权用户。
编辑用户属性
要查看或修改一个已存在用户的属性,在主界面的用户列表中选中该用户双击鼠标,或按下工具
栏中的“设置属性”按钮,也可以在菜单中选择“工具设置属性”,出现图2-5的的窗口:
用户属性窗口分为三个标签页:
用户信息:查看或修改用户的基本信息。
密码:设置或修改用户口令、用户帐号的时限,设置当前用户是否可以登录系统等。
用户—组关系:查看或修改用户所属的组群,设置所属的主组群等。
编辑完成后按“修改”按钮使所做的配置生效。
还有一种编辑用户属性的方法是:在用户列表中选择某一用户,单击鼠标右键,在快捷菜单中选择相应的菜单项进行修改。
添加新组
系 统管理过程经常要建立新的组群,点击工具栏中的“添加新组群”按钮,出现“增加新组群”对话框。输入新组群的名称,组群名称的首位必须是英文字母,并且不 能与已有的组群名重复。组ID是该组群在系统中唯一的标识,范围是1~65535,默认情况下,系统会为新添的用户组指定一个500以上的标识号,也可以 手工指定一个标识号,但推荐由系统自动分配。点击“继续”按钮,在右侧的视图中设置组成员信息。从系统的用户列表中选择将隶属于新组的成员,按“增加- >”按钮加入“组成员”列表。一个组中可以包含多个用户。
点击“继续”按钮进入下一步,弹出窗口中显示了将添加用户组的信息,按下“完成”按钮,新添的用户组将出现在组列表中。
编辑组群属性
在主界面的组列表中选中一个已存在的组双击鼠标右键,按工具栏中的“设置属性”按钮,或在菜单中选择“工具设置属性”,显示组属性设置窗口,可以对组群名称、组ID、组用户成员等属性进行修改。
还有一种编辑组属性的方法是:在组列表中选择某组,单击鼠标右键,在快捷菜单中选择相应的菜单项进行修改。
删除本地用户和组
在列表中选择要删除的用户或用户组,按下工具栏中的“删除”按钮,或者在菜单中选择“工具删除”,确认是否删除系统用户或用户组。
删除用户后,该用户主目录及其所有文件也将被删除。
命令行界面下的用户和组管理
用户管理
添加新用户
在命令行下,超级用户 root 可以按照以下的步骤来创建新的用户帐号:
1、 在 shell 提示符下,运行命令 useradd 或 adduser 来增加一个用户:
如要在系统中加入一个名为 newuser 的新用户,可以使用以下的命令:
# useradd newuser
useradd 命令还有很多可选参数,用来设置新建用户的一些属性,详细的参数使用方法,请参考
其 man page。
2、 为用户设置口令:
通过 passwd 命令可以完成为新建用户设立口令。例如,超级用户要设置或改变用户 newuser 的
口令时,可使用命令:
# passwd newuser
系统会提示输入新的口令,新口令需要输入两次。出于安全的原因,键入口令时不会在屏幕上回
显出来。当用户使用不带参数的 passwd 命令时,可以修改自己的口令。
useradd 命令的常用参数和选项如下表:
选项和参数 描述
-c comment /etc/passwd 文件中用户全名或注释域的内容。
-d home-dir 指定用于取代默认的 /home/username 的用户主目录。
-e date 禁用账号的日期,格式为:YYYY-MM-DD
-f days 口令过期后,账号禁用前的天数。
-g group-name 用户所属主组群的组群名或组群ID(该组群在指定前必须存在)。
-G group-list 用户是其中成员的其他组群名或组群号码(默认以外的)列表,用逗号分隔(组群在指定前必须存在)。 -m 若主目录不存在则创建它。
-M 不要创建用户主目录。
-n 不要为用户创建用户私人组群。
-r 创建一个 UID 小于500的不带主目录的系统账号。
-p password 使用 crypt 加密的口令。
-s 指定用户登录 shell,默认为 /bin/bash。
-u uid 指定用户的 UID,它必须是唯一的,且大于499。
2.3.1.2 临时禁止一个用户
有时,需要临时禁止一个用户帐号的使用而不是删除它。可以采用以下两种方法:
1、 把用户的记录从 /etc/passwd 文件中去掉,保留其主目录和其它文件不变;
2、 在 /etc/passwd 文件(或 /etc/shadow)中关于该用户的 passwd 域的第一个字符前面加上一个“*”号。
删除用户
完全删除一个用户包括:
1、 删除 /etc/passwd 文件中此用户的记录;
2、 删除 /etc/group 文件中该用户的信息;
3、 删除用户的主目录;
4、 删除用户所创建的或属于此用户的文件。
userdel 命令可以用来删除用户及其主目录。命令的格式为:
# userdel [-r]
使用 –r 选项,表示用户主目录及其内部的文件将被删除。
用户组管理
以下是用户组管理的几个常用命令。
建立组
groupadd 命令用于将新组加入系统,命令的格式为:
# groupadd newgroup
新建的组默认使用大于500并大于每个其他组的 ID 的最小数值。如果要指定组的ID,可以在命令中加入 –g 参数,如下面的命令将在 /etc/passwd 文件中产生 GID 为503的项目:
# groupadd –g 503 newgroup
groupadd 命令的常用参数和选项如下表:
选项和参数 描述
-g gid 指定用户组的 GID,它必须是唯一的,且大于499。
-r 创建小于500的系统用户组。
-f 若用户组已存在,退出并显示错误(组不会被改变)。如果指定了 -g 和 -f 选项,且用户组已存在,-g 选项就会被忽略。
在组中加入用户
在组中加入用户的方法是直接编辑 /etc/group 文件。前面讲过,这个文件的每一行表示一个组的
信息,其中第四个域代表组内用户的列表。例如:user1、user2、user3 都属于组group1,其组的 ID 为509,则组的项目就是:
group1::509:user1,user2,user3
要将新用户加入组中,只需用在文件编辑器中编辑 /etc/group 文件,并将用户名加入用户列表中,用逗号分隔开即可。
删除组
使用 groupdel 命令来删除组。命令的格式如下:
# groupdel
有几点需要注意:
1、 组中的文件不能自行删除,也不能自行改变所属的组;
2、 如果组是用户的基本组(即 /etc/passwd 文件中显示为该用户的组),则这个组无法删除。
Linux的用户和组群管理(转)
最新推荐文章于 2022-12-30 17:07:03 发布