Linux权限的概念
在Linux有两种用户,一种是超级用户:root;一种是普通用户;
超级用户只有一位,而普通用户可以无数位;
超级用户:拥有在Linux系统的所有权限,做什么事都不会被限制;
普通用户:在做一些事情时,会受到一定程度的限制;
创建新的用户
在root权限下,可以创建出新的普通用户;我们可以先用指令先辨别我们的身份:
然后输入这样的指令,即可创建一个新的用户:
接着会让你输入对应的账号密码,需要两次进行确定;
我们可以在/home目录中查询当前的普通用户:
切换用户
命令:su [用户名]
超级用户的命令提示符是“#”,普通用户的命令提示符是“$“;
接着我们可以用指令whoami来确认我们当前的用户;
普通用户视为权限都是一样的(没有特殊授权的情况下);root用户永远比普通用户高上一等;所以在普通用户之间进行切换时,需要对方用户的密码;
普通用户切换到超级用户,更需要超级用户的密码了;
指令:su -
删除用户
指令:userdel -r 用户名
删除用户的权限,只有超级用户才有的;
Linux权限管理
当我们输入指令 ll 时,就会弹出目录或者文件的详细信息;
这些信息在基本指令上粗略讲过;这次我们来详细讲解一波;
文件类型:
d:目录文件。这是很常见的文件类型,用于组织和存储其他文件。每个目录文件都包含了一个或多个目录项,每个目录项对应着一个文件或子目录。
-:普通文件。这是最常见的文件类型,包括文本文件,二进制文件、图像文件、图像文件等。所以对于Linux来说,文件是没有后缀名的。
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等):用于与块设备(硬盘、闪存等)进行交互。
p:管道文件:用于实现进程间的通信,遵循先进先出的原则。
c:字符设备文件(例如屏幕等串口设备):用于与字符设备(打印机)进行交互。
s:套接口文件:这是一种用于进程间通信的文件类型。可以使不同的进程能够通信。
文件访问者的分类
文件所有者(u:user):表示文件或目录的创建者/所有者。该用户对文件有最高的权限,可以进行读取(r:read)、写入(r:write)和执行(x:execute)的操作。
文件所有者所在组的用户(g:group):表示与文件所有者同一组的其他用户。这些用户对于文件拥有的权限与文件所有者相同,可以读取、写入和执行。
其他用户(o:others):表示除文件所有者和所在组用户之外的所有用户。这些用户对于文件的权限受到限制,可以根据权限设置进行读取、写入和执行。
文件权限的表示方法
它也可以用8进制数值的表示方法
文件访问权限的相关设置方法
chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
对于超级用户来说,它拥有所有的权限,所以即使给他去掉权限,它也可以访问:
所以这里将使用普通用户来展示:
当然也可以使用8进制数值的方式:
chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
发现同为普通用户没有改变使用者的权限;
超级用户可以;
改完之后该使用者(yhs)没有权限去修改;
而由于该目录是在yhs的目录下的,所以user2也没有办法去修改;
原因是在其他用户中没有写权限,也就是没办法去修改;
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
umask
功能:查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到
umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是mask& ~umask
将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
我们也可以修改这个掩码值,
file
功能:可以识别文件类型
语法:file [选项] 文件或目录…
目录的权限
一般来说,只要用户只要有写权限,那么他就可以去删除该文件;
那么root创建的文件,普通用户也可以进行删除吗?
究其原因是在home目录下各个用户都有权限去删除文件;
所以在Linux中,引入了粘滞位;
粘滞位
这也是一种权限标志,用于特定目录(如共享的目录)上执行的权限。当粘滞位被设置在一个目录上时,只有对该目录具有写权限的用户,文件的拥有者和root可以删除,其他用户无法删除。
将t权限删除时,t权限会变回x执行权限;
当然,一般来说我们不用设置该权限,只是要知道,在一些特殊的目录下,是拥有该权限的即可。