用户账号简介

作用: 1.可以登陆操作系统 2.不同的用户具备不同的权限

唯一标识:UID(编号从0开始的编号,默认最大60000)

管理员root的UID:永远为0

普通用户的UID:默认从1000开始

组账号简介

作用: 方便管理用户

唯一标识:GID(编号从0开始的编号,默认最大60000)

原则:Linux一个用户必须至少属于一个组

组账户的分类:

基本组一般情况与用户同名,一个用户必须有基本组,基本组只能有一个

附加组(从属组)一个用户可以有多个附加组,也可以没有附加组

]# useradd  tom

组:tom   wudang   shaolin

用户配置文件

/etc/passwd:存放用户基本信息配置文件

[root@localhost ~]#head -1  /etc/passwd #显示文件第一行

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

用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器

[root@localhost ~]# useradd  wangwu  

[root@localhost ~]# grep  wangwu  /etc/passwd

[root@localhost ~]# id  wangwu    #查看用户基本信息

useradd创建用户

• 常用命令选项

-u:指定 用户UID

-d:指定宿主目录(家目录),默认为 /home/用户名

-G:指定所属的附加组,-g指定基本组

-s:指定用户的登录解释器,默认为/bin/bash

-u:指定 用户UID

]# useradd   nsd01  

]# ls   /home/                #查看家目录的产生

]# grep  nsd01   /etc/passwd   #查看nsd01信息

]# id  nsd01                   #查看nsd01用户基本信息

]# id  gaga         

id: gaga: no such user           #无此用户   

]# useradd  -u  1314nsd02  #指定UID创建用户

]# id   nsd02                  #查看nsd02用户基本信息

]# grep   nsd   /etc/passwd   #查看用户信息

]# useradd   nsd03

]# grep   nsd    /etc/passwd

]# id   nsd03

-d:指定家目录,默认为 /home/用户名

[root@nb ~]# useradd  -d  /opt/abc07   nsd07

[root@nb ~]# ls  /opt

[root@nb ~]# ls -A /opt/abc/


[root@nb ~]# grep  nsd07  /etc/passwd



不可以事先创建家目录,家目录的父目录必须存在

[root@localhost ~]# useradd  -d  /opt/nsd04   nsd04

[root@localhost ~]# grep   nsd04   /etc/passwd

[root@localhost ~]# ls  /opt/


[root@localhost ~]# useradd   -d  /opt/haha05   nsd05

[root@localhost ~]# grep  nsd05   /etc/passwd

[root@localhost ~]# ls   /opt/


-G:指定所属的附加组   -g:指定基本组 (了解一下)

]# groupadd   stugrp    #单独创建stugrp组


]# useradd  -G   stugrp   nsd06

]# id  nsd06


]# useradd  -G   stugrp   nsd07

]# id   nsd07


]# groupadd  tmooc  #单独创建tmooc组

]# useradd  -G  stugrp,tmooc  nsd11

]# id  nsd11    


-s:指定用户的登录解释器 /bin/bash

shell:壳,解释器

用户---->解释器---->内核---->硬件

/sbin/nologin:禁止用户登录操作系统


]# useradd  -s  /sbin/nologin   nsd10

]# grep   nsd10    /etc/passwd


]# passwd  nsd10   #设置密码,密码没有屏幕显示,需要输入两次密码


]# useradd  -s  /sbin/nologin   nsd12

]# grep   nsd12   /etc/passwd



usermod命令

格式:usermod [选项]... 用户名

• 常用命令选项

-l:更改用户帐号的登录名称

-u:用户id

-d:家目录路径

-s:登录解释器

-G:附加组 #重置附加组


-l:更改用户帐号的登录名称

-u:用户id

-s:登录解释器

]# useradd   nsd13                

]# id   nsd13

]# grep  nsd13  /etc/passwd

]# usermod  -l  stu13   nsd13      #修改用户名字

]# id  stu13

]# usermod  -u  1600   stu13     #修改用户的UID

]# id  stu13

]# usermod  -s   /sbin/nologin  stu13   #修改用户的解释器程序

]# grep  stu13  /etc/passwd



