1.Linux下的两种用户
- 超级用户:可以在Linux系统下任何事情,不受限制,命令提示符是"#"
- 普通用户:在Linux下做有限的事情,命令提示符是"$"
指令:su [用户名],切换用户
例子:su user1,切换到user1;su root(或者su),切换到root;平级或向高级切换用户密码,root向低级切换就不用输入用户密码。指令:sudo 执行操作,对普通用户执行一条指令进行提权,即在当前普通用户使用root权限进行操作,而不切换到root用户,需要输入root用户密码。
2.Linux权限管理
2.1文件访问者的分类(人)
- 文件和目录的所有者:u--User--拥有者
- 文件和目录的所有者所在的组的用户:g--Group--所属组
- 其他用户:o--Others--others
这样分类是为了更细粒度的权限管理
2.2文件类型和访问权限(事物属性)
一个文件或目录,拥有者和所属组分别只有一个,other是其他访问的人,可以有多个。
a、文件类型
- d:目录
- -:普通文件
- l:软链接(类似Windows的快捷方式)
- b:块设备文件(例如硬盘,光驱等)
- p:管理文件
- c:字符设备文件(例如屏幕等窗口设备)
- s:套接口文件
b、基本权限
- 只读(r / 4):对文件而言,具有读取文件内容的权限;对于目录而言,具有浏览该目录信息的权限(如果目录没有可读权限,仍然可以进入到这个目录里面,还可以在该目录下创建文件,但不可以查看目录里面的内容)
- 只写(w / 2):对于文件而言,具有修改文件内容的权限;对于目录而言,具有删除移动目录内文件的权限(如果没有可写权限,可以进入目录和查看目录内容,但不可以创建删除文件)
- 可执行(x / 1):对于文件而言,具有执行文件的权限;对于目录而言,具有进入目录的权限(如果没有可执行权限,不可以进入到这个目录里面,能否进入目录与rw无关,只与x有关)
- '-':表示不具有该项权限
2.3文件权限值的表示方式
字符表示方法:
Linux表示 | 说明 | Linux表示 | 说明 |
---|---|---|---|
r-- | 只读 | -w- | 只写 |
--x | 只执行 | rw- | 可读可写 |
-wx | 可写可执行 | r-x | 可读可执行 |
rwx | 可读可写可执行 | --- | 无权限 |
8进制数值表示方法:
权限符号(读写执行) | 八进制 | 二进制 |
---|---|---|
r-- | 4 | 100 |
-w- | 2 | 010 |
--x | 1 | 001 |
rw- | 6 | 110 |
r-x | 5 | 101 |
-wx | 3 | 011 |
rwx | 7 | 111 |
--- | 0 | 000 |
如何判定一个用户是文件的哪种文件访问者?
按拥有者 -> 所属组 -> other的顺序进行判定且只能判定一次,判定成功后就不会往下判定,比如一个用户是文件的拥有者和所属组,但判定该用户为拥有者。
2.4文件访问权限的相关设置方法
权限 = 访问者 + 访问权限
更改权限:更改访问者 或者 更改文件权限属性
更改文件/目录的访问权限:
指令:chmod [参数] 权限 文件名
chmod 身份缩写+权限 文件 -> 对应身份增加权限
chmod 身份缩写-权限 文件 -> 对应身份减少权限只有文件的拥有者和root才可以改变文件的权限
chmod命令权限值的格式:
1.用户表示符 +/-/=权限字符:
- +:向权限范围增加权限代号表示的权限
- -:向权限范围取消权限代号表示的权限
- =:向权限范围赋予权限代号所表示的权限
- u:拥有者
- g:所属组
- o:其他用户
- a:所有用户
- 例子:chmod u+w file
chmod a-x file2.三位8进制数字:
用八进制文件权限值来表示每种访问者的访问权限
例子:chmod 664 filechmod 640 file
注意:修改一个文件有可执行权限,也不一定可以执行,还得需要文件本身就是可执行文件;可执行文件把文件的可执行权限禁止了,也不能执行了。
更改文件/目录的拥有者:
指令:chown [参数] 用户名 文件名
例子:chown user1 filechown -R user2 file(-R递归修改)
更改文件/目录的所属组:
指令:chgrp [参数] 所属组名 文件名例子:chgrp grp1 file
chgrp -R grp2 file1(-R递归修改)
注意:更改文件的访问权限实际上改的是文件本身,更改文件的拥有者或所属组却是把文件给别人,把文件给别人需要征得别人的同意(root可以直接给别人,普通用户不可以),所以需要使用sudo,使用root权限强制把文件给别人。
2.5 文件掩码
文件掩码(File Mask)是一种用于定义文件和目录的权限的设置,它决定了新创建的文件或目录的默认权限设置。
文件权限由三种类型的用户访问控制(所有者、所属组、其他用户)组成,每种类型都有读、写和执行三种权限。文件掩码通过掩盖某些位来限制这些权限的设置。例如,掩码可以阻止新文件被赋予可写权限,或者限制某个目录的可见性。文件掩码通过限制文件和目录的默认权限,帮助系统管理员管理安全性和访问控制。
文件掩码通常是一个三位八进制数字,表示权限位的掩盖。每位可以是0到7之间的数字,具体含义如下:
- 0:不掩盖任何权限
- 1:掩盖执行权限
- 2:掩盖写权限
- 4:掩盖读权限
假设当前的掩码是022,这意味着:
- 对于新创建的文件(默认权限通常是666,即rw-rw-rw-),掩码022会使其权限变为644(rw-r--r--)。
- 对于新创建的目录(默认权限通常是777,即rwxrwxrwx),掩码022会使其权限变为755(rwxr-xr-x)。
查看或修改文件掩码:
新建文件默认权限=0666
新建目录默认权限=0777
指令:umask, 查看文件掩码
umask 权限值, 修改文件掩码默认权限mask,文件掩码umask,实际创建出来的文件权限是:mask & ~umask(即mask - umask)
3.file指令
辨识文件类型
指令:file [选项] 文件或目录
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
-z 尝试去解读压缩文件的内容
4.粘滞位
场景:多个用户共享同一个目录,每个用户可以在该目录创建文件,且每个人都能可读可写,但不能删除别人的文件,只能删除自己的文件。
将目录设置为粘滞位
指令:chmod -t 目录
被设置为粘滞位的目录,该目录下的文件只能由:
- 超级管理员删除
- 该目录的所有者删除
- 该文件的所有者删除