用户账号和组账号
Linux中每个用户是通过 User Id (UID)来唯一标识的 新建用户 1-60000 自动分配 0-65535 端口号,系统是靠uid来区分用户身份的,用户的uid 为0 就是超级管理员
1.用户账号的类型
超级管理员:权限最高的用户,root,uid 0
普通用户:权限受到限制的用户,uid范围500+ (CentOS6以前), 1000+(CentOS7以后)
程序用户:不是给别人登入使用的,给程序使用的,uid范围1-499(centos以前),1-999(centos7以后)
2.组账号
组账户是用户账户的集合,用于组织用户账户; 为一个组授予权限后,则该组内的所有成员用户自动获得改组的权限; 一个用户账户可以隶属于多个组,而这个用户的权限就是所有组的权限的 合并集 。
组账号分为基本组和附加组
基本组:
建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是私有组,这个组默认只容纳了一个用户。在用户所属组中的第一个组称为基本组,基本组在 /etc/passwd 文件中指定
附加组:除了第一个组外的其他组为附加组或公共组,附加组在 /etc/group 文件中指定
基本组:一定要有,有且只有一个
附加组:可有可无,可以有多个
默认新建用户时自动添加同名的组
3.UID和GID
UID:Linux 操作系统中的每一个用户账号都有一个数字形式的身份标记,称为 UID,UID 是区分用户的基本依据 ,root 用户账号的 UID 号为固定值 0,而centos7程序用户账号的 UID号默认为1~999,1000~60000 的 UID 号默认分配给普通用户使用。
GID:与 UID 类似,每一个组账号也有一个数字形式的身份标记,称为 GID ,root 组账号的 GID 号为固定值 0,而centos7程序组账号的 GID 号默认为 1~999,1000~60000 的 GID 号默认分配给普通组使用。
用户和组的关系:
用户和组是操作系统中管理用户账号的基本单位。用户是计算机系统的使用者,每个用户拥有独立的账号和密码,可以访问系统中的资源,而组则是一组拥有相同权限用户的集合,通过将用户添加到某个组中,可以方便的为用户分配相同的权限。
4.用户账号的管理
4.1 passwd
(1)/etc/passwd 用于存放用户名称,属主目录,登录Shell等基本信息
root:x:0:0:root:/root:/bin/bash
第一个root:用户名称
:x : 密码占位符
:0 : uid
:0 : gid
:root :备注信息,描述
:/root 家目录路径
:/bin/bash :shell环境
(2)passwd命令 修改密码
格式:passwd 用户名(不加用户名,修改当前用户的密码)
选项
选项 | 说明 |
passwd -d | 清空用户密码 |
passwd -l | 锁定用户 |
passwd -u | 解锁用户 |
passwd -S | 查看用户是否被锁定 |
示例:
1>passwd 修改当前用户密码
2>passwd -d 清空用户密码
3>passwd -l 锁定用户; passwd -S 查看用户是否锁定;passwd -u 解锁用户
免交互设置密码
echo "123123" | passwd zxy --stdin
4.2 /etc/shadow 存放保存密码
[root@localhost ~]# head -2 /etc/shadow
root:$6$YSBfVWay0eqtHIz1$rL5Sf0gJVz.0mSvqxy5WsNcGp21lgrKAMSv19yAjwCvUDblYjtwVjriVnaZ4m6LQWoOZD0YaM44J9AjaQ8Ro61::0:99999:7:::
bin:*:17110:0:99999:7:::
第一列:root : 用户名
第二列:$6$YSBfVWay0eqtHIz1$ : 密码
第三列:17110: 最后一次修改密码的时间
第四列:0:下次修改密码的最小天数0 不限制
第五列:99999: 密码有效期为99999天
第六列:7 :密码到期还有7天提醒你密码快到期了,宽限天数
第八列: 失效时间 永久
第九列: 保留字段未使用
组账户:/etc/group
组密码 /etc/gshadow
5.添加用户
作用:1.新建一个用户 2.修改新建用户的属性
useradd命令
基本格式:useradd [选项] 用户名
新建一个用户
1.自动建立一个 同名的基本组
2.自动建立一个同名的家目录,在/home下
选项:
选项 | 说明 |
useradd -u | 指定uid |
useradd -s | 指定的登录shell类型 |
useradd -M | 不建立家目录 |
useradd -d | 指定家目录(可以是不存在的目录) |
useradd -e | 指定失效时间 ,格式是 年-月-日 yy-mm-dd |
useradd -g | 指定基本组 |
useradd -G | 指定附加组 |
useradd -r | 随机生成一个uid1-999的用户,不建立家目录 |
useradd -c | 添加用户的描述 |
useradd -p | 密码,必须要是加密后的密码 |
示例:
(1)useradd -u 指定uid ;useradd -s指定登录shell的类型;useradd -M不建立家目录
(2)useradd -e 指定失效时间
(3)useradd -g 指定基本组
(4)useradd -r 随机生成一个uid1-999的用户,不建立家目录
(5)useradd -c 备注;添加用户的描述
6.修改用户账号的属性
usermod命令
格式:usermod [选项] 用户名
常用选项:
选项 | 说明 |
usermod -l | 更改用户账号的登录名称 |
usermod -L | 锁定用户账户 |
usermod -u | 修改用户的 UID 号 |
usermod -U | 解锁锁用户账户 |
usermod -d | 修改用户的宿主目录位置 |
usermod -e | 修改用户的账户失效时间,可使用 YY-MM-DD 的日期格式。 |
usermod -g | 修改用户的基本组名(或使用 GID 号) |
usermod -G | 修改用户的附加组名(或使用 GID 号) |
usermod -s | 指定用户的登录 Shell |
示例:
(1)usermod -l 更改用户账号的登录名称
(2)usermod -u 修改用户的 UID 号
(3)usermod -d 修改用户的宿主目录位置
(4)usermod -s 指定用户的登录 Shell
7.删除用户
userdel [选项] 用户
选项 :-r :将属主目录一起删除
示例:
8.用户账号的初始配置文件
文件来源
新建用户账号时,从/etc/skel目录中复制而来
cat /etc/default/useradd
用户宿主目录下的初始配置文件只对当前用户有效
~/ .bash_profile
#此文件中的命令将在该用户每次登录时被执行,他会设置一些环境变量,并且会调用该用户的~/.bashrc文件
~/.bashrc
#此文件中的命令将在该用户每次打开新的bash shell时(包括登录系统)被执行(登录 切换 新的bash环境)
~/.bash_logout
#此文件中的命令将在该用户每次退出时bash shell时使用
/etc/bashrc
9.添加删除组或组成员
9.1 groupadd命令
groupadd [-g GID] 组账号名#添加组
groupdel 组账号名 #删除组
9.2 gpasswd命令
gpasswd [选项] 用户名 组账号名
常用选项
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
示例:
(1)gpasswd -a 向组内添加一个用户
(2)gpasswd -d 从组内删除一个用户成员
(3)gpasswd -M 定义组成员列表,以逗号分隔
10.查询
finger命令查询用户帐号的详细信息
格式:finger [用户名]
示例
w 命令 查询已登录到主机的用户信息
常用选项
-h 不显示输出信息的标题
-s 用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
-V 显示版本信息
示例:
(1)w 查询已登录到主机的用户信息
(2)w -s 用短格式输出,不显示登陆时间,JCPU 和 PCPU 时间
(3)w 用户名
(4)w -V 显示版本信息
users查询