目录
Linux中用户和用户组的关系
Linux是多用户多任务操作系统,Linux系统支持多个用户在同一时间内同时登录,不同的用户可以执行不同的任务并且互不影响。
不同用户具有不问的权限,毎个用户在权限允许的范围内完成不间的任务,Linux 正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。
用户管理对于组织或企业非常重要,它可以确保系统中的数据和功能仅被授权用户访问,从而保护组织或企业的隐私和安全
用户
用户类别
用户类别一般分为管理用户和普通用户,而普通用户又分为系统用户和登录用户
-
管理用户:root用户
-
普通用户:
-
系统用户:用来运行系统自带的进程,默认已创建
-
登录用户:普通用户,正常可以登陆系统的用户权限比较小能执行的任务有限
-
用户标识
多用户通过16bits二进制进行对用户的标识
-
16bits二进制数字:0-65535
-
管理员:0
-
普通用户:1-65635
-
系统用户:1-499(CentOS6),1-999(CentOS7)
-
登录用户:500-60000(CentOS6),1000-60000(CentOS7)
-
-
-
名称解析: 名称转换
-
Username <--->UID
-
根据名称解析库进行:名称解析文件为/etc/passwd
-
组
用户组,可以理解为用户的容器,通过组将多个用户进行归类
组类别
-
组类别1
-
管理员组:管理员组是一个有权管理计算机系统、网络或应用程序的群组,通常由具有高级权限的用户名和密码的专业人员组成。
-
普通用户组:普通用户组是指那些没有管理员权限的用户群体,通常由普通用户和实习生等人员组成
-
系统组:系统组通常是指那些负责维护、管理和升级计算机系统、网络和应用程序的专业人员
-
登录组:登录组通常是指那些具有登录计算机系统、网络或应用程序权限的用户群体
-
-
-
组类别2:
-
用户的基本组:用户的基本组是指用户在登录到计算机系统、网络或应用程序时所默认的登录组
-
用户的附加组:附加组是指用户可以添加到其基本组之外的分组中
-
-
组类别3:
-
私有组:组名同用户名,且只包含一个用户
-
公共组:组内包含了多个用户
-
用户标识:UserID,UID
组也是通过16bits二进制进行对组的标识
-
16bits二进制数字:0-65535
-
管理员:0
-
普通用户:1-65635
-
系统用户:1-499(CentOS6),1-999(CentOS7)
-
登录用户:500-60000(CentOS6),1000-60000(CentOS7)
-
-
-
名称解析: 名称转换
-
Username <--->UID
-
根据名称解析库进行:名称解析文件为/etc/passwd
-
认证信息
通过对比事先存储的信息,与登录时提供的信息是否一致:
-
password:
-
/etc/shadow(用户)
-
/etc/gshadow(组)
-
-
密码使用策略:
-
使用随机密码
-
最短长度不要低于8位
-
应该使用大写字母、小写字母、数字、和标点符号四类字符中至少三类
-
定期更换
-
-
加密算法:
-
对称算法:加密和解密使用同一个密码
-
非对称算法:加密和解密使用的一对密钥:
-
密钥对:
-
公钥:public key
-
私钥:private key
-
-
-
单向加密:只能加密,不能解密,提取数据特征码:
-
定长输出:
-
雪崩效应:一个系统或组织中的一小部分发生问题时,这些问题可能会迅速扩散并导致整个系统或组织的崩溃或失败
-
-
-
常见算法:
-
md5:message digest,128bits
-
sha:secure hash algorithm,160bits
-
sha224
-
sha256
-
sha384
-
sha512
-
-
再计算之前加入salt,添加随机数
-
/etc/passwd:用户的信息库
name:password:UID:GID:GECOS:directory:shell
name:用户名
password:可以是加密的密码,也可以是占位符x
UID:
GID:用户所属的主的ID号
GECOS:用户的家目录
shell:用户默认shell,登录是默认shell程序
-
/etc/shadow:用户密码
用户名:加密密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期段:过期期限:保留字段
-
/etc/group
group_name:password:GID:user_list
-
user_list:该组的用户成员:以此组为附加组的用户的用户列表:
-
相关命令
useradd、userdel、usermod、passwd、groupadd、groupdel、groupmod、gpasswd、chage、chsh、id、su......
1、安全上下文
-
进程以其发起者的身份运行;
-
进程对文件的访问权限,取决于发起此进程的用户的权限;
-
-
系统用户:为了能够让后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户;这类用户从不用登录系统
2、groupadd
-
groupadd [ 选项] group_name
-
-g GID: 指定GID:默认是上一个组的GID+1
-
-r:创建系统组
-
3、groupmod:修改组属性
-
groupmod [选项] group
-
-g GID:修改组ID
-
-n new_name:修改组名
-
4、 groupdel:删除组
-
group [选项] group
5、useradd:创建用户或更新
-
useradd [选项] 登录名
-
-u :--uid UID:指定UID
-
-g:--gid GROUP:指定基本组ID,此组需要事先存在
-
-G:--groups GROUP1[,GROUP2,...[GROUP]]:指明用户所属的附加组,多个组之间用“,”分隔开
-
-c:--comment COMMENT: 知名注释信息
-
-d:--home HOME_DIR: 以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现:指定的家目录路径如果事先存在,则不会为用户复制环境配置文件:
-
-s:--shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中
-
-r: --system:创建系统用户
-
-m:自动建立用户的登入目录
-
-M:不为用户创建主目录
-
-D:显示创建用户的默认值
-D 选项:修改默认选项
-
修改的结果保存于/etc/default/useradd文件中
-
-
6、usermod:修改用户属性
-
usermod [选项] 登录
-
-u,--uid UID修改用户的ID为此处指定新的UID
-
-g,--gid GUOUP:修改用户所属的基本组
-
-G,--groups GROUP1[,GROUP2,...[GROUP]]:修改用户所属的附加组,原来的附加组会被覆盖
-
-a,--append:与 -G一同使用,用于用户追加新的附加组,
-
-c,--comment COMMENT:修改注释信息
-
-d,--home HOME_DIR:修改用户的家目录;用户原有的文件不会被转移至新位置
-
-m,--move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录
-
-l,--login NEW_LOGIN:修改用户名
-
-s,--shell SHELL:修改用户的默认shell
-
-L,--lock:锁定用户密码;即在用户原来的密码串之前添加一个“!”
-
-U,--unlock:解锁用户的密码;解锁“!”
-
7、userdel:删除用户
-
userdel [选项] 登录
-
-r,删除用户时一并删除其家目录
-
8、passwd:密码管理
-
-
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
-
passwd:修改用户自己的密码
-
passwd USERNAME:修改指定用户的密码,但仅root有此权限;
-
-l,锁定用户
-
-u,解锁用户
-
-d,清除用户密码
-
-e,指定用户的过期期限,日期
-
-i DATE,非活动期限,时间范围
-
-n DAYS,密码的最短使用期限
-
-x DAYS,密码的最长使用期限
-
-w DAYS,警告期限
-
--stdin:
用法: echo "PASSWORD" | passwd --stdin USERNAME
-
-
9、gpasswd
-
gpasswd [选项] group
-
-a USERNAME:向组中添加用户
-
-d USERNAME:从组中移除用户
-
10、nwegrp:临时切换指定组的基本组
-
newgrp [-] [group]
-:会模拟用户重新登陆以实现重新初始化工作环境;
11、chage: 修改帐号和密码的有效期限
-
chage [options] LOGIN
-
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-
-M:密码保持有效的最大天数。
-
-w:用户密码到期前,提前收到警告信息的天数。
-
-E:帐号到期的日期。过了这天,此帐号将不可用。
-
-d:上一次更改的日期。
-
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
-
12、id:显示用户的真实和有效id
-
id [OPTION]... [USER]
-
-u:仅显示有效的UID
-
-g:仅显示基本组id
-
-G:仅显示用户所属的所有组id
-
-n:显示名称而非id
-
13、su:切换用户
-
-
登陆式切换:会通过重新读取用户的配置文件来重新初始化
-
su - USERNAME
-
su -l USERNAME
-
-
非登陆式切换:不会读取目标用户的配置文件进行初始化
-
su USERNAME
-
-
注意:管理员可无密码切换至其他任何用户
-
-c “COMMAND“ :仅以指定用户的身份与运行此处指定的命令
-
14、其他几个命令
-
chsh:用来更换登录系统时使用的shell
-
chfn:用来改变finger命令显示的信息
-
finger:用于查找并显示用户信息
-
whoami:打印当前有效的用户ID对应的名称