首页 > 系统相关 >Linux下的权限

Linux下的权限

时间:2024-02-13 17:55:24浏览次数:35  
标签:文件 拥有者 Linux 权限 所属 目录

1.什么是权限
文件权限等于=角色+文件属性
1.1角色分为三类:
1.拥有者(owner) 2.所属组(grouper)3.其他人
以下①是拥有者 ②是所属组

所属组,是相当于在一个小团体里,这些所属组里边的人都可以访问,就相当于学习的小组

2.文件类型及权限
Linux下的文件类型与Windows的文件类型的表达方式有很大的不同
Windows下的后缀和Linux下的文件后缀有很大的区别
Linux下的文件后缀实际上并没有作用,只是为了方便用户进行,这里特指是Linux操作系统
但是一些编译工具对文件后缀有要求,比如gcc,必须要求是规定的例如(.c)后缀
区分
例如Linux下有一个可执行文件,test.exe,运行这个exe会输出"hello Linux!"如果把这个文件名改为test或者改为叫xyz,那么运行这个文件照样管用,照样跟test.exe的效果一样,实际上是一样的
在Linux下通过显示众多属性列中的第一个字符区分文件类型,如下图

①Linux文件类型:
首字符开头

  • 普通文件(文本文件,代码源文件,可执行文件,压缩包...等等)
    d 目录文件
    c 字符设备文件(键盘、鼠标)
    b 块设备(磁盘)
    l 链接文件(快捷方式文件,比如Window下的桌面的图标)
    p 管道文件

②剩余9个字符对应的含义:

如下图,以三个三个为一组,分别是拥有者(owner)、所属组(group)、其他人(other)的权限,对应权限没有的用“-”表示," r "表示拥有读的权限, " w "表示可以写,“x” 表示可执行

文件权限值的表示方法(进制法)
在改变权限的时候,因为对应的位置不是存在就是不存在,因此可以用二进制转八进制码来表示,
例如 拥有者 所属组 other
1 1 1 1 1 1 1 0 1 ->对应了1可以读,1可以写,1可以执行,0则代表不可以,对应的八进制为775,则
eg:chmod 775 文件名 #同时改变了 拥有者权限,所属组,other的权限
3.如何操作权限
3.1改变权限的命令操作 chmod #change mode的缩写
① u代表用户本身的权限,user
② g代表所属组的权限 , group
③ o代表其他人的权限, other
④ a表示所有的人,包含,u,g,o
用例 eg:
chmod u-r 文件名 #改变拥有者权限,减去read (-r),减去了读的权限
chmod u+x 文件名 #改变拥有者权限,增加了可执行的权限+x
chmod g-rwx 文件名 #改变所属组的额权限,减去读(r)、写(w)的权限
chmod o+rwx 文件名 #改变其他人的权限,加上读(r), 写(w), 可执行(x)
chmod u+rw,g-wx 文件名 #可组合式,改变拥有者和所属组的
注意:组合式的必须按照顺序先后,比如ugo,uo,go,ug等顺序,必须保证先后顺序
3.2改变文件的角色
①改变文件的 拥有者 chown 如果是非root用户,给不了别人文件,这个拥有者无法变成比尔,但如果是root用户或者提权sudo给另一个人,那么可以强制改变文件的拥有者
②如果要改变拥有者和所属组 chown 用户1:用户2 文件名 用户1改为拥有者,2改为所属组
③改变所属组 chgrp 文件 ,改变所属组
4.关于目录/普通文件的起始权限的问题
4.1 Linux规定,目录/普通文件的起始权限分别是777,666

但是实际上与规定的有所不同,创建一个新的目录还有普通文本则是:
目录为 755,普通文件为644,这是因为在不同的机器或者系统上,会有一个默认权限掩码,对于所有的目录以及文件,都会在规定的起始权限下按位与(取反权限掩码)
最终权限=规定起始权限&(~权限掩码)
查看当前机器权限掩码的方式 umask(显示的为八进制序列)
那么可以理解为对于umask的话,因为要取反,就是不取反前,要去掉的对应的二进制位为1,要保留权限的位为0

则777&(~022)(八进制)》755 ,666&(~022)》644,则默认权限为规定的权限减去权限掩码后的权限
4.2更改默认权限掩码
umask xxxx(一个八进制序列)例如:0444,4的二进制位100,
那么代表在规定的777,666权限下,去掉每一个角色的读权限,创建新的目录以及普通文件,默认权限为333,222了

5.目录的rwx权限
对于目录的权限,目录的
-r 权限 #表示,去掉读的权限,就是不可以读取该目录的列表
-w权限 #表示去掉写的权限,就是不能创建新的文件
-x权限 #表示去掉执行的权限,就是你不能进入/cd该目录
6.粘滞位
在创作或者生活中,总有需要公共空间的地方,Linux也是如此,会有公有/公共目录,这个目录是有超级管理员/root创建的,并且这个目录的权限是777,即允许他人rwx

