用户和组管理
要想对用户和组的管理有更深入的了解,应该先了解相应的概念,然后对相应的命令进行记忆和操作,记住要多加练习。
一、相关知识
UNIX操作系统:是通过多用户、多任务环境实现的
密码:验证用户身份的凭证;
权限:界定不同的使用者本身所能够操作的资源的范围的
SAM数据库:用来验证用户密码、存储密码和用户,是强加密文件
linux用户密码存放实现加密:
MD5:Message Degist 信息摘要,数据的指纹,数据特征码;唯一标识一段数据的;
① 单项加密:只能根据特征码取得数据,不能通过特征码还原数据;
特征:1、雪崩效应:避免防暴力破解;
2、 输入数据是任意大小,输出数据是定长的
② 采用单项加密技术
例:MD5(输出数据128bit) ----linux当中用户是通过MD5加密
SHA1(输出数据160bit)---------安全哈希算法
SHA256(输出数据256bit)
长度越长,安全性越好,计算时间越长,效率越低
二、用户与组
1、用户
用户:是获取特定资源的集合,权限集合的映射,是权限的集合,是获取资源的凭证
uid(user identification):是用户的标识符,是用来识别用户
用户名:可公开,是用户的外部表示;
用户:管理员-----------root ID=0
系统用户--------ID=1-499; 让后台进程运行所给的用户
普通用户--------ID>=500
用户信息存放在文件/etc/passwd中,可用命令id来查询用户标志。
2、组
组:group ,是具有某种联系或关系的用户集合,需要密码
组名:是组的外部表示
GID :是组的标识符
组:由多个用户组成,用于实现权限的分类;组是权限的容器
组:两种分类方式:1.私有组,系统组,公共组
2. 基本组,额外组(附加组)
用户组信息存放在文件/etc/group中,可用命令id来查询用户组标志。
安全上下文:发起的命令由进程运行,以发起者的身份运行;
3、权限
文件权限:r------读 w------写 x:-------执行
目录权限:r-------查看ls w-----建立或删除文件 x---cd换至此目录,或者ls -l 文件
二进制表示:--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
用户:/etc/passwd 644
密码:/etc/shadow 400
组: /etc/group
组密码:/etc/gshadow
/etc/passwd -----系统用户数据库文件,包括系统内所有已经注册用户的信息;格式:
username:[password]:uid:pid: CECOS:[comment]:dir:[shell]
username------用户名,以字符开头,不使用大写字母
password-----密码;在redhat系统中设置为“x”
uid----用户标识号
pid-----用户组标识号
CECOS:补充信息
comment-----说明域,包括用户详细信息说明;不能包含冒号,可以为空
dir------用户家目录$HOME,即用户登录成功后的工作目录或当前目录
shell------shell程序,默认是/bin/bash
/etc/shadow----影子密码文件,启动时,用于存放系统内用户的加密后的密码和用户登录控制信息;密码最短使用时间:不做限制(尽可能的指定密码):密码过期的警告时间:密码过期之后必禁用:明确密码禁用:目前尚未使用
username:password:lastchanged:minimum:maximum::::
username------与passwd内容对应的用户名
password-------加密后的密码;为空,表示无密码;当开头的两个字符为“!!”,标识用户被上锁没加密,不允许登录;一般情况下,新创建的用户是被上锁的
lastchanged-----从某天(19700101)到上次修改密码时间的间隔天数
minimum-----必须修改密码的天数间隔,密码最短使用期限;默认为0
maximum-----新密码的最长有效天数;不做限制(尽可能的指定密码)
warndays-------密码过期的警告时间
密码过期之后必禁用
明确密码禁用
目前尚未使用
/etc/group----组定义文件,格式:
groupname:password:gid:userlist
groupname---组名
password-----组密码;为空,则不需要密码;在redhat系统中设置为“x”,可用gpasswd设置密码,并有newgrp等命令使用
gid------组标志号
userlist------组成员元,为以逗号分隔的用户;附加组
#cat /etc/shells----用户的合法shell
/sbin/nologin-------禁止用户登录
用户管理命令:
useradd-------添加用户
用法:#useradd USERNAME
选项: -u UID-----指定UID
-g GID------指定GID,组事先存在;如果组不存在,会报错
-c "string" --------- 注释,说明;不含“:”,和回车的长度<512的字符串
-d PATH ----------- 指定家目录,创建家目录在/home目录下;家目录不存在
-s SHELL---------指定shell /etc/shells
-G grp1,grp2,…-----------指定附加组
-M ----------不创建家目录
-m ----------创建家目录
-D -----------设置默认值
-b HOMEPATH --------家目录,默认指定
-s SHELL---------默认指定
/etc/group 以此附加组用户列表
添加用户,背后做的工作:
添加一行:/etc/passwd | /etc/shadow | /etc/group /home/USERNAME---环境配置文件
添加用户的默认值的位置--------- /ect/defult/useradd
用户设置密码: passwd USERNAME
用法:passwd USERNAME
选项:-l-------锁定指定用户账号
-u-------解锁用户账号的锁定
--stdin 实现在管道中传递的,实现密码和用户使用同一个名
eg: echo redhat | passwd –stdin gentoo
-n-----密码最短使用期限
添加密码时用户属性的默认值的位置---------/etc/login.defs添加密码时
#cd /etc/skel---- 用户的环境变量
$1$:1代表UID5
bc-----------计算器
scale=2 精度的多少
pwck------检测文件密码是否仍然在有效期内
#less/etc/login.defs:UID\GID的最大值和最小值
用户帐号管理;修改相关信息:
chfn USERNAME----------改变finger信息
chsh USERNAME-----------改变shell
usermod------------用户修改的相关信息
-u UID
-g GID
-G 附加组存在会覆盖 -a -G 追加附加的组
-c----------注释
-d 家目录 -------家目录不存在 -m –d--------
-s SHELL
-l NEWLOGNAME-------改变用户名,登录名
-L 锁定用户账号
-U 解锁用户账号
-o 两个用户可以使用同一个账号
-e 用户帐号的锁定时间,失效时间
chage --------- 改变用户密码的失效时间
-m 最短使用时间
userdel -----------删除用户
-r 删除用户和家目录
finger USERNAME--------显示用户的名称,是否登录
id -----------显示用户的标识信息
用法:id USERNAME
选项:-u ----------显示uid
-g-----------显示gid
-G--------显示groups
-n -------- 显示名字
关于组的相关信息:
groupadd
-g GID
-r 把此组添加为系统组
groupmod 修改组信息
-g 修改GID
-n 修改组名
groupdel---------删除组
gpasswd GRPNAME----------添加组密码
newgrp-------登入另一个组