Linux中的用户和用户组管理

用户账号的管理主要涉及到用户账号的添加、删除和修改。
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等。

关于用户管理的配置文件说明

用户信息文件:

/etc/passwd

文件内容:

root:x:0:0:root:/root:/bin/bash

第一位:用户名
第二位:密码位(只是一个密码标志,真实密码并不是存在这)
第三位:UID    用户ID
        0    超级管理员
        1-499    系统用户(伪用户)
        >500    普通用户
第四位:GID    初始组ID
第五位:用户说明
第六位:家目录
第七位:用户登录之后的权限

影子文件:

/etc/shadow

文件内容:

root:$6$w5RBeFe7Y1bixrQR$tp0zHL1bMmAVv0SAS56LsCOyZ4KUj3V0GI0dRZ4KSlf.ggisV7dwiQ8s5xebcZghVDxwlYTjN6qKGU9zRc.En1:16247:0:99999:7:::

说明:

#
# 第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,
# 这样就把passwd 和shadow中用的用户记录联系在一起;这个字段是非空的;
#
# 第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;
#
# 第三字段:上次修改口令的时间;这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数),
# 您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
#
# 第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;
# 此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;
#
# 第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;
# 如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
#
# 第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;
# 如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
#
# 第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,
# 也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
#
# 第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的1月1日开始的天数),
# 如果这个字段的值为空,帐号永久可用;
#
# 第九字段:保留字段,目前为空,以备将来Linux发展之用;

组信息文件:

/etc/group

文件内容:

bin:x:1:bin,daemon
组名:组密码位:组ID:组中的附加用户
初始组:每个用户初始组只能有一个,初始组只能有一个,一般都是和用户名相同的组作为初始组
附加组:每个用户可以属于多个附加组。要把用户加入组,都是加入附加组

添加用户

useradd    用户名
useradd  选项    用户名        
        -g    组名        指定初始组(但最好不要手动指定)
        -G    组名        指定附加组(把用户加入组,使用附加组)
        -c    说明        添加说明
        -d    目录        手工指定家目录
        -s    /bin/bash    手工指定用户登录后之后的权限

例:

useradd  -g  aa  bb           添加bb用户,同时指定初始组aa
useradd   -G   user1   aa        添加用户aa,指定附加组为user1

设定密码

passwd    用户名
passwd        改变当前用户密码(普通用户只能通过这种方式来更改自己的密码)
passwd    root    更改root的密码

删除密码

userdel    -r  用户名
            -r     连带家目录一起删除

添加组

groupadd    组名

删除组

groupdel    组名        注意:组中没有初始用户

把已经存在的用户加入组

gpasswd    -a  用户名   组名    用户加入组
gpasswd    -d  用户名  组名    把用户从组中删除

查看用户相关信息

id   用户名        显示用户的UID,初始组,和附加组
例#id   sc   
uid=0(root) gid=0(root) 组=0(root)

用户间的相互切换

su  -  用户名        切换用户身份
      -    连带环境变量一起切换