Linux 详解权限
目录
Linux操作系统中的用户
如何切换用户
浅谈权限
文件的权限
10个字符的第一个,指的是文件的类型。
一个概念:
三种身份读写执行文件的权限:后面九个字符:
如何表述一个文件的权限:
修改文件的权限
修改文件的拥有者,所属组
普通文件/目录的默认权限
umask
普通文件/目录 读写执行分别代表什么,删除的权限。
Linux操作系统中的用户
说权限,为什么要从Linux下的用户说起呢?最直接原因就是Linux下的超级用户和普通用户的权限不同。
1. 超级用户(root):不受权限控制,可以在Linux系统下做任何事情。一个操作系统只有一个。
2. 普通用户(lxq,yzl等):有权限限制。 可以有多个。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。Linux是一个多用户操作系统。(其实Windows也是)
如何切换用户
su / su - / su root 是三种由普通用户转为root用户的指令。su - 后默认在/root 路径下,而su root 以及 su 后默认在之前的路径下,只是细微差别。
su xxx 是由root用户转换为某普通用户的指令,此处不需要输入密码。
ctrl+d 可以快速退出,退出到你的上一个用户。比如root -> yzl ctrl+d 就是yzl -> root
浅谈权限
权限指的是某人是否有对某物拥有某种操作权力。权限需要看三个因素,1. 人(角色) 2. 物
3. 操作
不同的人有不同的权力,不过这个当然需要基于某件物上。而Linux中,一切皆文件。也就使得物几乎是确定的,都是文件类型。那么操作指的是什么,对于文件,我们都有三种操作,读写执行。
当然,Linux下文件的类型有很多,目录,普通文件,可执行文件,管道文件,块设备,字符设备等等。他们都有三种被操作:读写执行,只是对于不同类型的文件,读写执行实际上对应的具体操作不同罢了。
那么物和操作明确了,Linux下的用户只有两种 1. 超级用户 2. 普通用户 而对于文件的某种操作的权限来划分的人,并不是指的用户,实际上对于文件权限的限制并不是针对这两种用户来划分的。而是一个新的概念:文件的拥有者,文件的所属组,文件的other。 那么,用户和这三个身份是什么关系呢? 其实非常简单,无论是超级用户还是普通用户都可以是某个文件的三个身份的一种。某普通用户可以是某文件的拥有者,也可以是所属组,也可以是other。root也是同样的道理。
文件的权限
如图,从右到左,分别是文件名, 文件的创建时间,文件的大小,文件的拥有者和文件的所属组(left right) 那个数字暂时省略。 而我们讨论的关键就是最左边的十个字符。
10个字符的第一个,指的是文件的类型。
d 目录 - 普通文件 p 管道文件 b 块设备 (例如磁盘文件) c 字符设备 (键盘或者显示器)
l 链接文件 (类似于GUI下的快捷方式)
重点学习目录和普通文件 (d 和 -)
一个概念:
Linux下并不以文件的后缀来区分文件类型。也就是test.exe test.c test.txt 在Linux操作系统来看,只是名字的差异。在系统层面没意义,是标示给自己看的。(但是,这并不代表后缀的作用只是让自己好辨识而已,操作系统中的某些软件(指令)会以文件的后缀作为判断文件类型的依据,如gcc)
三种身份读写执行文件的权限:后面九个字符:
三个为一组,分别对应拥有者的权限(owner),所属组的权限(group),other的权限(不属于拥有者,不属于所属组)
而每一组,三个字符,分别对应r 读 w 写 x 可执行 对应身份有对应权限则为r / w / x 没有权限则为 -
如何表述一个文件的权限:
如 a.out 的拥有者有读权限 写权限 执行权限 所属组有读权限 写权限 可执行权限 other有读权限没有写权限 有可执行权限。
修改文件的权限
chmod (change mode
说明:只有文件的拥有者和root才可以改变访问文件的权限
功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项: R -> 递归修改目录文件的权限
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号: u:拥有者 g:所属组 o:其它用户 a:所有用户(u+g+o
②八进制修改方式:
111为对应身份全部权限都有,110为对应身份有读写无执行权限。将其改为八进制后(其实和十进制一样),即为对应数字,代表某身份访问文件的权限。三个八进制数组合在一起,即为三个身份访问文件的权限。如 766为 rwxrw-rw- 544 为 r-xr--r--
修改文件的拥有者,所属组
修改文件的拥有者/所属组,相当于把这个文件交给别人,这里是需要别人同意的(别人的权限)。而Linux下又没有成熟的用户交互方式。所以我们必须提升自己的权限,然后修改文件的拥有者/所属组。即root用户下,才可以完成此操作。
普通文件/目录的默认权限
Linux下,touch一个普通文件或者mkdir一个目录默认权限是rw-rw-rw- 和 rwxrwxrwx 也就是 666 和 777 。但是当实际创建之后,发现普通文件和目录分别是 rw-rw-r-- rwxrwxr-x 也就是 664 和 775 都是少了other的写权限。
为什么会产生这样的差异呢?也就是为什么创建出来的目录/文件的权限不是Linux的默认权限呢?是因为umask(文件掩码)的存在。
umask
功能: 查看或修改文件掩码
新建文件夹默认权限=0666 新建目录默认权限=0777 (0可忽略)但实际上你所创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到 umask的影响。假设默认权限是mask(Linux默认的),则实际创建的出来的文件权限是: mask & ~umask
格式:umask 权限值
说明:将默认权限减去权限掩码后,即可产生建立文件时预设权限。
超级用户默认掩码值为0022,普通用户默认为0002。(最开始的0可以忽略)
普通文件/目录 读写执行分别代表什么,删除的权限。
学习了如何修改权限后,那么对于不同文件类型,读写执行所代表的操作肯定不一样。我们重点了解普通文件和目录的读写执行操作。
普通文件:(文本文件和可执行文件都属于普通文件)
r:读 cat,head,tail,less,more,nano进入后无法查看文本内容,并且此时即使有写权限,也不能保存修改然后退出。
w:写 echo "555" >> xxx.txt 权限
x :执行 对于创建的普通文本文件,默认all都没有x权限,即使加上也会执行报错。
可执行文件属于普通文件的一种,类型也是- 比如编译连接.c文件后生成的.out文件
r:可执行文件进行cat后,发现打印出来的是乱码,其实这种文件本身并不适合于读取,只适合于执行。
w:echo "111" >> a.out 后,可以写入,之后也可以执行。
e: 对于可执行文件,默认三种身份都有执行权限。
目录:
默认创建后权限是 rwxrwxr-x 也就是other没有写权限,也就是不能在目录下新建文件/目录。
r 读 : 查看目录下的文件列表 ls
w 写: 在目录下创建文件或者目录 mkdir touch,重命名此目录下的文件/目录,删除此目录下的文件/目录。都属于w写权限。
x 执行:进入一个目录 cd dir
[yzl@VM-4-5-centos dir]$ ll
total 4
drwxrwxr-x 2 yzl yzl 4096 Jul 22 12:15 ddddd
-rw-rw-r-- 1 yzl yzl 0 Jul 22 12:15 tttttt
[yzl@VM-4-5-centos dir]$ cd ..
[yzl@VM-4-5-centos ~]$ chmod u-w dir
[yzl@VM-4-5-centos ~]$ ll
total 88
dr-xrwxr-x 3 yzl yzl 4096 Jul 22 12:15 dir
-rw-rw-r-- 1 yzl yzl 78929 Jul 18 12:15 pack.zip
--w-rw-r-- 1 yzl yzl 24 Jul 22 12:12 tt
[yzl@VM-4-5-centos ~]$ cd dir
[yzl@VM-4-5-centos dir]$ ll
total 4
drwxrwxr-x 2 yzl yzl 4096 Jul 22 12:15 ddddd
-rw-rw-r-- 1 yzl yzl 0 Jul 22 12:15 tttttt
[yzl@VM-4-5-centos dir]$ touch tst
touch: cannot touch ‘tst’: Permission denied
[yzl@VM-4-5-centos dir]$ mv tttttt txt
mv: cannot move ‘tttttt’ to ‘txt’: Permission denied
[yzl@VM-4-5-centos dir]$ rm tttttt
rm: cannot remove ‘tttttt’: Permission denied
[yzl@VM-4-5-centos dir]$ mkdir dir
所以,针对我之前的一个思考:删除一个目录/文件需要什么权限呢? 其实并不是对这个文件/目录的rwx,而是对于此文件/目录的上一层目录/所属目录/父目录的w权限。因为删除此文件/目录其实是对其所属目录的写操作。
[yzl@VM-4-5-centos ~]$ ll
total 88
drwxrwxr-x 3 yzl yzl 4096 Jul 22 12:19 dir
-rw-rw-r-- 1 yzl yzl 78929 Jul 18 12:15 pack.zip
--w-rw-r-- 1 yzl yzl 24 Jul 22 12:12 tt
[yzl@VM-4-5-centos ~]$ chmod u-w dir
[yzl@VM-4-5-centos ~]$ cd dir
[yzl@VM-4-5-centos dir]$ ll
total 4
drwxrwxr-x 2 yzl yzl 4096 Jul 22 12:15 ddddd
-rw-rw-r-- 1 yzl yzl 0 Jul 22 12:19 txt
[yzl@VM-4-5-centos dir]$ rm txt
rm: cannot remove ‘txt’: Permission denied
[yzl@VM-4-5-centos dir]$ rm -f txt
rm: cannot remove ‘txt’: Permission denied
针对最后一块的blog
Linux 删除一个文件需要什么权限?_CPP的底层是哲学的博客-CSDN博客
Linux 详解权限相关推荐
- Linux详解系列2- 这100条常见命令你都用过哪些?
Linux详解系列2- 这100条常见命令你都用过哪些? https://www.toutiao.com/i6941655011004891660/?tt_from=weixin&utm_ca ...
- 嵌入式linux详解,嵌入式Linux详解
嵌入式Linux详解 嵌入式培训就是嵌入式系统相关技术的培训.嵌入式系统说白了就是硬件和软件相结合,嵌入到整机里使整机实现智能化的一个系统.下面是小编整理的关于嵌入式Linux详解,希望大家认真了解! ...
- Linux | 详解命令 locate
详解 locate 概述 安装 用法 使用 updatedb 创建数据库 如何使用 locate 命令 不使用选项 使用选项 总结 概述 如果想要在整个系统里搜索文件或目录,locate 就是您最好的 ...
- VScode调试Linux详解
在Linux上通常使用gdb命令行调试,但该方式调试不太直观,且命令行长时间不用,容易忘记,不如GUI直观和容易上手,下面介绍基于GUI的方式调试Linux. 一.Linux调试GUI方案简介 1) ...
- 【Linux详解】——权限
- Linux┊详解udev
是一小部分例子,如果你的系统采用了udev方式,那你应该可以看到更多的规则.如果你想修改设备的权限或者创建信的符号连接,那么你需要熟读这些规则,特别是要仔细注意你修改的那些与之相关的设备. 修改你的u ...
- linux 详解邮件服务器
什么是邮件? 邮件系统的介绍 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口. 邮局协议版本3(P ...
- u盘装服务器linux系统教程,U盘安装Linux详解
用U盘安装系统一直都是节约资源的最好的方式,我们可以考虑使用U盘来安装如Ubuntu.Debian之类linux系统,如何用U盘安装LINUX该怎么做呢 这里主要针对几种比较流行的Linux做介绍,基 ...
- Alpine Linux详解
简介 Small. Simple. Secure.Alpine Linux is a security-oriented, lightweight Linux distribution based o ...
最新文章
- orm框架有哪些_java技术哪些是必学的?
- MyBatis Review——输入输出映射
- Ubuntu系统安装libssl-dev
- java学习笔记-4 JVM垃圾回收(GC)
- CVTE(WEB后台开发)
- Dalvik Vm架构
- SpringBoot 整合 Spring Cloud Alibaba Nacos 连通性+负载均衡
- visio2013复制到word有多余白边_Visio虚线复制到word中变为实线的解决办法
- WORD批量更改所有图片大小
- Linux 环境变量配置全攻略
- 【Unity3D入门教程】Unity3D播放音频和视频
- 计算机联锁车务仿真培训系统 casco模式,计算机联锁仿真培训系统
- 魅族mx4pro刷linux,老树开新花 魅族MX4 Pro刷Flyme 5体验
- mysql sock_mysql.sock 文件解析
- 计算机2010word中的页面背景在哪里,word2010里怎样填充页面背景图片
- js进阶之天猫弹性导航
- Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)...
- 在线考试系统,在线考试后台管理
- hive计算航班某型号个数_机型分配就是把航班集合按照机型分割成子集。( )...
- 2021年11月逆向练习