-d:家目录路径

[root@localhost ~]# useradd   nsd15     

[root@localhost ~]# grep  nsd15   /etc/passwd

[root@localhost ~]# ls   /home/

[root@localhost ~]# usermod   -d  /etc/abc   nsd15

[root@localhost ~]# grep   nsd15   /etc/passwd

[root@localhost ~]# ls  /etc/abc

ls: 无法访问/etc/abc: 没有那个文件或目录

[root@localhost ~]# useradd   nsd16     

[root@localhost ~]# grep  nsd16   /etc/passwd

[root@localhost ~]# ls   /home/

[root@localhost ~]# usermod -md/mnt/abc16  nsd16  #将用户原有的家目录进行移动,并且设置相应的权限

[root@localhost ~]# grep   nsd16   /etc/passwd

[root@localhost ~]# ls  /mnt


-G:修改用户的附加组   #重置附加组 (了解)

[root@localhost ~]# useradd   nsd17

[root@localhost ~]# id   nsd17

[root@localhost ~]# groupadd  stugrp   #创建组

[root@localhost ~]# usermod  -G  stugrp   nsd17

[root@localhost ~]# id   nsd17


[root@localhost ~]# groupadd  wudang   #创建组

[root@localhost ~]# usermod  -G  wudang  nsd17

[root@localhost ~]# id   nsd17

[root@localhost ~]# usermod  -G  wudang,stugrp  nsd17

[root@localhost ~]# id   nsd17


passwd设置用户密码


交互式:

[root@nb ~]# passwd  stu01

更改用户 stu01 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。


非交互式设置密码:只能管理员使用

[root@nb ~]# echo  123  |  passwd  --stdin   nsd02

更改用户 nsd02 的密码 。

passwd:所有的身份验证令牌已经成功更新。


[root@nb ~]# echo redhat  |  passwd  --stdin   nsd02

更改用户 nsd02 的密码 。

passwd:所有的身份验证令牌已经成功更新。

[root@nb ~]#



[root@nb ~]# useradd   nsd18

[root@nb ~]# echo 123  |  passwd  --stdin   nsd18


[root@localhost ~]# su  -  nsd18      #临时切换用户身份

[nsd18@localhost ~]$ passwd

更改用户 nsd18的密码 。

Current password:             #输入旧密码

新的 密码:                    #输入新密码

重新输入新的 密码:            #重新输入新密码

passwd:所有的身份验证令牌已经成功更新。


[nsd18@localhost ~]$  exit    #退出。回到root用户身份





/etc/shadow,保存密码字串/有效期等信息


每个用户记录一行,以:分割为9个字段

[root@localhost ~]# grep  nsd18  /etc/shadow

nsd18:$6$NVe937Nd$B0n94XrpQ.LipQHTpYh0iV/M4jCLdccfHxzRLprdxDzwk8WDDh/TzdTfh8lA9y9WKJ.8Ls/l5.w/1W.nV6CFX/:18481:0:99999:7:::


上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数

字段1:用户帐号的名称

字段2:加密后的密码字符串

字段3:上次修改密码的时间

字段4:密码的最短有效天数,默认0

字段5:密码的最长有效天数,默认99999

字段6:密码过期前的警告天数,默认7

字段7:密码过期后多少天禁用此用户账号

字段8:帐号失效时间,默认值为空

字段9:保留字段(未使用)


~/.bashrc:每次进入新的Bash环境时执行(开启新的终端)


[root@localhost ~]# vim   /root/.bashrc  #定义永久别名

……

alias  hn='hostname'   #新增配置内容

……


开启新的终端进行测试:

[root@localhost ~]# hn


/etc/bashrc:全局配置文件,影响全体用户 (开启新的终端)

[root@localhost ~]# vim   /etc/bashrc

……

alias    myls='ls   -ld'      #新增配置

……

#新开一个终端验证

[root@localhost ~]# useradd  nsd21

[root@localhost ~]# su  -  nsd21   #相当于开启新的终端

[nsd21@localhost ~]$ myls  /opt

