普通权限

-rw-r–r--. 1 root root 0 Feb 14 23:33 test

第1位标识文件类型:

-:普通文件

b:块设备

c:字符设备

d:目录

l:符号链接

s:套接字文件

p:命名管道

2~4位表示拥有者的权限

5-8位表示所属组的权限

9~11位表示其他人的权限

权限的定义:

r:可读,对文件来说即可以读取文件的具体内容(cat,more,less,vim),对目录而已即为可读取目录列表(ls)

w:可写,对文件即可以修改文件内容(vi),对目录即可以修改目录内容(创建,重命名,删除文件)

x:可执行,对文件即能执行文件内容(这里的文件一般是二进制文件,shell脚本,其他任何需要执行的文件),对目录即为可以进入目录(cd)

权限修改相关命令

- chown(改变文件所有者,也可以实现chgrp的功能)

* chown [-R] username filename/dirname:只修改所有者,-R是递归更改目录下的文件

* chown [-R] username:groupname filename/dirname:同时修改所有者和用户组

* chown [-R] .groupname filename/dirname:只修改用户组

- chgrp(改变文件所属用户组)

* chgrp [-R] groupname filename/dirname

- chmod(改变文件的权限)

* 符号表达 chmod [-R] [{ugoa}{+-=}{rwx}] filename/dirname

备注:  u:所有者 g:所属组 o:其他人  a:所有人

+:为用户增加权限 -:为用户减少权限  =:为用户赋予权限

r:读权限  w:写权限  x:执行权限

例子: 将一个文件的权限设置为-rwxr-xr-x

chmod u=rwx,g=rx,o=rx /tmp/test

* 数字表达 chmod [-R] [mode=421] filename/dirname ←(这种方法用的比较多)

备注: r:4  w:2  x:1

例子: 将一个文件的权限设置为-rwxr-xr-x

chmod 755 /tmp/test

特殊标识位

1.SUID

当s出现在文件的所有者标记上,代替了x权限,就称为Set UID,简称为SUID,该权限针对命令和二进制程序,当普通用户执行某个(passwd)命令的时候,可以拥有这个命令对应用户的权限,

即让普通用户可以以root用户的角色执行程序或命令。

2. SGID

当s出现在用户所有组标记上,代替了x权限,就称为Set GID,简称为SGID

该权限具有以下功能:

SGID应用在文件上:

SGID对二进制程序有用

程序执行者对于该程序来说,需具备x的权限

执行者在执行过程中将会获得该程序用户组的支持

SGID应用在目录上:

用户若对于此目录具有r和x的权限时,该用户能够进入此目录

用户在此目录下的有效用户组将会变成该目录的用户组

若用户在此目录下具有w的权限(可以新建文件),则用户所创建的新文件的用户组与此目录的用户组相同

3. SBIT

SBIT,只针对目录有效,当用户在该目录下创建文件或目录时,仅有自己与root才有权利删除该文件

4. 特殊权限变更命令

同样通过chmod命令来修改特殊权限

符号表达:

chmod a+s filename

chmod g+s filename/dirname

chmod o+t dirname

数字表达:

suid:4 sgid:2 sbit:1

只要在普通权限的前面加上一位即可

例如,要设置一个普通权限为755,并且是SUID,就使用命令:chmod 4755 filename即可

权限掩码(umask)

文件目录初始权限

文件:inux系统新建文件默认没有执行权限,其最大权限为rw-rw-rw-(666)

目录:新建目录的最大权限为rwx-rwx-rwx(777)

计算默认权限

文件:666-umask值所对应的权限

目录:777-umask值所对应的权限

可通过umask命令查看当前的umask值,一般情况下,root的umask022,普通用户为002,计算时建议将umask值转化为对应权限去相加减,数字加减后转换在umask值中有奇数的情况可能会产生错误。

ACL

ACL是Access Control List的缩写,主要提供更加细粒度的权限设置,ACL可以针对单一用户,单一文件或目录进行r、w、x的权限设置,对于需要特殊权限的使用状况非常有用,,需要文件系统选项(ACL)支持。

setfacl命令:设置某个目录/文件的ACL规定

用法:setfacl [-bkRd] [{-m | -x}] acl参数 filename

参数:

-m:设置后续的acl参数给文件使用,不可与-x合用

-x:删除后续的acl参数,不可与-m合用

-b:删除所有的acl参数

-k:删除默认的acl参数

-R:递归设置acl,子目录也会被设置acl

-d:设置默认的acl参数,只对目录有效,在该目录新建的数据都会引用该值

举例说明:几个程序员对同一个目录(/tmp/test)具有完全的权限,但是只允许项目经理(manager)进入到该目录里查看(不允许任何的其他人进入该目录,同时项目经理也不能修改任何的东西)。此时就要使用到acl:

setfacl -m u:manager:rx /tmp/test

设置acl的文件这里会有一个+号

getfacl命令:取得某个文件/目录的ACL设置项目

文件特殊属性

chattr +a filename 只允许以追加方式读写文件

chattr +c filename 允许这个文件能被内核自动压缩/解压

chattr +d filename 在进行文件系统备份时,dump程序将忽略这个文件

