Linux下用户和组管理

  用户与组之间的关系是,组下面有若干个用户,每个用户必须从属于唯一一个组。组可以理解为权限的集合。用户管理的命令有:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage。组管理的命令有:groupadd, groupdel, groupmod, gpasswd。

(一)linux系统下用户角色

  在linux系统下用户的角色不同,权限和所能完成的任务也不同,用户角色是通过UID来识别的,在linux下要注意root用户的UID的唯一性。

1) root

  系统管理员超级用户,系统唯一,可以登陆系统,可以操作任何文件和命令,拥有最高权限,UID值为0。

2) 虚拟用户

  与真实的用户分开来,这类用户不能登陆系统,但是在使用某些服务的时候使用,这类用户是系统默认添加的。

3) 普通真实用户

  这类用户可以登陆系统,但是只能操作自己家目录的内容,受限账户,这类用户都是管理员自行添加的。

(二)用户相关文件介绍

  在windows当中可以使用计算机管理工具中的用户和组的管理工具来对用户进行管理,在linux下是通过对用户配置文件(区别与windows中的用户配置文件)的管理来实现对用户和组的管理。

1)  /etc/passwd

 

  用户账号文件,记录所有用户记录,每行表示一个用户信息,7个字段都有各自的含义。例如:root : x : 0 : 0 : root : /root : /bin/bash,这7个字段分别表示用户名、密码、UserID、GroupID、用户相关说明、用户家目录路径、用户的登陆shell。

2) /etc/shadow

 

  用户账户的影子文件,包含用户的加密密码和其他信息,两个文件互补来记录用户信息,这个文件只有root可以读取和操作。每行包含8个字段,各项说明如下:

第1个字段,用户名;第2个字段,加密口令;第3个字段,上次口令改变时间,从1970年1月1日算起的天数;第4个字段,多少天内不能改变口令;第5个字段,多少天内必须改变口令;第6个字段,口令到期前多少天会出现警告;第7个字段,如果口令到期后几天不使用账号,则无法登陆;第8个字段,如果到这个日期不用账号则无法登陆,可以以YYYY-MM-DD格式,也可以用1970年1月1日起的天数。

3) /etc/login.de

  使用vim可以对这个文件内容进行修改,下面介绍修改哪些位置有哪些作用。

  MAIL_DIR,邮件存放目录;PASS_MAX_DAYS 密码有效期最长时间;PASS_MIN_DAYS,密码有效期最短时间;PASS_MIN_LEN,密码最小长度;PASS_WARN_AGE,密码到期提示时间;UID_MIN,UID最小值;UID_MAX,UID最大值;GID_MIN,GID最小值;GID_MAX,GID最大值;CREATE_HOME,是否创建家目录;UMASK,UMASK值;USERGROUPS_ENAB,当删除用户后,同名组中不在存在用户的时候,是否删除该组。

4) /etc/skel

  存放用户启动文件的目录,类似与windows的用户配置文件目录,为用户提供用户环境,该目录下的文件全部为隐藏文件。在添加用户时会从该目录下复制文件到用户的家目录下,相当与统一的登陆模板。

  开启和关闭投影密码命令。开启用户的投影密码,使得密码得到更好的保护,不容易被别的用户得到。该选项是一个安全选项,执行命令可以把用户名和密码分别存放在两个文件当中,影子文件就是密码文件。

  pwconv,开启投影密码命令;pwunconv,关闭投影密码命令。

(三)用户管理

1) useradd 创建用户命令

  useradd jake 创建名为jake的用户。useradd的常用选项及含义如下:-d指定用户的家目录;-g指定用户组;-G指定用户的附加组;-u指定用户的UID值;-p创建密码。例如,useradd -d /rose -g group -G root -u 505 rose,创建rose用户,指定家目录在/rose下,加入到group组,同时附加到root组,并设置UID号为505。

2) users

  users查看所有登陆的用户(who)。

3) passwd设置密码命令

  注意:没有设置密码的用户不能使用。例如:passwd rose 给用户rose设置密码。常用选项及含义如下:-d删除密码;-f强制执行下次登陆时更改密码;-l停止账号使用;-u启用已经停止的账号;-S显示密码信息。

  常用的设置或密码方法有:a) passwd username,然后再在控制台中输入两次密码(不可见);

              b) passwd --stdin username,然后在控制台中输入一次密码(可见);

              c) echo “newpassword” | passwd --stdin username,使用管道将新密码传到标准输入。

4) userdel删除账号命令

  userdel rose删除rose账号。userdel -r rose删除用户登陆目录及目录下的文件(类似于windows的删除用户选择是否删除用户的文档)。

5) usermod修改账号命令

  usermod -l newname oldname。其常用选项-d、-g、-G、-u等参数与useradd命令参数使用方法一样。例如,usermod -d /home/rose -g group0 -G group1 -u 600 rose是指将rose用户的家目录,主组和附加组以及UID值更改。

6) 用户的锁定与解锁

  usermod -L rose 锁定rose用户

  usermod -U rose 解除rose用户的锁定

7) gpasswd用户添加到其他组的命令

  gpasswd -a u1 g1 将u1加入到g1组;gpasswd -d u1 g1 将u1退出g1组;gpasswd -A u1 g1 将g1组的管理员指派给u1。注意:只有root和组管理员能够改变组成员。

8) id查看ID信息命令

  id rose 查看rose用户的ID信息。id - print real and effective user and group IDs。其用法是选项后面接用户名id [OPTION]... [USERNAME]。作用是打印用户的id和组的id,Print  user  and group information for the specified USERNAME, or (when USERNAME omitted) for the current user。常用选项有-u,-g。-u是只打印用户id,-g是只打印组id。

9) root单用户

  如果希望计算机除了root账号外其他账号不能登陆,在/etc目录中执行touch nologin,创建1个名称为nologin的文件。如果系统只有一个人使用,可以考虑修改/etc/inittab文件,将默认启动值改为2。

(四)组相关文件介绍

1)  /etc/group

  用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去。

/etc/group的内容包括用户组、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:group_name:passwd:GID:user_list。例如,bin: x : 1 :bin,daemon。bin是组,x是密码段,GID是1,bin用户组下包括bin、daemon以及GID为1的其它用户(可以通过 /etc/passwd查看)。

2) /etc/gshadow

  /etc/gshadow是/etc/group的密码文件,用户组(Group)管理密码就是存放在这个文件。/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。比如我们不想让一些非用户组成员永久拥有用户组的权限和特性,这时我们可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码。

  /etc/gshadow格式如下,每个用户组独占一行:groupname:password:admin,admin,...:member,member,...

  第1字段:用户组;第2字段:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码;第3字段:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用,号分割;第4字段:组成员,如果有多个成员,用,号分割。

(五)组管理

1)  groupadd添加用户组

  常用选项及含义为:-g指定GID;-o一般和g选项同时使用,可以与已有组的GID相同。例如,groupadd -go 501 g1 创建组g1其GID可以与已有的组重复。

2) gpasswd设置用户组的密码

  一般的情况下,没有必要设置用户组的密码;例如,gpasswd rose 修改rose 组的密码。

3) groupdel删除用户组

  groupdel g1 删除g1组(没有用户的空组)。

4) groupmod 修改组属性

  其常用属性有:-g指定新的GID;-o与-g配合使用同groupadd的-o;-n修改组名。例如groupmod -g 601 g1修改g1的GID为601。再如,groupmod -n g11 g1将g1组改名为g11。

5) newgrp 切换用户组

  newgrp root切换到root组。

posted @ 2018-03-04 18:50  Huidoo_Yang  阅读(927)  评论(0编辑  收藏  举报