一、用户、用户组和权限的基本认识
Linux用户分为三种类型:root用户,UID=0;系统用户,UID=1~999;普通用户,UID=1000+。
用户和用户组的关系:一个用户必须至少属于一个用户组,可以同时属于多个用户组,一个用户组可以拥有多个用户。
权限系统:Linux中权限分为读(r)、写(w)、执行(x),它们对文件和目录的含义略有不同,读权限可以查看文件内容,或列出目录内容,写权限可以修改文件内容,活在目录中创建/删除文件,执行权限可以运行程序/脚本,或进入目录。
二、用户管理指令
用户信息保存在/etc/passwd文件中,组信息保存在/etc/group文件中,密码文件保存在/etc/shadow文件中。
1.查看当前用户信息
1.1 whoami——查看当前登录用户
1.2 id——查看当前用户的详细信息
1.3 who——查看当前登录的所有用户
1.4 last | head -10——查看用户登录历史
2.创建新用户
2.1 useradd xxx——创建用户,该命令会自动创建家目录

2.2 grep xxx /etc/passwd——查看passwd中的用户信息
2.3 useradd -M -s /sbin/nologin xxx——不创建家目录且不允许登录,-s /sbin/nologin不能分开写
passwd中属于nologin,且家目录未创建,此时是不能正常登录的
2.4 useradd -g 组名 用户名——创建用户时指定主组
2.5 useradd -G 组名,组名 用户名——创建用户时指定附加组(多个附加组用逗号分隔)
2.6 以上两条命令可以组合使用
3.创建用户密码
3.1 passwd xxx——交互式创建密码
3.2 echo "password123" | passwd –stdin xxx——非交互式创建密码
3.3 passwd -S xxx——查看密码状态
4.修改用户信息
4.1 usermod -c "xxx" 用户——修改用户描述
4.2 usermod -s /bin/zsh xxx——修改用户的登录shell(可改为/sbin/login禁止登录)
4.3 usermod -aG 组名 用户名——以追加方式将用户添加到附加组(如用-G则会覆盖原有附加组)

4.4 usermod -l xxx_new xxx——修改用户名
4.5 usermod -L/-U xxx——锁定/解锁用户账户


4.6 usermod -e xxxx-xx-xx 用户名——设置账户过期日期
5.删除用户
5.1 userdel xxx——删除用户但保留家目录,一般不使用此条指令
5.2 userdel -r xxx——删除用户及其家目录和邮箱
6.用户组管理
6.1 groups——查看当前用户所属组
6.2 groups xxx——查看指定用户所属组
6.3 cat /etc/group——查看所有组
6.4 grep xxx /etc/group——查看指定组信息
7.创建用户组
7.1 groupadd xxx——创建普通用户组
7.2 groupadd -g 数字 组名——创建指定GID的组
7.3 groupadd -r xxx——创建系统组
8.修改用户组
8.1 groupmod -n new_xxx xxx——修改组名
8.2 groupmod -g 数字 xxx——修改GID
9.用户组成员管理
9.1 useradd -aG 组名 用户名——将已有用户添加到组
9.2 gpasswd -a/-d 用户名 组名——将用户添加/移除组
10.删除用户组
groupdel xxx——删除组,注意无法删除用户的主组,如需删除请先修改用户主组或删除用户
11.权限管理
11.1 chmod u=rwx,g=rwx,o=rwx xxx——精确添加权限
11.2 chmod 777——数字方式添加权限(r=4,w=2,x=1,数字相加代表多个权限,以所有者、所有组、其他用户的顺序授权)
11.3 chmod -R 755 dir——递归修改目录及其内容的权限
12.修改文件所有者和所属组
12.1 chown 用户名 文件名——修改文件所有者
12.2 chgrp 组名 文件名——修改文件所属组
12.3 chown 用户名:组名 文件名——同时修改所有者和所属组
12.4 chown :组名 文件名——使用chown修改所属组
12.5 chown -R 用户名:组名 目录名——递归修改目录及其内容
小结
本章节内容较为繁琐,命令容易混淆,建议加强训练,多敲几次总能记住。






