目录
简介
用户作用: 1.可以登陆操作系统 2.不同的用户具备不同的权限
唯一标识:UID(编号从0开始的编号,默认最大60000)
zhangsan(UID 1200)
管理员root的UID:永远为0
普通用户的UID:默认从1000开始
组的作用: 方便管理用户
唯一标识:GID(编号从0开始的编号,默认最大60000)
原则:Linux一个用户必须至少属于一个组
组账户的分类:
基本组:一般情况与用户同名,一个用户必须有基本组,基本组只能有一个
附加组(从属组):一个用户可以有多个附加组,也可以没有附加组
/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
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
[root@localhost ~]# id wangwu
useradd创建用户
-u:指定 用户UID
-d:指定宿主目录(家目录),默认为 /home/用户名
-G:指定所属的附加组 -g指定基本组
-s:指定用户的登录解释器,默认为/bin/bash
-u:创建用户时,指定用户UID编号
[root@localhost ~]# useradd ns1
[root@localhost ~]# ls /home/ #查看家目录的产生
[root@localhost ~]# grep ns1 /etc/passwd #查看ns1信息
[root@localhost ~]# id ns1 #查看ns1用户基本信息
[root@localhost ~]# id gaga
id: gaga: no such user #无此用户
[root@localhost ~]# useradd -u 1200 ns2 #指定UID创建用户
[root@localhost ~]# id nsd02 #查看ns2用户基本信息
[root@localhost ~]# grep nsd /etc/passwd #查看用户信息
[root@localhost ~]# useradd ns3
[root@localhost ~]# grep nsd /etc/passwd
[root@localhost ~]# id ns3
-d:指定宿主目录(家目录),默认为 /home/用户名(不可以事先新建用户的家目录)
[root@localhost ~]# useradd -d /opt/ns4 ns4
[root@localhost ~]# grep ns4 /etc/passwd
[root@localhost ~]# ls /opt/
[root@localhost ~]# useradd -d /opt/haha05 ns5
[root@localhost ~]# grep ns5 /etc/passwd
[root@localhost ~]# ls /opt/
-G:指定所属的附加组 -g:指定基本组 (了解一下)
[root@localhost ~]# groupadd stugrp #单独创建stugrp组
[root@localhost ~]# useradd -G stugrp ns6
[root@localhost ~]# id ns6
[root@localhost ~]# useradd -G stugrp ns7
[root@localhost ~]# id ns7
[root@localhost ~]# groupadd tm #单独创建tm组
[root@localhost ~]# useradd -G stugrp,tm ns11
[root@localhost ~]# id ns11
-s:指定用户的登录解释器 /bin/bash
shell:壳,解释器
用户---->解释器---->内核---->硬件
/sbin/nologin:禁止用户登录操作系统
]# useradd -s /sbin/nologin ns10
]# grep ns10 /etc/passwd
]# useradd -s /sbin/nologin ns12
]# grep ns12 /etc/passwd
usermod修改用户属性
-l:更改用户帐号的登录名称
-u:用户id
-s:登录解释器
]# useradd ns13
]# id ns13
]# grep ns13 /etc/passwd
]# usermod -l stu13 ns13 #修改用户名字
]# id stu13
]# usermod -u 1600 stu13 #修改用户的UID
]# id stu13
]# usermod -s /sbin/nologin stu13 #修改用户的解释器程序
]# grep stu13 /etc/passwd
-d:家目录路径(默认不会自动创建新的家目录)
]# useradd ns15
]# grep ns15 /etc/passwd
]# ls /home/
]# usermod -d /etc/abc ns15
]# grep ns15 /etc/passwd
]# ls /etc/abc
ls: 无法访问/etc/abc: 没有那个文件或目录
]# useradd ns16
]# grep ns16 /etc/passwd
]# ls /home/
]# usermod -md /mnt/abc16 ns16 #将用户原有的家目录进行移动,并且设置相应的权限
]# grep ns16 /etc/passwd
]# ls /mnt
-G:修改用户的附加组 #重置附加组
[root@localhost ~]# useradd ns17
[root@localhost ~]# id ns17
[root@localhost ~]# usermod -G stugrp ns17
[root@localhost ~]# id ns17
[root@localhost ~]# groupadd tm #创建组
[root@localhost ~]# groupadd wudang #创建组
[root@localhost ~]# usermod -G tm ns17
[root@localhost ~]# id ns17
[root@localhost ~]# usermod -G wudang,stugrp ns17
[root@localhost ~]# id ns17
passwd设置密码
交互式
[root@localhost ~]# useradd ns18
[root@localhost ~]# passwd ns18 #交互式设置
更改用户 ns18的密码 。
新的 密码: #输入新密码
无效的密码: 密码少于 8 个字符
重新输入新的 密码: #重新输入新密码
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# su - ns18 #临时切换用户身份
[ns18@localhost ~]$ passwd
更改用户 ns18 的密码 。
Current password: #输入旧密码
新的 密码: #输入新的密码
重新输入新的 密码: #重新输入新的密码
passwd:所有的身份验证令牌已经成功更新。
[ns18@localhost ~]$ exit
/etc/shadow,保存密码字串/有效期等信息
每个用户记录一行,以:分割为9个字段
[root@localhost ~]# grep ns18 /etc/shadow
ns18:$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:保留字段(未使用)
非交互式
[root@localhost ~]# echo 123456 | passwd --stdin ns1
更改用户 ns1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# echo redhat123 | passwd --stdin ns1
更改用户 ns1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
userdel 删除用户
格式:userdel [-r] 用户名
添加 -r 选项,家目录/用户邮件也一并删除
[root@localhost ~]# userdel -r ns18 #连同家目录一并删除
[root@localhost ~]# ls /home
[root@localhost ~]# userdel ns20 #不删除家目录,只删除用户信息
[root@localhost ~]# ls /home
[root@localhost ~]# userdel -r ns1 #连同家目录一并删除
[root@localhost ~]# ls /home
groupadd组账号管理
[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:定义组管理员列表(组管理员可以属于此组也可以不属于此组)
/etc/gshadow:组的管理信息配置文件
[root@localhost ~]# grep tarena /etc/gshadow
tarena:!:nb:
组名:密码加密字符串:组的管理员列表:组成员列表
[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 /]# gpasswd -A 'nb,kenji' tarena #设置多个组管理员
[root@localhost /]# grep tarena /etc/gshadow
[root@localhost /]# gpasswd -A '' tarena #删除所有的组管理员
[root@localhost /]# grep tarena /etc/gshadow
/etc/passwd:用户基本信息
/etc/shadow:用户密码信息
/etc/group:组基本信息
/etc/gshadow:组管理信息