【Linux】掌握Linux系统编程中的权限与访问控制
大耳朵土土垚 2024-07-27 16:07:07 阅读 70
💞💞 前言
hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
💥个人主页:大耳朵土土垚的博客
💥 所属专栏:Linux系统编程
这里将会不定期更新有关Linux系统编程有关的内容,希望大家多多点赞关注收藏💖💖
目录
💞💞 前言1.Linux权限的概念✨su命令☑️如何创建一个普通用户?
2.Linux权限管理2.1文件访问者的分类(人)2.2文件类型和访问权限(事物属性)2.3文件权限值的表示方法✨字符表示方法✨8进制数值表示方法
2.4文件访问权限的相关设置方法✨chmod指令✨chown指令✨chgrp指令✨umask指令
3.结语
1.Linux权限的概念
✨Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
超级用户的命令提示符如下图所示:
普通用户的命令提示符如下图所示:
✨su命令
格式:
su [用户名]
功能:
切换用户
例如,要从root用户切换到普通用户user,则使用 su user
。 要从普通用户user切换到root用户则使用 su root
(root可以省略),此时系统会提示输入root用户的口令
这里可以从root超级用户切换到普通用户:
su tutu //tutu:普通用户的名字
因为root用户可以再linux系统下做任何事情,不受限制,所以从它切换到普通用户不用输入密码,而当普通用户切换到超级用户时则需要输入超级用户的密码;
☑️如何创建一个普通用户?
✨1.确保自己现在是root用户,可以输入whoami
来查看:
✨2.在root用户下输入adduser+要创建的用户名
(我这里用的是tutu),接着输入passwd+用户名
设置该用户的密码,然后再重复输入新密码(注意这里输入密码不回显):
✨3.当出现下面的语句就说明创建成功啦🥳🥳:
2.Linux权限管理
我们在创建一个文件和目录后,使用ll
指令,通常会看到显示出如下图所示的一连串字母和时间和文件/目录名:
上图中各部分表示的含义如下图所示:
对于红色部分我们来详细学习一下:
先来了解一下文件访问者
2.1文件访问者的分类(人)
分为三个类别:
✨文件和文件目录的所有者:u—User
✨文件和文件目录的所有者所在的组的用户:g—Group
✨其它用户:o—Others
接下来我们再来看红色部分
2.2文件类型和访问权限(事物属性)
文件类型
d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
可以看到上面创建的dir文件夹(目录)第一位是d;而file文件则是-
基本权限:
✨读(r):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
✨写(w):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
✨执行(x):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
✨“—”表示不具有该项权限
可以看到对于上图中的文件夹,所有者具有读、写和执行三种权限,文件所属组具有读和执行的权限,不具有写的权限,其他用户也是具有读和执行的权限,不具有写的权限;
对于上图中的普通文件,所有者具有读和写权限,不具有执行权限,文件所属组只具有读权限,其他用户也只具有读权限。
2.3文件权限值的表示方法
✨字符表示方法
Linux表示 | 说明 |
---|---|
r - - | 只读 |
- w - | 只写 |
- - x | 仅可执行 |
rw - | 可读可写 |
r - x | 可读可执行 |
- wx | 可写可执行 |
rwx | 可读可写可执行 |
- - - | 无权限 |
✨8进制数值表示方法
能用八进制表示的原因是读、写、可执行这三个权限要么有要么没有,类似于计算机中的二进制,可以用01来表示,比如- - - 就可以表示为000;rwx 就可以表示为 111 ;
111换算为十进制就是7,不超过8,那么我们为了省去使用二进制要写三个数的麻烦,就可以使用八进制,如下图表所示:
权限符号表示 | 二进制表示 | 八进制表示 |
---|---|---|
r - - | 100 | 4 |
- w - | 010 | 2 |
- - x | 001 | 1 |
rw - | 110 | 6 |
r - x | 101 | 5 |
- wx | 011 | 3 |
rwx | 111 | 7 |
- - - | 000 | 0 |
2.4文件访问权限的相关设置方法
✨chmod指令
功能:
用来更改文件或目录的权限的命令。
"chmod"是"change mode"的缩写。
格式:
chmod [选项] [权限] 文件名
常用选项:
R :递归修改目录文件的权限
说明:
只有文件的拥有者和root才可以改变文件的权限
用户表示符:
u:所有者的权限 g:所属组的权限 o:其他用户的权限 a:所有用户的权限(u、g、o的集合)
chmod指令权限格式:
①用户表示符+/-=权限字符
+: 向权限范围增加权限代号所表示的权限
-: 向权限范围取消权限代号所表示的权限
=: 向权限范围赋予权限代号所表示的权限
实例一:
chmod u-rw file
其中:
结果如下:
实例二:
chmod a=x file
结果如下:
②三位8进制数字
chmod 644 file
结果如下:
✨chown指令
功能:
修改文件的拥有者
格式:
chown [参数] [用户名] 文件名
实例:
chown tutu file
结果如下:
✨chgrp指令
功能:
修改文件或目录的所属组
格式:
chgrp [参数] [用户组名] 文件名
实例:
chgrp tutu file
结果如下:
✨umask指令
功能:
查看或修改文件掩码
格式:
umask [mode]
其中,mode是一个三位八进制数字,用来表示文件和目录权限的掩码。
☑️当我们创建一个新文件时,我们会发现文件访问权限是文件所有者可读可写,文件所属组和其他用户只可读,如下图所示:
☑️这是因为新建文件默认权限是666(八进制表示),新建文件夹默认权限是777,创建文件或目录的时候还要受到umask的影响,而我们当前的umask值为0022(第一个0可忽略不计,即022);
☑️umask命令将掩码(022)与文件默认权限(666)进行"与"运算,然后从默认权限中去除相应的权限(文件夹同理),如下图所示:
这里是umask & mask ^ mask(mask就是上图中的666)
或者也可以mask & ~umask
☑️所以我们创建文件显示出的权限是644
将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。也就是我们看到的644
实例一:
umask
显示当前的umask值
说明:超级用户默认掩码值为0022,普通用户默认为0002。
结果如下:
实例二:
umask 011
设置新的umask值为0011
此时我们再创建新文件时,可以看到权限和之前有所不同,变成了666:
3.结语
Linux权限是指对文件和目录的访问控制。每个文件和目录都有一个所有者和一个所属组,而且还可以赋予其他用户的访问权限。Linux权限控制了文件和目录的读、写和执行权限,通过设置不同的权限组合可以限制用户对文件和目录的访问。以上就是今天的所有内容啦~ 完结撒花~🥳🎉🎉
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。