CentOS 6.5账户管理(用户和组)

一、Linux用户的概念
在Linux中用户和组的概念与Windows中用户和组的概念相似。
Linux下的用户可以分为三类:
超级用户(系统管理员)——用户名为root,它具有一切权限,只有进行系统维护或其他必要情形下才用超级用户登录,以避免系统出现安全问题。
系统用户(伪用户)——是Linux系统正常工作所必需的内建的用户。主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin、daemon、adm、lp等用户。系统用户不能用来登录.
普通用户——是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。
在Linux中,每个用户都有一个UID(用户识别码),系统就是通过UID来识别用户的,UID是一个数值,超级用户的UID为0,系统用户的UID取1~499之间的数值,普通用户的UID取500~60000之间的数值。
二、Linux组的概念
组可以看做用户的集合,也是权限分配的单位。Linux中的组有以下三种:
初始组(也称私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是初始组,初始组只容纳一个用户。
附加组(也称公有组):可以容纳多个用户,组中的用户都具有组所拥有的权利。
系统组:一般加入一些系统用户。
三、用户账号文件和用户密码文件
在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。
1、/etc/passwd
/etc/passwd是保存用户账号信息的文件,它是一个文本文件,用于保存用户的信息。
passwd文件中,每行定义一个用户账号,每一行由7个字段的数据组成,字段之间用“:”分隔,其含义如下:
1 2 3 4 5 6 7
账号名称 密码 UID GID 用户说明 家目录 Shell
例如:zhangwei:x:500:500::/home/zhangwei:/bin/bash
其中,zhangwei是用户的名称,x表示有密码,密码不在这里存放,是在文件/etc/shadow中存放的。其UID为500,GID也是500,说明内容没有,家目录为/home/zhangwei,shell为/bin/bash。
2、/etc/shadow(权限为000)
/etc/ shadow记录用户密码相关信息,该文件共包含9个字段,各字段使用:分隔。含义如下:
1 2 3 4 5 6 7 8 9
用户名 密码 密码最后修改日期 密码最短使用天数 密码最长使用天数 密码到期提前警告天数 密码到期后宽限天数 账号失效日期 保留字段
例如:
zhang:$6$jM5vHbN/$05kmbqHjltvwKUJIPTKZizfO2t.nWINfvvP92s.qI5phMQT2oa9ytHwMEQ3x4JqUQmVlcSd74QdX6jTUSJLIa/:17142:0:99999:7:::
Zhang为用户名,用户名之后为用户密码,此处密码是加密的,因此显示看起来杂乱无章,密码之后的17142是密码最后修改日期(时间戳),之后的0表示,用户密码最短使用天数为0天,用户可随时更改密码,99999为密码最常使用天数(约为273年呢),7为密码到期后,仍可宽限使用7天,密码到期日期没有设置。
四、组账号文件与组账号密码文件
组的信息保存在两个文件中,/etc/group存储组账号的基本信息,/etc/gshadow记录组账号的密码信息。文件/etc/group记录组账号的基本信息,其每行表示一个组的信息,含义如下:
1 2 3 4
组名 组账号密码 GID 该组包含账号
例如:bin:x:1:root,bin,daemon
bin表示组名,x表示密码,真实密码记录在文件/etc/gshadow中,1是该组的GID,该组中共包含root,bin,daemon三个用户。
/etc/gshadow(权限为000)记录组账号的密码相关信息,其各字段含义如下:
1 2 3 4
组名 组账号密码 组管理员 该组包含账号
五、用户操作命令
1、创建用户
命令格式:useradd [选项] 用户名
主要选项:
-c 设置用户说明(默认无说明)
-u 设置用户uid
-g 设置初始组(默认建立与用户同名初始组)
-G 设置附加组(默认无附加组)
-e yyyy-mm-dd 设定用户的失效日期
-s 登录的shell
-d 指定家目录(默认建立同名家目录)
-M 不为用户建立家目录(默认建立同名家目录)
注意:
在创建一个账户时,会参考下列三个文件:/etc/default/useradd、/etc/login.defs、/etc/skel/*
创建用户的模板文件:/etc/default/useradd
GROUP=100 组ID,此项不会生效
HOME=/home 用户家目录创建位置
INACTIVE=-1 -1表示密码到期后仍可以使用
EXPIRE= 失效日期没有设置
SHELL=/bin/bash 用户默认shell
SKEL=/etc/skel 用户家目录参考目录(也就是说用户家目录内容,是从该目录复制而来)
CREATE_MAIL_SPOOL=yes 创建用户邮箱(在/etc/spool/mail中)
用户密码参数参考文件:/etc/login.defs(摘录)
[root@localhost ~]# vi /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 500
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
2、passwd —— 为用户账号设置密码
命令格式:passwd [选项] 用户名
说明:
1)未设定密码的用户不能登录;
2)如果缺省用户名,则表示修改当前用户的口令
3)只有root可以为其他用户更改密码,其他用户只能为自己更改密码
4)常用选项:
用法: passwd [选项...] <帐号名称>
-d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作)
-l, --lock lock the password for the named account (root only)
-u, --unlock unlock the password for the named account (root only)
-i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
-S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作)
3、usermod —— 修改用户的属性
命令格式:usermod [选项] 用户名
说明:
1)许多选项同命令useradd,如:-c 全名 -g 群组ID(主要组) -G 群组ID(附加组)等;
2)其它选项:
-l 新用户名——更改账户的名称,必须在该用户未登录的情况下才能使用。
-L——锁定(暂停)用户账户,使其不能登录使用。
-U——解锁用户账户。
4、userdel —— 删除账号
命令格式:userdel [选项] 用户名
说明:
1)使用选项-r ,删除用户的同时,还会删除其主目录,不加该选项,则仅删除账号;
2)如果该账户属于“私有群组”,则删除账号的同时,也会删除其所属的群组。
5、su —— 切换登录的用户
命令格式:su 用户名
说明:
1)使用该命令可以实现root与普通用户间的切换;
2)使用exit可以返回到本来的用户身份;
6、其他用户查询命令:
1)whoami —— 查询现在登录的用户
2)id —— 查询用户的UID、GID和用户所属群组的信息,如果不指定用户,则显示当前用户的信息。
3)w ——查看当前登录系统用户和详细信息;
4)finger ——查看指定用户的详细信息
五、组操作命令
1、groupadd —— 创建组
命令格式:groupadd [选项] 组名
说明:
1)可以通过选项-g,指定组的GID,省略的话,该组的GID为当前最大GID加1;
2)可以通过选项-r,创建系统用户组,否则创建的组为普通用户组,系统用户组的GID小于500,而普通组的GID大于500。
2、groupmod —— 修改组的属性
命令格式:groupmod [选项] 组名
说明:
1)通过选项-n,可以修改组名,例如:groupmod –n caiwu caiwubu
2)通过选项-g,修改组的GID。
3、groupdel —— 删除组
命令格式:groupdel 组名
说明:在删除用户组时,被删除的用户组不能是某个账户的私有用户组,否则将无法删除,若要删除,则应先删除该私有用户组中的账户,然后再删除用户组。
4、gpasswd —— 添加/删除组成员
命令格式:gpasswd [选项] [用户] [组]
说明:
1)选项-a —— 把用户加入组,例如:gpasswd -a zhao caiwubu
2)选项-d —— 把用户从组中删除,例如:gpasswd -d zhao caiwubu
3)选项-M —— 可同时添加多个用户,例如:gpasswd -M zhang,li caiwubu
4)选项-A —— 给组指派管理员,例如:gpasswd -A zhang caiwubu