目录

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 详解权限相关推荐

  1. Linux详解系列2- 这100条常见命令你都用过哪些?

    Linux详解系列2- 这100条常见命令你都用过哪些? https://www.toutiao.com/i6941655011004891660/?tt_from=weixin&utm_ca ...

  2. 嵌入式linux详解,嵌入式Linux详解

    嵌入式Linux详解 嵌入式培训就是嵌入式系统相关技术的培训.嵌入式系统说白了就是硬件和软件相结合,嵌入到整机里使整机实现智能化的一个系统.下面是小编整理的关于嵌入式Linux详解,希望大家认真了解! ...

  3. Linux | 详解命令 locate

    详解 locate 概述 安装 用法 使用 updatedb 创建数据库 如何使用 locate 命令 不使用选项 使用选项 总结 概述 如果想要在整个系统里搜索文件或目录,locate 就是您最好的 ...

  4. VScode调试Linux详解

    在Linux上通常使用gdb命令行调试,但该方式调试不太直观,且命令行长时间不用,容易忘记,不如GUI直观和容易上手,下面介绍基于GUI的方式调试Linux. 一.Linux调试GUI方案简介 1)  ...

  5. 【Linux详解】——权限

  6. Linux┊详解udev

    是一小部分例子,如果你的系统采用了udev方式,那你应该可以看到更多的规则.如果你想修改设备的权限或者创建信的符号连接,那么你需要熟读这些规则,特别是要仔细注意你修改的那些与之相关的设备. 修改你的u ...

  7. linux 详解邮件服务器

    什么是邮件? 邮件系统的介绍 简单邮件传输协议(Simple Mail Transfer Protocol,SMTP):用于发送和中转发出的电子邮件,占用服务器的25/TCP端口. 邮局协议版本3(P ...

  8. u盘装服务器linux系统教程,U盘安装Linux详解

    用U盘安装系统一直都是节约资源的最好的方式,我们可以考虑使用U盘来安装如Ubuntu.Debian之类linux系统,如何用U盘安装LINUX该怎么做呢 这里主要针对几种比较流行的Linux做介绍,基 ...

  9. Alpine Linux详解

    简介 Small. Simple. Secure.Alpine Linux is a security-oriented, lightweight Linux distribution based o ...

最新文章

  1. orm框架有哪些_java技术哪些是必学的?
  2. MyBatis Review——输入输出映射
  3. Ubuntu系统安装libssl-dev
  4. java学习笔记-4 JVM垃圾回收(GC)
  5. CVTE(WEB后台开发)
  6. Dalvik Vm架构
  7. SpringBoot 整合 Spring Cloud Alibaba Nacos 连通性+负载均衡
  8. visio2013复制到word有多余白边_Visio虚线复制到word中变为实线的解决办法
  9. WORD批量更改所有图片大小
  10. Linux 环境变量配置全攻略
  11. 【Unity3D入门教程】Unity3D播放音频和视频
  12. 计算机联锁车务仿真培训系统 casco模式,计算机联锁仿真培训系统
  13. 魅族mx4pro刷linux,老树开新花 魅族MX4 Pro刷Flyme 5体验
  14. mysql sock_mysql.sock 文件解析
  15. 计算机2010word中的页面背景在哪里,word2010里怎样填充页面背景图片
  16. js进阶之天猫弹性导航
  17. Qt编写项目作品大全(自定义控件+输入法+大屏电子看板+视频监控+楼宇对讲+气体安全等)...
  18. 在线考试系统,在线考试后台管理
  19. hive计算航班某型号个数_机型分配就是把航班集合按照机型分割成子集。( )...
  20. 2021年11月逆向练习

热门文章

  1. 【Embedded System】嵌入式系统
  2. 用U盘给MacBook安装Win7的方法
  3. 适合女生上班族的兼职有哪些?女生如何赚外快?
  4. 一个运营的自我修养:初级运营需要了解的书籍、网站、工具
  5. 武汉剑灵服务器位置,选服务器和收集者练级问题?
  6. 关于world页码的操作
  7. 转发器-集线器-适配器-网桥-交换机-路由器-网关
  8. 《软件架构设计.第二版解析软件架构概念》阅读笔记——到底什么是软件架构?...
  9. 牧牛区块链生态,加快5G和区块链技术融合
  10. Python库之SQLAlchemy