无论是Windows MacOS 还是 Linux 均采用多用户的管理模式进行权限管理
在Linux中,拥有最大权限的账户名为:root
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限都是受限的
比如: 普通用户无法在根目录下创建文件夹 但是root用户可以
普通用户的权限,一般是在其home目录内不受限,但是除了home 大多数文件只有查看权限
su命令就是用于账户切换的系统命令 Switch User
语法 su [-] [用户名]
-符号是可选的 ,表示是否在切换用户后加载环境变量 建议带着
参数是用户名 , 省略参数就是进root
切换用户后 可以通过exit/ctrl+d 回退到上一个用户
普通用户,切换到其他用户要密码 但是root 到其他用户不需要
而在正常使用时 我们如果长期使用root 可能会因为操作不当带来系统损坏 因此有sudo命令
语法 sudo 其他命令
在其他命令之前 加上sudo 即可为这一条命令临时赋予root权限
但并不是所有用户都有权利使用sudo 我们需要为普通用户配置sudo认证
为普通用户添加sudo认证:
1. 切换到root 用户 执行visudo命令 会自动通过vi编辑器打开/etc/sudoers
2. 在文件最后添加 用户名 ALL=(ALL) NOPASSWD: ALL
NOPASSWD: ALL 表示使用sudo不用密码
3. 切换回刚才的刚添加的用户
Linux系统中可以
配置多个用户
配置多个用户组
一个用户可以加入多个用户组
Linux 中关于群贤的管控级别有两个界别 分别是
针对用户的权限控制
针对用户组的权限控制
比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限
所以 我们要学习在Linux中进行用户,用户组管理的基础指令,为后面学习权限控制打下基础
ps:配置用户 用户组的命令需要root来完成
用户组:
创建用户组 groupadd 用户组名
删除用户组 groupdel 用户组名
用户
创建用户 useradd [-g -d] 用户名
选项-g 指定用户的组 不指定-g 会创建同用户名的组并自动加入 ,指定-g需要组已经存在,如已存在同名组 , 必须使用-g
选项 -d 指定用户后母路径 不指定 home目录默认在 /home/用户名
参数直接写在选项后面就ok了
删除用户 userdel [-r] 用户名
选项 -r 删除用户的houme目录 不适用-r 删除用户时 home目录保留
查看用户所属组 id [用户名]
参数 : 用户名,被查看的用户 ,如果不提供则查看自身
修改用户所属组
usermod -aG 用户组 用户名
getent passward 查询当前系统有哪些用户
展示 用户名:密码(x):用户id:组ID:描述信息:home目录:终端
getent group 显示组
展示 组名:组认证:组id
通过ls -l 可以在列表展示内容,并显示权限信息
展示的是 文件/文件夹的权限控制信息 . 一个不知道什么数字 文件/文件夹所属用户 文件/文件夹所属用户组 大小 创建时间 名字
首先是权限细节 权限细节共十个槽位 分四部分 第一部分表示他是什么类习惯 2:所属用户权限,3:所属用户组权限 4:其他用户权限 分别都有 rwx,没有权限用-表示
如 d rwx r-x r-x
r:读权限,针对文件可以查看文件内容 针对文件夹:可以查看文件夹内容
w:写权限 针对文件:表示可以修改文件 针对文件夹:创建,删除,改名等操作
x:执行权限 针对文件:表示可以将文件作为执行程序 针对文件夹:表示可以更改工作目录到此文件夹,即cd
chmod:我们可以使用chmod命令,修改文件,文件夹的权限信息 - 只有文件所属用户或root才可以修改
语法 chmod [-R] 权限 文件或文件夹名
选项-R 对文件夹内部的全部内容应用同样的操作
如
chmod u=rwx,g=rx,o=x test.txt 表示将文件权限修改为 rwxr-x--x
还有简便写法 如
chmod 751 test.txt
chown :可以修改文件 文件夹 的所属用户和用户组
语法: chown [-R] [用户 ][:][用户组] 文件或文件夹
-R 同chmod 对文件夹内全部内容应用相同修改
普通用户无法修改所属为其他用户或组,所以此命令只适用于root