1.用户的权限
Linux的root用户拥有最大的权限,普通用户只有在自己的HOME目录下才有各种权限,出了HOME目录之后就没有权限了,比如在HOME目录下创建文件是可以的,但是要在根目录下创建文件就不被允许
2.切换用户的命令
2.1.su命令
命令语法:su [-] [用户名] 这里的su就是switch user的缩写
- -是可选的选项,表示是否在切换用户之后加载环境变量(这个之后讲解,但最好添上)
- 用户名 参数,表示要切换的用户,不写的话默认是root用户
执行命令之后,输入密码(这个密码就是我们当前用户的密码)然后就会发现用户已经被切换成了root
2.2.exit命令
切换用户之后,可以通过exit命令回退到上一个用户,使用快捷键ctrl+d也可以
3.sudo命令
一般我们不建议长期使用root用户来执行命令,因为容易造成无法挽回的错误,所以可以使用sudo命令来为普通用户授权,临时使用root身份执行命令,但是并不是所有的用户都可以使用临时的root身份,这里需要使用root身份给普通用户授权才行
3.1.给普通用户授权
- 切换到root用户,执行visudo,会自动用vi编辑器打卡:/etc/sudoers
- 在文件最后添加:想要授权的用户名 ALL=(ALL) NOPASSWD: ALL (使用sudo命令无需密码)
- 使用:wq保存退出
- 切换回原来的普通用户
4.用户、用户组
- 在Linux用户管理模式下,支持多用户,多用户组,用户加入多用户组
- Linux权限管控的单元是用户级别和用户组级别,也就是说可以针对某个用户或者用户组来进行权限的分配
上图表示,在Linux权限管理模式中,可以存在多个用户,其中这些用户可以被分成多个用户组,并且同一个用户可以加入多个用户组
4.1.用户组相关命令
以下命令必须以root管理员的身份来执行,否则不起作用
- groupadd 用户组名 创建用户组
- groupdel 用户组名 删除用户组
4.2.用户相关命令
也是同样的, 以下命令必须以root管理员的身份来执行,否则不起作用
4.2.1.创建用户
useradd [-g -d] 用户名 创建用户
- -g 指定用户的组,如果不添加,则会创建一个与用户同名的用户组,并且让该用户自动加入,通过-g指定的组必须存在
- -d 指定用户HOME目录的路径,如果不添加,则默认路径就是/home/用户名
上面这行命令表示,用临时管理员的身份创建一个test用户,并且把它放在itcast这个用户组里,而且指定它的HOME路径是/home/test1
- 如果不加-g的话,则系统会创建一个test用户组,并且让test这个用户自动加入
- 如果不加-d的话,则系统会默认test用户的HOME路径是/home/test
4.2.2.删除用户
userdel [-r] 用户名 删除用户
- -r 表示删除用户的时候,也会连带的把这个用户的HOME目录删除,不添加的话,只会删除用户,但是其所属的HOME目录不会删除
4.2.3.查看用户所属的组
id [用户名] 查看用户所属的组
- 用户名 参数,指定要查看的用户,如果不添加则查看自身
4.2.4.修改用户所属的组
usermod -aG 用户组 用户名 将指定用户加入指定的用户组
上面这行命令表示,将xioaming这个用户添加到itheima这个用户组里,但是注意,将他添加到itheima用户组里,不代表他要脱离之前所属的组,而是这两个组他都加入,上面介绍的时候也说过,同一个用户可以加入多个组
5.getent命令
使用getent命令,可以查看当前系统重有哪些用户
命令语法:getent passwd
通过getent passwd查找到的用户,这里我随便找了一个用户信息,从左到右的信息依次是:
用户名:密码(x):用户id:用户组id:描述信息(无用):HOME路径:执行终端
getent group 查看系统全部的用户组信息
显示的信息,从左至右依次是,组名称,组认证(显示为x),组id
6.查看权限控制信息
我们通过ls -l命令可以查看各个文件/文件夹的权限内容
- 第一个红框 表示文件、文件夹权限控制信息
- 第二个红框 表示文件、文件夹所属用户
- 第三个红框 表示文件、文件夹所属用户组
6.1.权限信息
在第一个红框中,表示的是文件,文件夹的权限信息,那么这具体该怎么来认呢?
- 权限细节主要分10个槽位,其中详细信息如下:
其中,第一个槽位的信息,-表示文件,d(directory)表示文件夹,l表示软链接
这里来举个例子:
drwxr-xr-x 这是Desktop这个文件的权限,让我们来解读下:
- 第一个槽位:d 表示这是一个文件
- 第二~四槽位:rwx 是所属用户的权限,这里的用户是itheima,r(read)代表可读,w(write)代表可写,x(execute)代表可执行
- 第五~七槽位:r-x 是所属用户组的权限,这里的用户组是itheima,表示可读,可执行该文件
- 第八~十槽位:r-x 是其他用户的权限,权限范围也是可读,可执行
r(read):
- 针对文件,可以查看文件内容
- 针对文件夹,可以查看文件夹的内容
w(write):
- 针对文件,可以修改文件内容
- 针对文件夹,可以在文件夹内,创建,删除,修改等
x(execute):
- 针对文件,可以将文件作为程序执行
- 针对文件夹,可以将工作目录更改到此文件夹,即cd命令
6.2.chmod命令
chmod命令:修改权限信息
命令语法:chmod [-R] u=rwx,g=rx,o=x 文件/文件夹
- -R 表示将文件夹内的所有内容都执行这条修改权限的命令,不加-R,则仅仅作用于该文件/文件夹
- u 表示user,用户
- g 表示group,用户组
- o 表示other,其他用户
u=rwx表示将指定文件/文件夹的权限修改成,针对用户可读、可写、可执行
g=rx表示将指定文件/文件夹的权限修改成,针对用户组可读、可执行
o=x表示将指定文件/文件夹的权限修改成,针对其他用户可执行
修改前的权限:
修改权限的命令:
修改后的权限:
6.3.使用权限的数字信号
还是针对刚刚上面的chmod命令,使用u=?,g=?,o=?显得有点太麻烦了,所以下面采用数字的方式来代替:
- rwx分别代表二进制的一位,举个例子,u=rwx,g=rx,o=x 这段命令可以更改为751,这是通过二进制换算出来的
6.4.chown命令
chown命令:修改文件,文件夹所属的用户和用户组
命令语法:chown [-R] [用户]:[用户组] 文件或文件夹
- -R 依旧和上面chmod命令的-R一样
- : 用来区分是用户还是用户组
- 注意,在执行这个命令时,用户必须是root才行
将hello2.txt文件的用户修改成xiaoming
将hello2.txt文件的用户和用户组分别修改成itheima,root