linux用户及其管理
一、概念
linux用户是通过创建,并通过系统权限认证能访问有限linux系统资源的载体。
二、分类
1、管理员(超级用户-root):此用户对linux系统的所有资源都有访问的权限,是整个linux系统中超级的存在,其UID为0;
2、系统用户:一般不会登入,其UID为:centos 6:1-499 ;centos7:1-999
3、普通用户:即是一般的用户,其权限是受控的。其UID为:centos6:500+;centos7:1000+
三、linux组
linux组是linux不同类用户的集合,可分为两类:a、管理员组,其GID为0 ;b、普通组,其GID为1-499|1-999;500+|1000+;也可在用户的角度分:a、用户的基本组;b、用户的附加组。
四、linux用户和组的相关配置文件
/etc/passwd:用于存放用户名、密码、家目录和组ID等信息
/etc/shadow:用于存放用户名和加密密码等信息
/etc/group:用于存放组名、组ID等信息
/etc/gshadow:用于存放组名和加密密码等信息
/etc/passwd:
name:password:UID:GID:GECOS:directory:shell
用户名:X:用户ID:组ID:用户的基本信息:家目录:默认shell
[[email protected] /]# cat /etc/passwd | grep ‘^usera‘ usera:x:500:500::/home/usera:/bin/bash
/etc/shadow:
login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
account:password:最近更改密码的日期:最短改密的天数:最长该密码的天数:密码更改前的警告期限:密码过期的宽限时间:帐号失效日期:保留
[[email protected] /]# cat /etc/shadow | grep ‘^usera‘ usera:$6$k1XhdknF$U1bQqqdlpmuxW07ewhWV7lgc2MEyknkTIFjTTPQiJ4e6PZRphuigKMCiBoUMAHwWOkyrHslinkO1tUyLBmuZE0:16674:0:99999:7:::
/etc/group
group_name:passwd:GID:user_list
组名:密码:组ID:用户类表
[[email protected] /]# cat /etc/group | grep ‘^usera‘ usera:x:500:
/etc/gshadow
group name:encrypted password:administrator:members
组名:加密密码:管理员:组成员
[[email protected] /]# cat /etc/gshadow | grep ‘^usera‘ usera:!::
四、密码的复杂性策略
1、使用数字、小写字母、大写字母、特殊字符中的至少三类
2、足够长
3、使用随机密码
4、定期更换
五、用户管理命令
useradd 、usermod 、userdel 、passwd 、chage 、 chsh 、chfn
1、useradd用户添加命令
useradd [options] USERNAME
useradd -D [options]
-r : 创建系统用户
-u:制定用户的UID
-g:指定用户所属基本组,此组必须事先存在
-c:用户评论信息
-d:指定用户的家目录,此位置不能事先存在,否则,其用户相关配置文件将被复制;
-s:指定用户的默认shell
-G:指定用户的附加组
-m:强制创建用户的家目录
-M:不给用户创建家目录;
练习:创建用户Oracle,所属附加组database和sql,ID号3000,家目录为/home/database;
[[email protected] ~]# groupadd database [[email protected] ~]# groupadd sql [[email protected] ~]# useradd -u 3000 -G database,sql -d /home/database Oracle
2、usermod:修改使用者的用户信息
usermod [options] USERNAME
-u:用户的UID
-g:所属基本组的GID
-G:所属附加组的GID,同时使用-a选项
-s:修改用户的shell
-d:修改用户的家目录,修改时默认不会将原来的文件移至新家,-m可使原来的文件移动到新家;
-l:修改用户的用户名
-L:lock user锁定用户
-U:unlocke user 解锁用户
[[email protected] ~]# cat /etc/passwd |grep ‘userb‘ userb:x:501:501::/home/user/userb:/bin/bash [[email protected] ~]# usermod -u 555 -g database -G sql -d /home/userb -l user2 userb [[email protected] ~]# cat /etc/passwd |grep ‘user2‘ user2:x:555:502::/home/userb:/bin/bash [[email protected] ~]# cat /etc/group | grep ‘database‘ database:x:502:Oracle [[email protected] ~]#
3、userdel 删除用户
userdel [-r] USERNAME
-r:将档案删除
4、passwd:给用户添加修改密码
passwd [options] [USERNAME]
-l:lock user
-u:unlocke user
-n:mindays,密码最短使用期限
-x:maxdays,密码最长使用期限,默认为99999天
-w:warndays
-i:inactivedays
--stdin:从标准输出接收用户密码
echo ‘centos‘ | passwd -- stdin centos
[[email protected] ~]# echo ‘testpasswd‘ | passwd --stdin userd 更改用户 userd 的密码 。 passwd: 所有的身份验证令牌已经成功更新。
5、chage:修改密码的过期信息
chage [option] USERNAME
-m:修改密码的最小天数
-M:修改密码的最大天数
-I:密码过期后,锁定帐号的天数
-d:指定密码最后修改的日期
-E:有效期,0表示立即过期,-1表示永不过期
-W:密码过期前,开始警告天数
6、chsh:修改默认的shell
chsh [option] USERNAME
-s:指定默认的shell
-l:显示打印/etc/shells里面的shell信息
7、chfn:修改用户信息
chfn [-f full-name] [-o office] ,RB [ -p office-phone] [-h home-phone]-u] [-v] [username]
-f:全名
-o:办公室房间号
-p:工作电话
-h:家庭电话
-u:打印用法信息
-v:版本信息
六、用户组管理
groupadd 、groupdel 、groupmod 、gpasswd
1、groupadd:添加组
groupadd [-g gid [-o]] [-r] [-f] group
-g:组ID
-r:系统组
[[email protected] ~]# groupadd -g 488 -r testgroup [[email protected] ~]# cat /etc/group | grep ‘testgroup‘ testgroup:x:488:
2、groupdel:删除组
[[email protected] ~]# groupdel testgroup
3、groupmod:修改群组
groupmod [-g gid [-o]] [-n group_name] group
-g:组ID
-n:组名
[[email protected] ~]# groupadd -g 488 -r testgroup [[email protected] ~]# cat /etc/group | grep ‘group > ^C [[email protected] ~]# cat /etc/group | grep ‘group‘ testgroup:x:488: [[email protected] ~]# groupmod -g 489 -n tgroup testgroup [[email protected] ~]# cat /etc/group | grep ‘tgroup‘ tgroup:x:489: [[email protected] ~]#
4、gpasswd:设置组密码
gpasswd [option] group
-a:添加用户至该组
-d:从该组中删除用户
七、其他
whoami 、who 、w 、id
1、whoami:打印用户
[[email protected] ~]# whoami root
2、who:显示谁在登录
[[email protected] ~]# who root pts/0 2015-08-29 23:26 (192.168.3.9)
3、w:显示谁在登录,且在做什么
[[email protected] ~]# w 00:16:20 up 1:03, 1 user, load average: 0.01, 0.02, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root pts/0 192.168.3.9 23:26 0.00s 1.28s 0.31s w
4、id:显示用户和组的id和环境信息
[[email protected] ~]# id usera uid=500(usera) gid=500(usera) 组=500(usera) [[email protected] ~]# id uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023