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


