天天看点

Linux-用户组和权限管理

一、基本配置文件

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等
           

继续阅读