root用户
root用户(超级管理员)
无论是Windows、MacOS、Linux均采用多用的管理模式进行权限管理
- 在Linux系统中,拥有最大权限的账户名为:root(超级管理员)
- 刚开始学习的时候,大多时间都是用的普通用户模式下进行操作的
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的
-
使用普通用户在根目录下创建文件夹
-
切换到root用户后,继续尝试
-
普通用户的权限一般在home目录下是不受限制的
-
一旦出了home目录,普通用户只有只读和执行的权限,无权修改
su
和exit
命令
su
命令就是用于账户切换的系统命令
来源于英文单词:Switch User
语法
su [-] [用户名]
-
符号是可选的,表示切换用户后是否加载环境变量,建议加上- 参数:用户名,表示要切换的用户,当用户名省略时切换到root
exit
和Ctrl+d
都可以回退上一个用户- 使用普通用户,切换到其他用户需要输入密码,如切换到root用户
- 使用root用户切换到其他用户,无需密码,可以直接切换
sudo
命令
使用su
命令切换到root的最大权限,但是不建议长期使用root用户,避免带来系统损坏
可以使用sudo
命令,为普通用户的命令授权,临时以root身份运行
sudo 其他命令
- 在其他命令前加上
sudo
,即可为这一条命令临时赋予root授权 - 但不是所有用户,都有权使用
sudo
,需要为普通用户配置sudo
认证
为普通用户配置sudo
认证
-
切换到root用户,执行
visudo
命令,会自动通过vi编辑器打开:/etc/sudoers
-
在文件的最后添加:
用户名 ALL=(ALL) NOPASSWD:ALL
NOPASSWD:ALL
表示使用sudo
命令,无需输入密码
-
最后
:wq
保存 -
切换到普通用户
-
执行的命令,均以root运行
用户、用户组管理
用户、用户组
Linux系统中可以
- 配置多个用户
- 配置多个用户组
- 用户可以加入多个用户组中
Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的权限控制
- 针对用户组的权限控制
比如,针对某个文件,可以控制用户的权限,也可以控制用户组的权限
用户组管理
以下命令需root用户执行
- 创建用户组
groupadd 用户组名
- 删除用户组
groupdel 用户组名
创建一个itcast
用户组:groupadd itcast
用户管理
以下命令需root用户执行
-
创建用户
useradd [-g -d] 用户名
-
选项:
-g
指定用户的组,若不指定-g
,则会创建同名组并自动加入,指定-g
需要组已经存在,如果已经存在同名组,必须使用-g
-
选项:
-d
指定用户home路径,若不指定,则home目录默认在:/home/用户名
-
-
删除组
userdel [-r] 用户名
- 选项:
-r
,删除用户的home目录,若不使用-r
,删除用户时,home目录保留
- 选项:
-
查看用户所属组
id [用户名]
- 参数:用户名,被查看的用户,如果不提供则查看自身
-
修改用户所属组
usermod -aG 用户组 用户名
- 将指定用户加入指定用户组
getent
getent
命令可以查看当前系统中有哪些用户
语法
getent passwd
共有7分信息,分别是:
bowen:x:1001:1001::/home/bowen:/bin/bash
#用户名:密码(x):用户ID:组ID:描述信息(无用):home目录:执行终端(默认bash)
getent
命令,查看当前系统中有哪些用户组
语法
getent group
包含3份信息
jiaqi:x:1000:jiaqi
itcast:x:1001:jiaqi
#组名称:组认证(显示为x):组ID
查看权限控制
认知权限信息
通过ls -l /
可以以列表形式查看内容,并显示权限细节
- 序号1,表示文件、文件夹的权限控制信息
- 序号2,表示文件、文件夹所属用户
- 序号3,表示文件、文件夹所属用户组
解析一下序号1,权限细节
权限细节总共分为10个槽位
举例:drwxr-xr-x
,表示:
- 首字母
d
表示这是一个文件夹 - 所属用户权限有:r、w、x(可读、可写、可执行)
- 所属用户组权限有:r、x(可读、可执行)
- 其他用户权限有:r、x(可读、可执行)
rwx
r
读权限w
写权限x
执行权限
针对文件、文件夹的不同
r
,针对文件可以查看文件内容- 针对文件夹,可以查看文件夹内容,例如
ls
命令
- 针对文件夹,可以查看文件夹内容,例如
w
,针对文件表示可以修改此文件- 针对文件夹,可以在文件夹内:创建、删除、改名等操作
x
,针对文件表示可以将文件作为程序执行- 针对文件夹,表示可以更改工作目录到此文件夹,即
cd
进入
- 针对文件夹,表示可以更改工作目录到此文件夹,即
修改权限控制-chmod
chmod
命令
使用chmod
命令,修改文件、文件夹的权限信息
注意:只有文件、文件夹的所属用户或root用户可以修改
语法
chmod [-R] 权限 文件或文件夹
- 选项:
-R
,对文件夹内部的全部内容应用同样的操作
示例
#将hello.txt文件权限修改为:rwxr-x--x
chmod u=rwx,g=rx,o=x hello.txt
- 其中:u表示user所属用户权限,g表示group组权限,o表示other其他用户权限
#将文件夹test以及文件夹内的全部内容的权限设置为:rwxr-x--x
chmod -R u=rwx,g=rx,o=x test
权限的数字序号
权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其他用户权限。
数字的细节如下:r
记为4,w
记为2,x
记为1,可以有:
- 0:无任何权限,即
---
- 1:仅有
x
权限,即--x
- 2:仅有
w
权限,即-w-
- 3:有
w
和x
权限,即-wx
- 4:仅有
r
权限,即r--
- 5:有
r
和x
权限,即r-x
- 6:有
r
和w
权限,即rw-
- 7:有全部权限,即
rwx
所以751表示:rwx(7)r-x(5)--x(1)
修改权限控制-chown
chown
命令
使用chown
命令,可以修改文件、文件夹的所属用户和用户组
普通用户无法修改所属为其他用户或组,所以此命令只适用于root用户执行
语法
chown [-R] [用户][:][用户组] 文件或文件夹
- 选项,
-R
,同chmod
,对文件夹内全部内容应用相同规则 - 选项,用户,修改所属用户
- 选项,用户组,修改所属用户组
:
,用于分隔用户和用户组
示例
- 将hello.txt所属用户改为root
chown root hello.txt
- 将hello.txt所属用户组修改为root
chown :root hello.txt
- 将hello.txt所属用户改为root,所属用户组改为jiaqi
chown root:jiaqi hello.txt
- 将文件夹test的所属用户修改为root并对文件夹内容应用相同规则
chown -R root test