1. 用户类型
Linux 下有两种用户:超级用户(root)、普通用户。
超级用户:可以在 Linux 系统下做任何事情,不受限制。 普通用户:在 Linux 下做有限的事情。
超级用户的命令提示符是 #,普通用户的命令提示符是 $。
使用 su 命令切换用户。
- 从普通用户切换到 root 用户使用
su root(root 可以省略)。注意此时虽然用户切换了但家目录还是原用户的家目录,相当于在原家目录下换了一个用户。 - 从普通用户切换到 root 可以使用
su -指令,相当于重新登录,家目录发生变化。 - 可以使用
exit或Ctrl+d来返回原用户。 - 也可使用
su user直接返回普通用户,家目录不变。
总结:普通用户切换到其他用户 (包括 root) 需要输入目标用户的密码,而 root 用户切换到其它用户直接切换不需要密码。
1.2 Sudo 提权
当我们执行某条指令时需要提升权限怎么办?用指令 sudo command。
为什么提权反而是要求输入自己账户的密码?因为 root 超级用户并非人人可用,我们需要在 sudo 的配置文件 sudoers 中输入自己信息获得认可,相当于白名单。
新建的用户无法执行 sudo,除非将普通用户添加到系统信任的白名单里面。
查看配置文件权限,发现只有读权限,所以需要 root 用户来修改。打开配置文件,找到白名单条目,复制并粘贴加入自己的用户名。保存修改时使用 wq! 强制保存退出。
加入白名单后,账号就可以用 sudo 提权以 root 的身份来执行指令。
1.3 权限定义
权限就是一件事是否允许被你做。
-
权限认证的是身份(和人有关)。 人(具体用户)包括:root,普通用户。 权限身份 包括:拥有者,所属组,其他人。为什么需要所属组?因为需要组内协同的同时,不给其他人权限。 人和权限身份的关系不是割裂冲突的,而是需要相结合的,权限身份需要一定的人来承担。
-
权限也和事物的属性有关。 从文件的属性出发包括:
- r(read):读取权限,允许用户读取文件内容或列出目录中的文件。
- w(write):写入权限,允许用户修改文件内容或向目录中添加/删除文件。
- x(execute):执行权限,允许执行文件(对于目录,表示可以进入该目录)。
-:对应的权限位置,没有权限。
2. 文件类型与访问权限
文件类型:
-:普通文件:文本,可执行程序,库基本属于普通文件。d:目录文件。b:块设备文件:磁盘文件。c:字符设备文件:键盘,显示器文件。p:管道文件:用来进行通信的。
注意:Linux 系统中文件名后缀没有直接意义(不代表不适用后缀),在 Linux 系统上运行的其他软件可能需要后缀如编译器 gcc。
通过 ls -l 查看文件详细信息,可得文件对应部分的属性。
- 可以发现权限身份信息中没有其他人的信息,因为用户在访问文件前需要登录,访问时比对权限身份若既不是拥有者也不是所属组,那么就是其他人。其他人的信息太多所以没必要列举,另外 root 不受权限约束。
- 绿色事物属性的权限部分,人的权限身份和事物的属性结合起来了,每个位置是什么含义都是确定的,第一个为读,第二个为写,第三个为可执行,每个位置只有是或否具有该权限。


