一、权限的概念
1.什么是权限
在现实生活中,可以通过常识确定:权限是限制人的。人=真实的人 + 身份角色,也就是权限会给不同身份的人不同限制。目标事物的属性也会影响权限。比如你不能在短视频软件上写代码,也不能在写代码软件上看短视频。总之,权限 = 人 + 事物属性。最终影响你能还是不能做一件事。
2.认识用户
Linux 下有两种用户:超级用户(root)、普通用户。
- 超级用户:可以在 Linux 系统下做任何事情,不受限制。命令提示符是'#'。
- 普通用户:在 Linux 下做有限的事情。命令提示符是'$'。
3.su 指令:切换用户
- root 用户下:
su [普通用户]可以直接切换,无需密码。- 普通用户下:直接使用
su或者使用su -,然后输入 root 账户密码即可切换。
su:只切换身份,不改变路径。su -:重新登录 root 账户,进入 root 家目录,并且显示上次登录时间。- 普通用户之间的切换:
su [用户名],然后需要输入对方账户密码(所在路径不会切换)。
快捷键:Ctrl + D
快速切换成上一个用户,本质是 exit 指令。
二、sudo 提权
如果我们想以普通用户的身份去执行更高权限的命令,就需要使用 sudo。
sudo 就是提权,获取更高权限,一般放在指令最前面使用。比如我们以普通用户创建一个文件,再使用 sudo 提权创建一个文件,可以明显看到文件属性中用户名称的变化,所以 sudo 提权本质就是以 root 身份去执行命令。
配置文件——sudoers
其实如果是新创建的用户,是无法使用 sudo 提权的。系统提示无法执行命令,并提到了一个文件——sudoers,其实这就是一个配置文件。该文件只能使用 root 账号才能打开,相当于一个白名单,只有写入了该名单的账号才能执行 sudo 指令。该文件位于 /etc/sudoers。
当我们将 user1 添加进白名单后,user1 就能正常使用 sudo 指令了。(建议学完 vim 的使用后再进行配置修改)
这样大概能理解为什么使用 sudo 需要输入当前普通用户的密码了吧,因为配置文件时 root 已经默许了,输入当前用户密码只是确认当前用户在操作。
sudo 的使用场景:
目前我们比较常见的使用场景就是下载软件时使用了。比如
sudo yum install .../sudo apt install ...
普通用户使用 sudo 并输入密码后,短时间(大概 15min)以内再次使用 sudo 是不需要输入密码的。
三、文件属性和访问权限
前面说过,权限=角色 + 事物属性,而在 Linux 中,一切皆文件,文件的属性就和权限密切相关。
1.对文件属性的基本了解
首先通过
ll就可以快速查看文件的属性。
关于后面 3 列:文件大小、修改时间、文件名,这些是我们比较熟悉的属性就不多说了。我们先具体认识一下文件类型有哪些:
- d:目录(文件夹)
- -:普通文件
- c:字符设备文件,例如屏幕等串口设备
- b:块设备文件,例如硬盘、光驱等
- p:管道文件
- l:链接文件,类似 Windows 的快捷方式