chattr +i filename 设置成不可变的文件,不能被删除、修改、重命名或者链接

chattr +s filename 允许一个文件被安全地删除

chattr +S filename 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘

chattr +u filename 若文件被删除,系统会允许你在以后恢复这个被删除的文件

lsattr filename 显示特殊的属性

linux权限管理详解,linux权限管理详解-Go语言中文社区相关推荐

  1. linux6.5做bond1,Linux CentOS 7 多网卡配置bond模式 bond1 bond5 bond6-Go语言中文社区

    https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/sec-N ...

  2. linux 多线程聚集写程序,Linux篇二:Makefile写多线程多文件程序-Go语言中文社区...

    距离上次布置任务已经两个周了,虽然这是自己的业余学习,还是为自己的工作时间安排表示有待提高.. 废话不多说,直接上干货. 这次老师布置的任务要求是,Makefile写多线程.多文件调用.用上数学函数. ...

  3. linux iio 设备驱动,Linux设备驱动之IIO子系统——IIO框架数据读取-Go语言中文社区...

    IIO DATA ACCESS IIO数据获取 只有两种方法可以使用IIO框架访问数据; 通过sysf通道进行一次性捕获,或通过IIO字符设备进行连续模式(触发缓冲). One-shot captur ...

  4. 管理学生信息android,Android 学生信息管理系统-Go语言中文社区

    android:layout_width="fill_parent"android:layout_height="wrap_content"android:gr ...

  5. rust的矿坑_转: Rust中的Pin详解 【Rust语言中文社区】

    Rust中的Pin详解 原创 automanyang Rust语言中文社区 昨天 https://mp.weixin.qq.com/s/PjctbPbyR5OeaqTHZdB5uQ 相关概念 Pin ...

  6. go linux下进程守护,Linux系统进程管理-Go语言中文社区

    一.进程基础知识 1.1 Linux进程的概念 Process:是运行中的程序的一个副本,是被载入内存的一个指令集合.进程ID(Process ID,PID)号码被用来标记各个进程 UID.GID.和 ...

  7. 博通蓝牙驱动linux,基于Android8.1的博通bcm89342蓝牙驱动的驱动移植记录-Go语言中文社区...

    说明 本文档是基于Android 8.1版本的一款博通蓝牙的驱动移植全过程记录.本驱动是通过/dev/ttyS2和蓝牙进行通信.因为较android以前的版本有很大变化尤其是上层关于蓝牙协议栈的部分, ...

  8. qt程序部署在linux,Qt应用打包发布,部署真正的Qt程序LinuxWindows-Go语言中文社区...

    最近在发布Qt应用时遇到了一些困难,Windows还好,在Linux上面发布遇到了不少的麻烦(实际Linux应该简单才对),经过在网络搜索发现帖子不少,但都比较片面,现把Qt应用程序在Linux&am ...

  9. WSL安装Oracle,折腾记录:WSL(Windows Subsystem for Linux,Windows上的Linux子系统)安装后的环境配置-Go语言中文社区...

    WSL(Windows Subsystem for Linux,Windows上的Linux子系统)的安装比较简单,教程网上较多,此处略过.安装后须要进行一系列配置(如软件源配置.中文配置.图形化配置 ...

最新文章

  1. 延长 XSS 生命期
  2. python3 域名转ip
  3. 南阳理工大学 gnns 新基准
  4. ssh免密登录方法不生效?Authentication refused: bad ownership or modes for directory
  5. web应用的目录结构
  6. P4332-[SHOI2014]三叉神经树【LCT】
  7. PowerDesigner(一)-PowerDesigner概述(系统分析与建模)
  8. Theano 中文文档 0.9 - 6. 更新Theano
  9. 不懂电脑如何买电脑_买电脑交智商税?5分钟看懂笔记本电脑配置
  10. android常见的面试题,Android常见笔试面试题
  11. hbase windows 单机版安装
  12. Machine Learning——Homework2
  13. 软件评测师考试备考资料分享
  14. 天池大数据竞赛-河北高校邀请赛——二手车交易价格预测-初赛第22名
  15. 中国大学 MOOC C语言程序设计----编程部分答案解析
  16. 在线免费完整PDF转PPT格式
  17. java sqoop api 导mysql数据到hdfs
  18. 【工具篇】---PDFRenderer动态加载Pdf之花样自定义显示
  19. 苹果公司对失败的总结和展望未来
  20. 大数据测试--转载自开源优测

热门文章

  1. Error in ** : incorrect number of dimensions
  2. R语言使用ggpubr包绘制出版社、编辑、审稿人要求的可视化图形实战
  3. glm.fit Warning Messages in R: algorithm didn’t converge probabilities 0/1
  4. 特征工程之时间特征、自然语言特征、图像图像特征、数据分布不平衡
  5. Windows下查看已经安装的GPU的情况
  6. 产品线的长度宽度深度_LED照明经销商该如何规划自己的产品线
  7. KD树和LSH局部敏感哈希
  8. 一套Python试题
  9. A fuzzy Bruijn graph approach to long noisy reads assembly
  10. python 离线下载和安装第三方库 .whl wheel 文件