本文将会向您介绍关于linux权限方面的内容,包括文件类型,如何切换用户、基本权限、粘滞位等等
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$
文件和文件目录的所有者:u—User
文件和文件目录的所有者所在的组的用户:g—Group
其它用户:o—Others
上一篇文章已经提到创建新用户的命令,接下来讲讲用户切换
命令:
在这篇文章里我会以Fan_558、Fan_558_tmp为用户用例
root -> 普通用户:直接切换,无需密码
格式:su + 用户名
普通用户 -> root :需要输入root的密码
格式:su -
普通用户 -> 另一个普通用户 : 需要输入所切入用户的密码
格式:su + 用户名
当使用touch命令创建文件的时候,看到文件名前面一串信息,是不是很疑惑?
前面第一个字符表示的是文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
2~10个字符表示的是文件所对应用户的权限
Tips:所属组的名字用所属用户的用户名命名,可以理解为小组与组长的关系
a)chmod
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
b)chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
实例:
c)chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
实例:
chmod u+w /home/abc.txt
chmod o-x /home/abc.txt
chmod 664 /home/abc.txt
chmod 640 /home/abc.txt
chown user1 f1
chown -R user1 filegroup1
当文件拥有者不具有读r权限
加上文件的w权限
当文件拥有着不具有可执行x权限
root超级管理员,不受权限约束
我们现在来看看普通用户下一个目录或文件刚创建好时的默认权限如何
八进制下:dir目录的权限为7 7 5,test普通文件的权限为6 6 4
这里我们要引入一个概念:权限掩码(umask)是一种用于控制新建文件和目录默认权限的设置。它可以限制文件和目录的权限,以保护系统安全和用户隐私,其值是一个三位八进制数,通常表示为四个数字(忽略第一个数字)。它与文件和目录的权限进行按位与运算,从而确定新建文件和目录的默认权限。
d)umask
功能:
查看或修改文件掩码
新建文件夹默认权限=0666
新建目录默认权限=0777
但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
这样就能解释我们为什么新建的目录权限为 7 7 5,普通文件的权限为 6 6 4了
先前探究了文件的拥有者具有哪些权限才能对一个普通文件执行读写执行
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中.
直至给目录加上了x可执行权限
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
直至给目录加上了可读 r 权限
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.
场景:你和你的同事在一个公共目录下工作,由于是工作目录,(公共目录具有w权限,允许你和你的同事创建删除文件,否则就不叫公共目录了)你和你的一位同事本身关系就不好,最后他离职了,顺手把你的文件删掉了。
粘滞位通常用于公共目录,以防止其他用户删除或修改其他用户的文件。这样可以确保每个用户只能删除或修改自己创建的文件,而不能干扰其他用户的文件。
格式:chmod +t 目录名
当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除
今天的分享就到这里结束啦,如果本文存在疏漏或错误的地方,还请您能够指出。