如果在这个公有目录里我创建了一个私有文件,他人不可rwx,但是由于公共目录的权限是rwx,虽然其他人不能rwx,但是其他人可以给这个文件删除掉,这是个问题,如果关了目录的w权限,那么也无法创建新文件了,禁止大家互删文件
所以,我们需要给目录设置粘滞位,一般设置的对应的角色就是other(其他人)
设置粘滞位 : chmod +t 文件名 //该操作需要在root身份进行
设置完粘滞位后,其他人就无法在该目录下删除了

对于设置了粘滞位的文件/目录,root用户和目录/文件所有者都不受约束,他们可删除等操作

标签:文件,拥有者,Linux,权限,所属,目录
From: https://www.cnblogs.com/kzx1019/p/18014678

相关文章

  • [Kyana]Linux使用小技巧
    01|使用逻辑卷使存储空间可扩展前排提示小白在使用Linux虚拟机时,常在开始分配较小的硬盘空间,在后续使用中常出现硬盘空间不足的问题,轻则无法安装软件,重则无法更新。本文推荐使用逻辑卷方式安装操作系统,便于后续磁盘扩充。在逻辑卷上创建文件系统流程:层次(命令):|物理磁盘|(-fdis......
  • Linux之sudo
    【摘要】生产环境中为了系统的安全性,Linux主机的root权限是只能管理器使用,普通用户不具有root权限,但是可以通过sudo获取root权限执行一些操作。一、知识要点wheel组在Linux中wheel组就类似于一个管理员的组。通常在LUNIX下,即使我们有系统管理员root的权限,也不推荐用root......
  • Linux 中 使用awk数组根据基因的PAV矩阵计算基因的存在频率
     001、测试数据[b20223040323@admin1test]$lsx_gather_pav.txt[b20223040323@admin1test]$catx_gather_pav.txt##测试数据;每一行是一个个体;每一列是一个基因;矩阵中的0表示基因在这个个体中缺失,1表示基因在这个个体中存在01111......
  • Linux下指定so动态库的加载路径的5种方法
    搜索的先后顺序是:编译目标代码时指定的动态库搜索路径;环境变量LD_LIBRARY_PATH指定的动态库搜索路径;配置文件/etc/ld.so.conf中指定的动态库搜索路径;默认的动态库搜索路径/lib;默认的动态库搜索路径/usr/lib。将库文件放置在对应的路径中,运行时就可以搜索到了。例1:通过gcc......
  • Linux之parted
    【摘要】parted用于对磁盘(或RAID磁盘)进行分区及管理,与fdisk分区工具相比,支持2TB以上的磁盘分区,并且允许调整分区的大小。使用它你可以创建、清除、调整、移动和复制ext2、ext3、linux-swap、FAT、FAT32和reiserfs分区;也能创建、调整和移动苹果系统的HFS分区;还能检测jfs、ntfs......
  • Linux Bash Shell 脚本入门(2)——GNU
    ​LinuxBashShell脚本入门(2)——GNU目录LinuxBashShell脚本入门(2)——GNUGNU与LinuxGNUGNU的组成ShellGNOME桌面环境XWindow软件GNOME可点击内容,大部分来自维基百科,可以点击了解详情。GNU与LinuxGNUGNU操作系统起源于GNU计划,由理查德·斯托曼在麻省理工学院人工智能......
  • 大年初二学习SpringBoot之权限管理
    1增加spring-security依赖目前市面上主流的权限框架是:spring-security和shiro,shrio使用起来更简单,而spring-security的功能更强大。苏三商城项目选择的权限框架是:spring-security。首先要加入spring-security的相关依赖包。在项目中的pom.xml文件中增加如下依赖:<dependency......
  • [转帖]linux参数之max_map_count
    https://www.cnblogs.com/duanxz/p/3567068.html “Thisfilecontainsthemaximumnumberofmemorymapareasaprocessmayhave.Memorymapareasareusedasaside-effectofcallingmalloc,directlybymmapandmprotect,andalsowhenloadingsharedlibr......
  • Linux之bond 和 team
    一、bond和team区别bond只能是双网卡绑定,team不需要手动加载相应内核模块和有更强的拓展性,最高可以绑定8块网卡。二、模式bond模式(1)mode=0(balance-rr)(平衡轮循环策略)链路负载均衡,增加带宽,支持容错,一条链路故障会自动切换正常链路。交换机需要配置静态链路聚合。特......
  • Linux Bash Shell 脚本入门(1)——Linux内核功能介绍
    ​LinuxBashShell脚本入门(1)——Linux内核功能介绍目录LinuxBashShell脚本入门(1)——Linux内核功能介绍前言Linux初探Linux系统架构linux内核系统内存管理软件程序管理硬件设备管理文件管理系统前言本文为《Linux命令行与shell脚本编程大全》第四版的读书笔记,突发奇想想......