一、用户组基本概念
1、用户和组:
- 系统上的每个进程(运行程序)都作为特定用户运行
- 每个文件都由特定用户拥有
- 用户对文件和目录的访问受到限制
- 与运行中的进程相关联的用户确定该进程可访问的文件和目录
2、Linux系统每个使用者:
用户标识、密码
组:用户组、用户容器
3、用户的类别:
-
管理员
-
普通用户
-
系统用户
-
登录用户
4、使用者标识符:
UID和GID
登录主机时,输入的是用户的账号,比如root,但是Linux主机识别的只是ID,每一个文件都有属主和属组,所以每一次的登录只有两个ID,一个属主ID(User ID,简称UID),一个属组ID(Group ID,简称GID)
UID:
16bits二进制数字:0-65535
管理员:0
普通用户:1-65535
系统用户:1-499(Centos6),1-999(Centos7)
登录用户:500-65535(Centos6),1000-65535(Centos7)
名称解析:名称转换
username<-------->UID
根据名称解析库: /etc/passwd
GID:
管理员组:0
普通用户组:1-65535
系统用户:1-499(Centos6),1-999(Centos7)
登录用户:500-65535(Centos6),1000-65535(Centos7)
名称解析:
groupname<-------->GID
解析库: /etc/group
组类别2:
用户的基本组
用户的附加组
组类别3:
私有组:组名同用户名,且只包含一个用户
公共组:组内包含了多个用户
用户组group,就是具有相同特征的用户的集合体
5、密码的使用策略:
-
定期修改密码
-
密码长度不少于8位
-
应该使用大写字母、小写字母、数字和标点符号四类字符中至少三类
-
使用随机密码
6、加密算法:
-
对称加密:加密和解密使用的是同一个密码
-
非对称加密:密钥对,加密和解密使用的是一对密钥
7、算法:MD5 ,sha224 , sha256
二、用户组管理
安全上下文:进程以其发起者的身份来运行,进程对文件的访问权限,取决于发起此进程
的用户的权限。
-
groupadd命令-----添加组
命令语法:
groupadd options groupname命令选项:
-g GID:指定GID,默认是上一组的GID+1
-r:创建系统组 -
groupmod命令-----修改组属性
命令语法:
groupmod options group命令选项:
-g GID:修改GID
-n new_name :修改组名 -
groupdel命令-----删除组
命令语法:
groupdel options group -
useradd命令-----创建用户
命令语法:
useradd [选项] 登录名命令选项:
-u:指定UID
-g:指定基本组ID,组要先存在
-G:指明用户所属的附加组
-c:添加注释信息
-d:指定家目录,复制/etc/skel并重命名实现
-s:指定用户的默认shell
-r:创建系统用户
-D:显示创建用户的默认配置
例:创建一个nebula用户jerry用户指定默认shell /bin/sh,添加注释信息“helloworld”
创建新的用户时默认的配置文件为/etc/login.defs
-
usermod命令-----修改用户属性
命令语法:
usermod [选项] 登录命令选项:
-u:修改用户的ID为此处指定的新UID
-g:修改用户所属的基本组
-G:修改用户所属的附加组
-a:追加新的附加组
-c:修改注释信息
-d:修改用户的家目录
-m:与-d一起使用,把原来的家目录移动为新的家目录
-l:修改用户名
-s:修改用户的默认shell
-L:锁定用户密码
-U:解锁用户的密码 -
userdel命令-----删除用户
命令语法:
userdel [选项] 登录
-r:删除用户时和其家目录一并删除 -
passwd命令-----创建或者修改用户密码
-
passwd 修改用户自己的密码
-
passwd username 修改指定用户密码 只有root有权限
命令选项:
-l,-u 锁定和解锁用户
-d:清楚用户密码串
-e date:过期期限,日期
-n days:密码的最短使用期限
-x days:密码的最长使用期限
-w days:警告期限–stdin: 非交互式创建密码
echo “password” | passwd --stdin username
-
gpasswd命令-----创建或者修改组密码
命令语法:
gpasswd [选项]groupname命令选项:
-a username:向组中添加用户
-d username:从组中删除用户 -
newgrp命令-----临时切换指定的组为基本组
命令语法:
newgrp [-] groupname
-:会模拟用户重新登录以实现重新初始化其工作环境 -
id命令-----显示用户的ID号
命令语法:
id [option] … [user]命令选项:
-u :显示UID
-g :显示GID
-G :显示所属组ID
-n : 需要和-u -g -G 配合使用,显示名字而非ID -
chage命令-----更改用户密码过期信息
命令语法:
chage [选项] 登录命令选项:
-d date:指定密码最后修改时日期
-E date:密码到期日期,过了时间后帐号不可用
-w days:警告时间
-m days:密码可以更改的最小天数
-M days:密码保持有效的最大天数
1、创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001)
2、创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh;
3、修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍能被用户访问;
4、为gentoo新增附加组netadmin
三、解析库文件
-
/etc/passwd
7个字段 root:x:0:0:root:/root:/bin/bash 1、用户名,长度不要超过8个字符,数字字母组成 2、口令:password, shawod, 使用x占位符 3、用户的标识符UID 4、用户组的标识符GID 5、注释信息 6、用户的家目录 7、登录shell
-
/etc/shadow
root:$6$rxtW5qBw$yNHpzQxqF61aBP.4EgWwdZG32DiaRg537VnUFV0x947zXHs3VLgEi ToxwCQB1YsdqgTBlaQuP.gYirQQABoYB.:18312:0:99999:7::: 1、登录名 2、用户的加密口令,*,被锁定,!!代表过期,$6$加密算法,$rxtW5qBw$加密因子 3、口令最后一次修改时间 4、两次修改口令最小的时间间隔 5、两次修改口令最大的时间间隔 6、警告时间 7、不活动时间 8、失效时间
-
/etc/group
root:x:0: 1、组名 2、口令 3、GID 4、以他为附加组的组内用户
四、sudo命令
sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户
执行一些或者全部的root命令
sudo的主要特性:
- sudo能够限制用户只在某台主机上运行某些命令
- sudo提供了丰富的日志,详细地记录了每个用户干了什么
- sudo使用时间戳文件–日志 ,来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票(这个值可以在编译的时候改变)
- sudo的配置文件是/etc/sudoers
用法:
1、编辑/etc/sudoers, 使用visudo编辑
2、用户需要是登录用户,并且启用密码
3、在普通用户下 sudo commond username
例:创建新用户 user01, 让它能够使用useradd命令添加用户user02