一、用户和组
Linux的一大特性: 多用户、多任务(所谓多用户多任务就是指可以在同一时间,有多个用户登录同一个系统执行不同的任务而互不影响)
超级用户(管理员):享有最高权限(一般为root),UID为0
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统,UID为>=1000
系统用户:别称“伪用户”,无法登录系统,其主要作业是支撑系统运行,方便系统管理,UID为1~999
这个文件存放的用户信息:
二、用户管理
1、创建用户
语法格式: useradd [参数] 用户名
最基本的创建和最基本的查看:
*: 在使用useradd创建用户的时候除了创建了用户本身还创建了用户的家目录 还有名 字跟用户相同的组 还创建了邮件文件
语法格式:useradd -s 登录shell 用户名 (用来创建用户并且指定用户能不能登录)
-s :指定登录shell,在创建用户的时候设置用户是否可以登录
注意:普通用户默认可以登录
语法格式: useradd -u 要设置的UID 用户名
-u :指定用户UID,在创建用户时,如果需要单独设置UID
注意:UID在实际应用中不允许重复
语法格式:useradd -r 要创建的用户名
useradd -r -s /sbin/onlogin 用户名
-r :指定用户为系统用户 -s /sbin/noiogin (这两个配合使用)
例子:
语法格式:useradd -M 用户名
-M :不创建家目录
注意:默认创建的普通用户有家目录,系统用户没有
语法格式:useradd -d 家目录 用户名
-d :指定家目录
注意: 这个家目录正常情况下不能存在
语法格式:su - 用户名 (用来用户切换)
exit (退回到上一个用户)
2、查看用户
cat /etc/passwd
第一列:用户名
第二列:密码占位符
第三列:UID (用户标识)
第四列:GID(组标识)
第五列:用户的描述
第六列:用户的家目录
第七列:登录shell (/sbin/bash或/bib/bash或/bin/sh用户可以登录;/sbin/noiogin用户不可 以登录)第七列含义就是通过登录shell判断当前用户是否可以登录
* 语法: id ==>sudo id要查看的用户名 (这个命令也可以查看当前用户信息) id这个命令还可以判断这个用户是否存在
whoami (获取当前系统的用户名)
例子: 包含了UID、 GID还有这个用户所属组(groups...)
查看当前系统支持哪些登录shell:
3、修改用户
语法格式:usermod -i 新用户名 旧用户名
-l :修改用户名
语法格式:usermod -s /bin/bash 用户名
-s :修改登录shell
语法格式:usermod -G 新组名 旧组名
-G :修改用户附加组 (得需要有附加组) (组有两种:一:主组;二:附加组)
-aG :给用户添加附加组
4、删除用户
语法格式:userdel -r 用户名 (加 -r 删除用户并删除用户相关所有)
注意:1、如果用户在使用; 2、如果跟这个用户关联的主组正被使用。该组无法 删除
5、设置用户密码
语法格式:交互式:passwd 用户名 (需要输入两次)
非交互式:echo "密码" | passwd --stdin 用户名
这个文件是用来存放密码
第一列代表用户,$6代表采用 的加密算法,后面就是密码
root用户切换到任何一个目录都不需要输入密码
普通用户切换到普通用户需要输入对应的密码
三、组管理
1、创建组
语法格式:groupadd 组名
语法格式: groupadd -d GID 组名 (需要指定组的GID时使用这个命令)
查看组:cat /etc/group (第一列:组名 第二列:密码占位符 第三列:GID 第四 列:组的用户)
2、修改组
语法格式:groupmod -g GID 要修改的组名
* -g :修改组的GID
语法格式:groupmod -n 新组名 旧组名
-n :修改组名
* 语法格式:gpasswd -a 用户 组名 (给组添加用户)
* 语法格式:usermod -aG 组名 用户 (给用户添加附加组)
* 语法格式:gpasswd -M 用户1,用户2,用户3... 组名 (给组添加多个用户)
* 语法格式:gpasswd -d 用户 组名 (从组中删除用户)
* 语法格式:groupdel 组名 (删除组) (用户的主组不能删,除非删除用户,组 自而然就被删了)
小练习:
四、用户提权
方案一:将用户添加到轮子组
轮子组(wheel) :用户加入到这个组后就具备了管理员的权限,可以执行管理员的命令
语法格式:gpasswd -a 用户名 wheel
方案二:visudo
1:搜索 /root
2:
3: