RHEL 5中,用户和组的管理(针对本地账号,域账号以后会提到)
1.用户账号的分类
用户账号(UID) 群组账号(GID)
(1)按照账号的位置分: 本地用户(Local Account) 域用户(Domain Account)
(2)按照权限分: 用户账号,包括root,Not-root user。细分的话,Non-root user 又可以分为普通系统用户和程序用户(因特定的程序系统创建的)。
群组账号,包含root组, 用户自定义组,系统组
其中要注意的是,root的UID以及GID都为0,而普通用户的UID,及用户自定义组GID都是大于等于500的,系统创建的用户ID及其组ID是介于0和500之间.
2.用户的账号所包含的信息
本机的账号所保存的文件为/etc/passwd,示例如下:
/etc/passwd这个文件的格式正如下面所示
username:password:uid:gid:comment:homedir:shell
username代表 特定的用户名称
password代表 经过加密用户的密码数据(现一般将密码转移至/etc/shadow中保存了)
uid代表 用户的ID号
gid代表 用户所属的组ID号
comment 可用来存放用户的注解信息,包括全名,地址,电话等信息,如果有空格,则必须使用双引号。
homedir 用户登录后所要进入的home目录,必须以绝对路径指出,如果不指定,则用户登录后,暂以/目录为用户的home目录。
shell 指出用户的登录shell,必须以完整路径给出,可在此处给出任何可执行程序。
3.组账号的内容
所存放的文件为/etc/group,
格式如下:
groupname:grouppassword:gid:members
其中members处存储着所有组成员的列表,中间以逗号分隔。其余选项与用户信息相似。
4.用户的管理
手动增加和删除账户: 我们不推荐这样做,但在一些场合可能会用到,所以提一下。
其实只要对/etc/passwd, /etc/group, /etc/shadow进行操作,就可以实现添加和删除用户的功能,但有时可能需要一个模板文件的支持更为便捷,即/etc/skel.
我们推荐使用shadow工具进行这些操作:
操作 |
用户 |
组 |
增加 |
useradd |
groupadd |
设置密码 |
passwd |
gpasswd |
修改 |
usermod |
groupmod |
移除 |
userdel |
groupdel |
useradd -u UID -g GROUP -G GROUPS -d HOME -s SHELL -c COMMENT -p PASSWORD
-m 建立主目录 -M 不建立主目录 没有这两个参数时,rhel默认建立用户目录
-n 取消创建用户私有组
-r 创建一个系统用户
如果以上参数不指定,则系统为根据/etc/login.defs以及/etc/defaults/useradd中的定义创建默认账号,即:用户的邮箱位置为/var/spool/mail/USERNAME,新建立的用户ID为500以上,默认使用最后一个可用的ID,并自动创建用户的主目录。
usermod工具用来修改用户的信息,很多的参数与useradd这个命令的参数一样,下面仅列出部分有区别的参数:
-l NEWNAME 修改账户的名称 ,后面跟上新账号名
-L USERNAME 指定账户锁定,用户将不能登录到系统
-U USERNAME 给锁定的账户解除锁定
userdel用来删除一个账户,只有一个-r的参数,用于指定是否删除用户所有的数据,这个工具请仔细使用,如果一个用户的文件没有用处了,但移除账户时没有移除文件,则可能会引发权限问题,因为LINUX是根据UID、GID等来确定权限,并非用户名,如果移除的这个账户是最后一个可用的ID,则新建用户会使用这个空白的ID,那么原先未移除的文件都将成为新加用户的文件。这是很多场合不愿看到的情景。
还有一个修改用户密码的口令,passwd,它用于修改用户的口令,并可使用以下参数,完成其他一些附加功能:
-d 删除密码,一旦使用这个参数,则指定的用户不需要密码就可能进入系统,
并且会清空/etc/passwd及/etc/shadow里面的密码项。
-l 锁定用户账号,此工具只可以被root用户使用
-S 用于查看指定用户的状态 也是只被root用户使用
--stdin 密码从标准输入即键盘进行读入文本,再经passwd命令加密后成为密码
在日常的生产环境中,出于对信息安全管理的考虑,我们通常还会考虑用户账户及密码的有效期问题,linux这样一个注重系统安全的系统,更是有一些简单并且有用的管理工具,在这里仅介绍命令行工具的使用,相信图形界面的管理应该很容易就知道了。
我们使用chage命令来管理用户账号及密码有效期问题。
chage
-l 查看用户与密码的有效期限等信息
-m 设置密码修改的最小天数
-M 设置密码修改的最大天数
-d 指定密码最后修改的日期
-i 设置密码过期几天后,锁定用户账户
-E 设置密码的过期日期 0 代表立即过期 -1代表永不过期
-W 设置密码将要过期,提前多少天提醒,并发出警告信息
5.组账号也提供了类似的管理工具
groupadd命令用于增加一个组 -g 指定一个组的标识符,即GID
-r 将这个新加组指定为系统组
-f 强制执行,一般用于增加一个同GID的组时使用这个参数
groupmod命令用于修改维护组的信息 -g 修改组的GID
-n NEWNAME 重命名组。
groupdel命令用于删除一个组
和用户管理一样,组也可以更改密码,使用gpasswd,但要注意的是它的两个参数,所代表的意义可能与传统意义不一样:
-r 移除组密码
-G 锁定组密码
如果不指定参数,默认用于更改组的密码。
RHEL 5中允许一般用户来管理组中的成员,但先要让它成为这个组的管理员,以往只有root用户才有这样的权限,但gpasswd命令可以实现这样一个功能。
gpasswd -A USER[,USER01...] GROUP
可以一次为一个组增加多个管理员,可以用“,”分开。这样子,用户就可以以这个组的管理员身份来管理这个组,而无须使用root权限。
-a USER GROUP 参数可以用于添加组管理员到一个组中
-d USER GROUP 参数可以用于从一个指定组中删除一个指定的组管理员
6.真正的生产环境中,还会遇到一些关于用户信息及安全管理的问题,我们也常会用到下面这个比较重要的管理工具,即chage,它通常用来设定用户的密码安全策略。
语法 chage [参数]用户名
-l 用于查看指定用户的密码安全策略设置信息
-m 用于设置用户最少在几天以后可以更改自己的密码 (后接天数)
-M 用于设置用户最少在几天以内修改密码,即密码可以这指定天数内有效(后接天数)
-d 用于修必用户最后修改密码的日期
-I 用于指定密码过期后,锁定密码的天数
-E 用于指定用户密码的过期日期,为0表示立即过期,为-1则表示永远不过期
这个选项 通常后接yyyy/mm/dd的格式,也可接从1970年1月1日开始的天数,但相信我们不愿意选择后者
-W 用于指定密码过期前开始发出警告信息的天数
example:
我们可以看到密码的最小有效期限已经设置为1天,也就是说,student1如果想修改自己的密码,至少在一天以后才能执行操作,以下是我切换到用户student1执行修必密码操作的示范:
可以从上面看出,提示student1至少等待一段时间才能更改密码
以上的内容是本人结合自己的学习笔记整理的,如有不妥之处,请一定赐教。
阅读(2976) | 评论(0) | 转发(0) |