一、基本配置文件
1.安全三A
Authentication :认证
Authorization :授权
Accouting|Audition :审计
用户组=主组(有且仅有一个)+附加组(可多个或没有)
2.linux用户和组的主要配置文件:
(1)/etc/passwd :用户及其属性
username:x:uid:gid:discreption:home:shell
(2)/etc/group :组及其属性
组名:组密码:组id:组成员
(3)/etc/shadow :用户密码及其相关属性
username:passwd:passwdtime:min:max:inactive:account
(4)/etc/gshadow :组密码及其相关属性
组名:组口令:组管理员:组成员
二、密码时间
1. 密码修改时间:
最短有效期(多少天不能修改密码):最长有效期:过期提示时间:延期时间(过期之后多少天还能登录去改密码):账户有效期:保留
usermod -L : 加锁
usermod -U : 解锁(centos 6之后就不允许空口令登录)
2. 加密机制:
加密:明文 --> 密文
解密:密文 --> 明文
3. 单向加密:
哈希算法,原文不同,密文必不同
相同算法定长输出,获得密文不可逆推出原始数据
雪崩效应:初始条件的微小改变,引起结果的巨大改变
设置加密类型的文件:/etc/login.defs
$6 sha512
$1 md5 128
三、用户管理
1. 创建用户
默认值设定:/etc/default/useradd–>新建用的信息默认值
useradd = adduser 两个命令都可以创建用户,效果一样
useradd zhang 创建普通用户zhang
useradd -g kun -a zhang 创建用户zhang时,指定zhang的所属组为kun
useradd -d zhang -a zhang 创建用户zhang时,指定zhang的家目录为zhang
useradd -s /bin/shell zhang 创建用户zhang时,指定用户zhang的bash是shell
useradd -G root zhang 创建用户zhang时,指定用户的附加组为root
useradd -r -s /bin/nologin zhang -r是创建系统用户,系统用户一般情况下不能登录,所以设置shell类型为/bin/shell
useradd -u 2000 zhang 创建用户zhang时,指定zhang的uid是2000
2. 删除用户
userdel zhang 删除用户zhang,只是删除了用户信息,并没有删除zhang的家目录和邮件信息
userdel -r zhang 删除用户zhang的同时,删除了zhang的家目录和邮件信息
userdel -f zhang 强制删除用户zhang
3. 修改用户
usermod
-u 新的属主
-g 新的属组
-aG 附加组,加a保留原来的属组
删除附加组:usermod -G wang wang
usermod -G "" wang
-s 新的shell
-d home 新的家目录,新家目录不会自动创建,原家目录中的文件不会同时移动至家目录;若要创建新家目录并移动原有数据,同时使用-m选usermod -d /app/home -m tom
-c 修改注释信息(chfn)
-l login_name:新的名字,其他信息都不变化
-L lock 指定用户,在/etc/shadow密码栏增加!
-U unlock 指定用户,在/etc/shadow密码栏减少!
-e YYY-MM-DD :指定用户账号过期日期
-f INACTIVE : 设定非活动期限
四. 用户组管理
groupadd zhang 创建用户组zhang
groupmod
-n group_name:新名字
-g GID :新的GID
groupdel group
gpasswd
-a user :将user添加至指定组中
-d user : 从组中移除用户
-A user1,user2:设置有管理权限的用户列表
newgrp命令:临时切换基本组
如果用户不属于此组,则需要组密码
五.密码管理
passwd
-l 锁定用户
-u 解锁用户
-e 强制用户下次登录修改密码
-n days 指定最短使用期限
-x maxdays 最大使用期限
-w warndays 提前多少天开始警告
-i inactivedays 非活动期限
--stdin 从标准输入接收用户密码
chage tom 可以改变Tom的时间信息
chfn:改用户账号的描述信息
chsh :修改shell类型 chsh -s /sbin/nologin tom
chgrp :普通用户无权限,普通用户对锁所属的组有权限 chgrp wang f1(wang下的用户)
finger:查看用户信息
批量创建用户:
创建一个文本文件,格式要跟passwd格式一样.
newusers user.txt /etc/passwd
改密码:
1.passwd zhang
2.echo password | passwd --stdin zhang &>/dev/null
3.echo zhang:password | chpasswd
4.cat file | chpasswd
要想创建的每个用户都有某个文件,就将该文件放在这个目录下,这当中写了文件默认创建的文件
cp -r /etc/skel/.[^.]* /home/list 这种方式需要手动创建/home/list
cp -r /etc/skel /home/list 这种方式不需要手动创建/home/list
六.密码管理
su username :非登录式切换,不会读取目标用户的配置文件,不改变当前工作目录
su - username :登录式切换,会读取配置文件,切换至家目录,完全切换。
su - username -c 'cat /etc/passwd' :-c可以执行命令
root用户su到其他用户不需要密码,非root切换时需要密码
七、ACL
Access Control List 实现灵活的权限管理
setfacl -m u:zhang:-w- f1 设置 acl
getfacl f1 查看acl
setfacl -m g:admins:rw f1 设置用户组admins对f1文件有读写权限
gpasswd -a xixi admins
setfacl -x u:zhang f1
setfacl -m mask::r f1 设定mask降低自定义的用户,自定义的组,所属组的权限,跟mask权限一样,所有者和其他人不在设置范围内。
ACL生效顺序:所有者,自定义用户,自定义组,其他人
setfacl set file acl
setfacl -b file 清除所有acl权限
setfacl -k dir 删除默认acl权限
getfacl file1 | setfacl --set-file=- file2 复制file1的acl权限给file2
CentOS 6 新分的分区默认不支持ACL CentOS 7支持
八.总结
Linux操作系统上面,关于账号与用户组,其实纪录的是UID/GID的数字而已。
用户账号/用户组与UID/GID的对应,参考/etc/passwd及/etc/group两个文件。
查看用户详细的密码参数,可以使用“chage-|账号”来处理
useradd命令作用参数的文件有/etc/default/useradd,/etc/login.defs,/etc/skel等
系统上面账号登陆情况的查询,可以使用w,who,last,lasting等