一.用户和用户组
Linux用户和组的主要配置文件:
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
1. /etc/passwd文件结构
[zhang@localhost ~]$ grep zhang /etc/passwd zhang:x:500:500:zhang:/home/zhang:/bin/bash
login name:登录用名(wang)
passwd:密码(x)
UID:用户身份编号(1000)
GID:登录默认所在组编号(1000)
GECOS:用户全名或注释
home directory:用户主目录(/home/wang)
shell:用户默认使用shell (/bin/bash)
2./etc/group文件结构
[zhang@localhost ~]$ grep zhang /etc/group zhang:x:500:
群组名
群组密码
GID
3./etc/shadow文件结构
[root@localhost /]# grep zhang /etc/shadow
zhang:$6$Vz/vlzvJ$iZKI7R7/OsdoMxGcn3sL8co2X50p4Nu.HApyLyTI0cdkd5cYNB0jJYJlOoaKUd6QqQf5oI2g48b1MTVGUOm.X1:17011:0:99999:7:::
登录用名
用户密码:一般用sha512加密
从1970年1月1日起到密码最近一次被更改的时间
密码再过几天可以被变更(0表示随时可被变更)
密码再过几天必须被变更(99999表示永不过期)
密码过期前几天系统提醒用户(默认为一周)
密码过期几天后帐号会被锁定
从1970年1月1日算起,多少天后帐号失效。
4./etc/gshadow
[root@localhost /]# head -3 /etc/gshadow root::: bin:::bin,daemon daemon:::bin,daemon
用户组名
密码列,开头为!表示无合法密码,所以无用户管理员
用户组管理员的账号
该用户组的所属账号
二.账号管理
要实现用户的管理,要完成以下几个方面,用户账户的添加/删除与修改,用户口令的管理,用户组的管理.
1.useradd
useradd[options] LOGIN
选项:
-u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs
-o 配合-u 选项,不检查UID的唯一性
-g GID:指定用户登录组的GID或组名
-c "COMMENT":给新用户添加备注
-d HOME_DIR:指定用户的家目录,如果此目录不存在,则使用-m选项,可以创建家目录.
-s SHELL: 指明用户的默认shell程序 可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:指定用户所属的附加组,组必须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户(CentOS 6: ID<500,CentOS 7: ID<1000)
实例:
(1)创建用户gentoo,附加用户组为zhang,默认shell为/bin/csh,注释信息为"GentooDistribution"
[root@localhost /]# useradd -G zhang -s /bin/csh -c "GentooDistribution" gentoo
(2)创建用户Tom,指定家目录为/usr/Tom
[root@centos7 ~]# useradd -d /usr/tom -m tom (目录不存在可以用-m选项)
userdel
userdel 选项 用户名
常用选项:
-r:把用户的主目录一起删除
实例:
删除用户sam
[root@centos7 ~]# userdel tom [root@centos7 ~]# ls /home/ 123 test zhang zhangx
注意:(删除/etc/passwd,/etc/shadow,/etc/group的记录),同时删除用户的主目录
usermod
usermod [ options ] LOGIN
选项:
- a:把用户追加到某些组中,仅与-G选项一起使用
- c:修改/etc/passwd文件第五段comment
- d:修改用户的家目录通常和-m选项一起使用
- e:指定用户帐号禁用的日期,格式YY-MM-DD
- f:用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
- g:修改用户的gid,改组一定存
- G:把用户追加到某些组中,仅与-a选项一起使用
- l:修改用户的登录名称
- L:锁定用户的密码
- m:修改用户的家目录通常和-d选项一起使用
- s:修改用户的shell
- u:修改用户的uid,该uid必须唯一
- U:解锁用户的密码,将!去掉
实例
用户密码在2016/8/1号失效
[root@centos7 ~]# usermod -e "2016-8-1" sam
把sam修改为tom
[root@centos7 ~]# usermod -l tom sam
passwd[--stdin]
选项:
-l:是lock的意思,会将?etc/shadow第二列最前面加上!是密码失效
-u:与l相对,是unlock的意思
-S:列出密码相关参数,即shadow文件内的大部分信息
-n:后面接天数,shadow的第四字段,多久不可修改密码
-x:后面接天数,shadow的第五字段,多久内必须要改动密码
-w:后面接天数,shadow的第6字段,密码过期前的警告天数
-i:后面接日期,shadow的第七字段,密码失效日期
实例:
(1)查看tom账号,并让它失效
[root@centos7 ~]# passwd -S tom tom PS 2016-07-31 0 99999 7 -1 (Password set, SHA512 crypt.) [root@centos7 ~]# passwd -l tom Locking password for user tom.
(2)使用standard input 新建用户密码
[root@centos7 ~]# echo test |passwd --stdin tom Changing password for user tom. passwd: all authentication tokens updated successfully.