[nsd21@localhost ~]$ exit

登出

[root@localhost ~]#



删除用户

userdel命令

格式:userdel [-r] 用户名

添加 -r 选项,家目录/用户邮件也一并删除


]# userdel  -r   nsd18  #连同家目录一并删除


]# userdel nsd20  #不删除家目录,只删除用户信息



组管理

存放所有组信息的配置文件:/etc/group

[root@localhost ~]# groupadd    tarena  #新建一个组

[root@localhost ~]# grep  tarena  /etc/group#查看组信息

tarena:x:1607:

组名字:密码占位符:GID:组成员列表      


[root@localhost ~]# useradd  kaka

[root@localhost ~]# useradd  nb   

[root@localhost ~]# useradd  jack

[root@localhost ~]# useradd  kenji



gpasswd命令(添加附加组)

格式:gpasswd [选项]... 组名

•常用命令选项

-a:添加组成员,每次只能加一个

-d: 删除组成员,每次只能删一个

-M:定义(重置)组成员用户列表,可设置多个用户



]# gpasswd  -a  kaka  tarena  #添加用户kaka到tarena组

]# grep   tarena   /etc/group     #查看组信息

]# id   kaka

]# gpasswd   -a   nb   tarena   #添加用户nb到tarena组

]# grep    tarena   /etc/group     

]# gpasswd  -M  'jack,kenji'   tarena    #定义组成员列表

]# grep   tarena   /etc/group


]# gpasswd   -a   nb   tarena   #添加用户nb到tarena组

]# grep  tarena   /etc/group

]# gpasswd  -d  nb  tarena #将nb用户从tarena组中删除

]# grep   tarena    /etc/group   


]# gpasswd   -M  ''      tarena    #删除组中所有成员

]# grep  tarena   /etc/group



-A:定义组管理员列表(组管理员可以属于此组也可以不属于此组)

[root@localhost ~]# su  -  nb

[nb@localhost ~]$ gpasswd  -a  kaka  tarena

gpasswd:没有权限。

[nb@localhost ~]$ exit


[root@localhost ~]# gpasswd  -A  nb  tarena  #设置组管理员

[root@localhost ~]# su  -  nb

[nb@localhost ~]$ gpasswd  -a  kaka  tarena

正在将用户“kaka”加入到“tarena”组中

[nb@localhost ~]$ exit

[root@localhost ~]#



/etc/gshadow:组的管理信息配置文件

[root@localhost ~]# grep   tarena  /etc/gshadow

tarena:!:nb:     

组名:密码加密字符串:组的管理员列表:组成员列表


]# gpasswd   -A   'nb,kenji'  tarena  #设置多个组管理员

]# grep  tarena  /etc/gshadow


]# gpasswd   -A   ''   tarena    #删除所有的组管理员

]# grep  tarena   /etc/gshadow



用户基本信息/etc/passwd

用户密码信息/etc/shadow

组基本信息/etc/group

组管理信息/etc/gshadow


用户基本信息

A/etc/passwd  B/etc/psaswd  

C/etc/pasawd  D/etc/pwasswd


删除组账号:删除组的时候,不可以删除基本组

[root@localhost ~]# groupdel   tarena    

[root@localhost ~]# groupdel   tmooc


[root@localhost ~]# grep   tmooc  /etc/group

[root@localhost ~]# grep  tarena  /etc/group


总结:Linux系统执行useradd命令,会完成那些操作?

1.会在/etc/passwd增加一行信息

2.会在/etc/shadow增加一行信息

3.会在/home新增用户家目录

4.会在/var/spool/mail增加用户邮件文件

5.会在/etc/group增加一行组信息

6.会在/etc/gshadow增加一行组的管理信息


总结:Linux系统执行userdel -r命令,会完成那些操作?

1.会在/etc/passwd删除一行信息

2.会在/etc/shadow删除一行信息

3.会在/home删除用户家目录

4.会在/var/spool/mail删除用户邮件文件

5.会在/etc/group删除一行组信息

6.会在/etc/gshadow删除一行组的管理信息