用户user和组group总体介绍
用户user
管理员:root, 0
普通用户:1-65535
系统用户:1-499(centos6), 1-999 (centos7)
对守护进程获取资源进行权限分配
登录用户:500+, 1000+ (CentOS7)
(Linux是看UID号来判断用户权限)组group
- 管理员组:root, 0
- 系统组:1-499(centos6), 1-999 (centos7)
- 普通组:500+(centos6), 1000+ (centos7)
(Linux是看GID号来判断属于哪个组)
进程所能够访问资源的权限取决于进程的运行者的身份权限,这个很容易想到。
- Linux组类别
- 用户的主要组(primary group):
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户:私有组 - 用户的附加组(supplementary group):
一个用户可以属于零个或多个辅助组
- 用户的主要组(primary group):
- 用户和组的配置文件有以下4个
/etc/passwd :用户及其属性信息( 名称、UID 、主组ID 等)
/etc/shadow :用户密码及其相关属性
/etc/group :组及其属性信息
/etc/gshadow :组密码及其相关属性
- passwd文件格式
vipw命令可以直接打开这个文件
pwck 检查配置文件语法
login name :登录用名(root) )
passwd :密码 (x)
UID号 :用户身份编号 (1000)
GID :登录默认所在组编号 (1000)
GECOS :用户全名或注释 #用命令chfn可以设置
home directory录 :用户主目录 (/home/root) #chsh命令可以指定shell,不过一般用这个就可以
shell :用户默认使用shell (/bin/bash) - shadow文件格式
登录用名
用户密码: 一般用sha512 加密
从 从1970 年1 月1 日起到密码最近一次被更改的时间
密码再过几天可以被变更(0 表示随时可被变更)
密码再过几天必须被变更(99999 表示永不过期)
密码过期前几天系统提醒用户(默认为一周)
密码过期几天后帐号会被锁定
从 从1970 年1 月1 日算起,多少天后帐号失效 - group文件格式
vigr命令可以直接打开这个文件
grpck 检查组文件语法
群组名称:就是组名
群组密码:通常不需要设定,密码是被记录在/etc/gshadow
GID:就是群组的 ID
以当前组为附加组的用户列表( 分隔符为逗号) - gshdow文件格式
群组名称:就是群组名称
群组密码:一般不设置密码,可以用gpasswd命令修改密码
组管理员列表:组管理员的列表,更改组密码和成员
以当前组为附加组的用户列表:(用逗号作为分隔符)
- passwd文件格式
用户管理命令
总的有useradd、usermod、userdel这几个,下面一一简绍:
用户创建:useradd
useradd [options] LOGIN
-u UID : [UID_MIN, UID_MAX] 定义在/etc/login.defs
-o 配合-u 选项,不检查UID 的唯一性
-g GID :指明用户所属基本组,可为组名,也可以GID
-c “COMMENT” :用户的注释信息
-d HOME_DIR: 以指定的路径( 不存在) 为家目录
-s SHELL : 指明用户的默认shell 程序,可用列表在/etc/shells 文件中,有列出可用的shell
-G GROUP1[,GROUP2,…] :为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users 组做主组
-r: 创建系统用户 CentOS 6: ID<500 ,CentOS 7: ID<1000
添加用户的默认值设定:/etc/default/useradd
附:显示或更改默认设置:
useradd -D #显示创建用户默认配置
useradd –D -s SHELL
useradd –D –b BASE_DIR
useradd –D –g GROUP
newusers passwd 格式文件(和passwd格式一样的文件) ###批量创建用户
chpasswd 格式文件 格式:tom:tompw ###批量修改用户口令
注:这两个命令一般是用于批量导入用户、修改密码用的。用户属性修改usermod
usermod [OPTION] login
-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,…[,GROUPN]]] :新附加组,原来的
附加组将会被覆盖;若保留原有,则要同时使用-a 选项
-s SHELL :新的默认SHELL
-c ‘COMMENT’ :新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m 选项
-l login_name: 新的名字;
-L: lock 指定用户, 在/etc/shadow 加 密码栏的增加 !
-U: unlock 指定用户,将 将 /etc/shadow 的 密码栏的 ! 拿掉,如果要完全解锁要两次
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限删除用户userdel
-r: 删除用户
- 查看用户相关ID信息
id [OPTION]… [USER]
-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG 使用(这几个分开和n搭配使用) 切换用户
- 切换用户的方式:
su UserName :非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
su - UserName :登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
root用户su 至其他用户无须密码;非root切换需要
标注:su加不加 - 主要看想不想切换当前工作目录,当然前提得有权限,比如从root切换到普通用户下就没有权限访问root家目录的权限。
- 切换用户的方式:
设置密码
passwd [OPTIONS] UserName: 修改指定用户的密码,仅root 用户权限,普通用户只能修改自己的密码。- 常用选项:
-l: 锁定指定用户 #这两个和usermod的功能一样,记住一个就可以
-u: 解锁指定用户
-e: 强制用户下次登录修改密码
-n mindays: 指定最短使用期限
-x maxdays :最大使用期限
-w warndays :提前多少天开始警告
-i inactivedays :非活动期限
–stdin :从标准输入接收用户密码 #这个功能比较常见而且好用。例:echo ” PASSWORD ” | passwd –stdin USERNAME
- 常用选项:
组管理命令
组管理命令有groupadd、groupmod、groupdel
创建组groupadd
groupadd [OPTION]… group_name
-g GID: 指明GID 号;[GID_MIN, GID_MAX]
-r: 创建系统组
CentOS 6: ID<500,CentOS 7: ID<1000修改删除组groupmod
groupmod [OPTION]… group
-n group_name: 组的新名字
-g GID: 新的GID组删除:groupdel
groupdel GROUP更改组密码gpasswd
gpasswd [OPTION] GROUP
-a user: 将user 添加至指定组中
-d user: 从指定组中移除用户user
-A user1,user2,…: 设置有管理权限的用户列表
newgrp 命令:临时切换主组如果用户本不属于此组,则需要组密码- 更改和查看组成员
- groupmems [options] [action]
options:
-g, –group groupname 更改为指定组,不指定默认是root组( 只有root才能这么做)
Actions:
-a, –add username 指定用户加入组
-d, –delete username 从组中删除用户
-p, –purge 从组中清除所有成员
-l, –list 显示组成员列表 - groups [OPTION].[USERNAME]… 查看用户所属组列表
- groupmems [options] [action]