Linux系统中包括两种主要用户类型:
切换用户命令:
su 或 su -:从普通用户切换成超级用户
Ctrl+D:退回普通用户
su/和su - 的区别:
su/:目录不变,仅切换用户身份
su -:重新登录,路径变化到新用户的家目录
sudo命令:前面加上sudo,输入普通账号密码,即可短暂提升权限。
使用场景:安装软件(到/user/bin中)
原理:为什么输入普通用户的密码可以提升权限到root?
注意:普通用户加上sudo后,如果不在白名单中,只会报错"不信任"。

作用:控制用户行为,防止错误发生。
权限机制:
Linux系统中有三种角色:
所有组的作用:假设一个文件要让同组的人看,但不想让对手看到,就可以将同组放到所有组,对手保持other。这样做可以进行更加精细化的权限管理。
文件属性包括三种权限:

当用ll查看文件的属性时,会出现如:-rw-r--r--
权限解析:
-:文件类型标识
因此文件的权限就可以用"角色+目标属性"描述。
作为拥有者,可以用chmod修改权限。
角色标识:
u:用户(拥有者)
g:所属组
o:其他用户
示例:
bash
chmod u-r test.txt # 减去拥有者的读权限
chmod u+r test.txt # 加上拥有者的读权限
重要规则:
root用户(超级用户)拥有最高权限,可以绕过普通权限限制。

可以看到,虽然对于other不能写,但是root依旧可以读写文件。
重要:拥有可执行权限 ≠ 文件可执行,还需要文件本身是有效的可执行程序。
命令:
chown:更改文件拥有者
chgrp:更改文件所属组

限制:普通用户不能直接把文件所有者改为别人,否则就乱套了,需要sudo短暂提权后才能更改。
由于rwx权限都为非黑即白,可以直接用0和1表示是否有对应的权限。
二进制表示:
r = 4 (100)
w = 2 (010)
x = 1 (001)
示例:
rw- = 110(二进制)= 6(十进制)
rw-rw-r-- = 664

快捷修改权限:
bash
chmod 664 1.txt目录权限的特殊性:
x权限(可执行权限)
r权限:查看目录的文件列表
w权限:在目录中创建、删除文件

将目录权限改为666(只保留读写)后,就无法进入了。
默认设置:创建目录时,默认给予rwx权限。
Linux用户隔离方式:只有目录的拥有者才拥有完整的rwx权限。
新建文件的默认权限:
umask(权限掩码):
umask的作用:
场景:先用root账号在普通用户路径下创建一个文件,设置成别人不可读写。

关键发现:
协作方案: 既然用户无法进入到别的用户的目录,那么如何两人一起配置文件?
粘滞位 (t):在有t属性的目录里,就算有权限也不能删别人的文件。
设置粘滞位:
bash
chmod +t tmp设置了粘滞位的目录会带上t标志。

应用场景:公共目录(如/tmp)通常设置粘滞位,防止用户误删他人文件。