Linux 账号和权限管理
1、账号
-
账号信息存放文件
/etc/passwd #账号信息/etc/shadow #密码信息cat /etc/passwdroot0root:/root:/bin/bash字段1:root(用户登录名)字段2:x(密码占位符)字段3:0(用户的UID)字段4:0(用户的GID)字段5:root(用户的显示名)字段6:/root(用户的家目录)字段7:/bin/bash(用户登录的shell环境),/bin/bash表示用户可以从本地登录,/sbin/nologin表示用户无法从本地登录cat /etc/shadow
2、管理账户
-
创建账户
useradd#创建账户zhangsan,不允许本地登录,不创建宿主目录,指定UID为1500,指定GID为1200,加入root组useradd -s /sbin/nologin -M -u 1500 -g 1200 -G root zhangsan#创建账户lisi,指定lisi的家目录为/lisi,指定账户失效时间2024-8-30useradd -d /lisi -e 2024-8-30 lisi创建用户如果不指定uid或gid,第一个用户默认是1000
-
修改账户
usermod#修改用户的宿主目录,需要提前将源宿主目录移动到目标位置再进行修改,将lisi的宿主目录修改为/home/lisi,原宿主目录在/lisimv /lisi /home/usermod -d /home/lisi lisi#锁定用户账户(实际是锁定用户密码)usermod -L lisi#解锁用户账户,如果用户没有密码是无法解锁usermod -U lisi -
给用户设置密码
passwd#锁定用户密码passwd -l lisi#解锁用户密码passwd -u lisi#清空用户密码passwd -d lisi#查看用户状态passwd -S lisi#设置用户密码[root@CentOS7-1 ~]# passwd lisi更改用户 lisi 的密码 。新的 密码:无效的密码: 密码少于 8 个字符重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。#设置用户密码,从文件中直接提取内容给用户作为密码passwd wangwu --stdin < pass.txt -
删除用户
userdel#删除用户时同时删除宿主目录userdel -r wangwu
3、管理组
-
组文件
cat /etc/grouproot0:zhangsan字段1:组名字段2:密码占位符字段3:组id字段4:组中的用户 -
创建组:在创建用户时会自动创建和用户名相同的组名
groupadd#创建xiaoshoubu组,指定gid为2000groupadd -g 2000 xiaoshoubu -
删除组
groupdel#删除组,如果有用户的gid为该组,则无法删除groupdel xiaoshoubu -
组中添加用户
gpasswd#添加成员,-a只能一次添加一个用户gpasswd -a user1 xiaoshoubu#删除组成员gpasswd -d user1 xiaoshoubu#重新指定组中成员,原本在组中的成员将不存在gpasswd -M user2,user3,user4 xiaoshoubu
管道
| #将前面命令操作的结果作为后面命令的操作对象(参数)cat /etc/passwd | wc -lgrep -v "^$" /etc/ssh/sshd_config | grep -v "^#"
重定向
> #标准重定向,将前面命令的操作结果写入到后面文件中,会覆盖原有内容>> #附加重定向,将前面命令的操作结果写入到后面文件中,在原有内容后面附加内容2> #错误重定向,只写入命令执行结果的错误信息&> #不管正确还是错误都写入文件中,会覆盖原有内容&>> #不管正确还是错误都写入文件中,不会覆盖原有内容< #标准输入,将后面文件内容输入到前面
4、查看用户信息
-
查询用户所属的组
groups[root@CentOS7-1 ~]# groups zhangsanzhangsan : zhangsan xiaoshoubu -
查看用户身份标识
id[root@CentOS7-1 ~]# id zhangsanuid=1000(zhangsan) gid=1000(zhangsan) 组=1000(zhangsan),1001(xiaoshoubu) -
查看当前系统已登录的用户
finger #需要安装finger软件包w -
查看历史登录账户
last #历史登录成功的lastb #历史登录失败的
5、文件权限
-
在Linux系统中针对文件权限主要分为三类:r(读)、w(写)、x(执行),使用文件的对象:属主(文件所有者的权限)、属组(文件所处的组的权限)、其他人(除前面两类都是其他人)
-
设置权限
chmod[root@CentOS7-1 /]# chmod g+w /2.sh #增加权限[root@CentOS7-1 /]# chmod g-w /2.sh #减去权限[root@CentOS7-1 /]# chmod g=rw /2.sh #赋予对应权限g 表示数组
u 表示属主
o 表示其他人
a 表示所有人(包括属主、属组、其他人)
-
设置权限也可以采用8进制数字表示
#文件权限chmod 664 #属主和属组是读写,其他人只读chmod 644 #除属主外其他人都是只读chmod 640 #属主是读写,属组是只读,其他人没有权限#文件夹权限chmod 755 #除属主外其他人只读,对标文件权限的644chmod 750 #对标文件权限的640 -
设置文件的属主和属组
chownchown zhangsan woniuxy #只改变属主chown :zhangsan woniuxy #只改变属组chown zhangsan:zhangsan woniuxy #都改变