大家好,今天给大家介绍一下Linux 用户-用户组-权限:
在我们首次安装 linux操作系统中,会创建一个账户应用于登录系统,由于linux系统是一个多用户系统,所以,我们可以创建多个用户,每个用户赋予不同的权限,这样就可以实现多用户共同管理,维护系统,在linux中,有用户、用户组、权限这样的概念,并且,用户,用户组,权限 是两两多对多的关系,即一个用户可以同时,在多个组,而多个组,又对应多个权限。
1.用户的添加:
useradd user1 # 添加user1用户到系统 并且 系统 为该用户创建一个同名的用户组
useradd -m user1 # -m 表示 为user1 创建home 目录
useradd -g group_user1 user1 # 创建用户user1 并将其 添加到group_user1 组内,前提是要添加的组必须存在 否则添加失败
useradd -d 用户目录 -s 解释器 用户名 # 添加用户 并指定 用户目录 个用户解释器
id # 查看当前的用户信息 uid(用户信息) gid(用户组信息) groups(附加组信息)
id user1 # 查看 user1 用户的信息
2.用户密码的设置,用户切换、删除:
passwd # 设置当前用户密码
passwd user1 # 设置user1 用户的密码
su user1 # 切换到user1 用户 su 后面可以加 "-" su - 切换到对应的用户时候 会将当前的工作目录自动转换到 切换后的用户主目录
userdel user1 # 删除用户
userdel -r user1 # 删除用户 同时删除用户主目录 -f 表示强制删除
3.用户信息的修改:
usermod -g -G 组名 用户名 # 将用户添加到指定的组 -g 指定默认组 -G 指定附加组
例如:uermod -g -G sudo 组名 用户名 # 为用户添加 sudo 权限
usermod -G 组1,组2,组3 用户名 # 修改 该用户的附加组 为组1,组2,组3
4.新建组,删除组、组修改:
groupadd 组名 # 创建 新组
groupdel 组名 # 删除组
groupmod -n 新组名 旧组名 # 组名称修改
5.用户、用户组的 配置文件,影子文件:
1> 用户 配置 文件
位置: /etc/passwd
用户影子文件位置: /etc/shadow 里面存放 加密后的用户信息 叹号表示 该用户为设置密码
含义:1.用户名 2.密码标志 3.uid(用户id) 4.GID(组id) 5.用户全名 6.家目录 7.使用的shell
2> 组 配置文件
位置: /etc/group
用户组 影子文件位置:/etc/gshadow 里面存放 加密后的用户组 信息
含义:1.组名称 2.密码标志 3.组id 4.附加用户 (多个用户用 ,隔开)
6.shell 类型 ,内置命令 外置命令:
1.常用的三种解释器:
/bin/bash
/usr/sbin/nologin
/bin/sh
2.cat /etc/shells # 查看系统的shell 种类
chsh # 修改当前用户的shell
chsh 用户名 # 该用户名所对应的 shell
3.内置命令 & 外置命令:
shell 命令 一般可分为 内置命令和外置命令,内置命令 常驻内存效率高 外置命令 则相对 内置命令 效率较低,同过 which command 若 出现 命令的位置 则为外置命令 否则为内置命令
7. 权限管理:
通过 ll命令 我们可以查看当前 目录的文件列表
- --- --- --- : 每个文件都会有这些属性:
第一个:"-" 为 d 则表示目录 否则表示 文件
后面9 个“-” 每三个 为一组 分别代表 用户 、用户组、其他用户 对该文件的权限
而每一组:分别有 r :可读 权限 w: 可写权限 x: 可执行权限
注意: 对于目录来说:r w x 则代表另外的含义:r: 可以读取 该目录的文件列表 (不能读取文件内容信息) w:可以在 该目录中进行文件的 创建或者删除 等操作 x:表示只能进入目录
1> 字母法:
chmod u/g/o/ +/-/= r/w/x 文件
u --> 用户,g -->组 ,o -->其他用户
+: 增加权限 -:删除权限 =:赋予权限
r :读 w: 写 x: 执行
2> 数字法:
100 <==> 4 <==> r 读
010 <==> 2 <==> w 写
001 <==> 1 <==> x 执行
000 <==> 0 <==>"-" 不具备任何权限
例如: chmod 751 file:即为 该文件 用户:增加 读写执行 用户组:增加读写 其他用户:增加 执行 权限
3> 修改文件所有者:
chown 新用户名 文件名 # 即将该文件 所有者修改问 新用户名
-R 表示 递归 通常 修改 该目录下的所有文件
4> 修改文件所属的组
chgrp 新组名 文件名 # 即 将该文件 所属的组修改为新组
-R 表示 递归 通常 修改 该目录下的所有文件