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