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

[root@pizi /]# 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:最近更改密码的日期:最短改密的天数:最长该密码的天数:密码更改前的警告期限:密码过期的宽限时间:帐号失效日期:保留

[root@pizi /]# cat /etc/shadow | grep '^usera'
usera:$6$k1XhdknF$U1bQqqdlpmuxW07ewhWV7lgc2MEyknkTIFjTTPQiJ4e6PZRphuigKMCiBoUMAHwWOkyrHslinkO1tUyLBmuZE0:16674:0:99999:7:::


/etc/group
group_name:passwd:GID:user_list

组名:密码:组ID:用户类表

[root@pizi /]# cat /etc/group | grep '^usera'
usera:x:500:


/etc/gshadow

group name:encrypted password:administrator:members

组名:加密密码:管理员:组成员

[root@pizi /]# 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;

[root@pizi ~]# groupadd database
[root@pizi ~]# groupadd sql
[root@pizi ~]# useradd -u 3000 -G database,sql -d /home/database Oracle

wKiom1Xh0JzjNJFGAAE5lAKpxyE454.jpg


2、usermod:修改使用者的用户信息

usermod [options] USERNAME

-u:用户的UID

-g:所属基本组的GID

-G:所属附加组的GID,同时使用-a选项

-s:修改用户的shell

-d:修改用户的家目录,修改时默认不会将原来的文件移至新家,-m可使原来的文件移动到新家;

-l:修改用户的用户名

-L:lock user锁定用户

-U:unlocke user 解锁用户

[root@pizi ~]# cat /etc/passwd |grep 'userb'
userb:x:501:501::/home/user/userb:/bin/bash
[root@pizi ~]# usermod -u 555 -g database -G sql -d /home/userb -l user2 userb
[root@pizi ~]# cat /etc/passwd |grep 'user2'
user2:x:555:502::/home/userb:/bin/bash
[root@pizi ~]# cat /etc/group | grep 'database'
database:x:502:Oracle
[root@pizi ~]#


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

[root@pizi ~]# 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:系统组

[root@pizi ~]# groupadd -g 488 -r testgroup
[root@pizi ~]# cat /etc/group | grep 'testgroup'
testgroup:x:488:


2、groupdel:删除组

[root@pizi ~]# groupdel testgroup


3、groupmod:修改群组

groupmod [-g gid [-o]] [-n group_name] group

-g:组ID

-n:组名

[root@pizi ~]# groupadd -g 488 -r testgroup
[root@pizi ~]# cat /etc/group | grep 'group
> ^C
[root@pizi ~]# cat /etc/group | grep 'group'
testgroup:x:488:
[root@pizi ~]# groupmod -g 489 -n tgroup testgroup
[root@pizi ~]# cat /etc/group | grep 'tgroup'
tgroup:x:489:
[root@pizi ~]#


4、gpasswd:设置组密码

gpasswd [option] group

-a:添加用户至该组

-d:从该组中删除用户


七、其他

whoami  、who 、w 、id

1、whoami:打印用户

[root@pizi ~]# whoami
root

2、who:显示谁在登录

[root@pizi ~]# who
root     pts/0        2015-08-29 23:26 (192.168.3.9)

3、w:显示谁在登录,且在做什么

[root@pizi ~]# w
 00:16:20 up  1:03,  1 user,  load average: 0.01, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.3.9      23:26    0.00s  1.28s  0.31s w

4、id:显示用户和组的id和环境信息

[root@pizi ~]# id usera
uid=500(usera) gid=500(usera) 组=500(usera)
[root@pizi ~]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023