Linux 权限管理

1、权限简介

Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限:属主、属组以及其他人,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的操作。

1.1 权限分类

  • 权限针对文件的三类对象:
全拼 翻译 简写
owner 属主 u
group 属组 g
other 其它人 o
  • 权限的分类:
权限 对文件的影响 对目录的影响
r(读取) 可读取文件内容 可列出目录中内容
w(写入) 可修改文件内容 可在目录中创建删除内容
x(执行) 可作为命令执行 可访问目录内容

注意:目录必须拥有 x 权限,否则无法查看其内容

  • 权限的表示方式:
第一种 第二种
- - - 0
- - x 1
- w - 2
- w x 3
r - - 4
r - x 5
r w - 6
r w x 7

1.2 Linux安全上下文

Linux每个进程都是以某个用户身份运行,进程的权限与该用户的权限一样,运行该进程的用户的权限越大,则进程拥有的权限就越大。

文件有属主和属组,进程有属主和属组

  • 任何一个可执行程序文件能不能启动为进程,取决于发起者对程序文件是否拥有可执行权限
  • 启动为进程后,其进程的属主为发起者,属组为发起者的基本组
  • 进程访问文件时的权限取决于进程的发起者:
    • 进程的发起者是文件的属主时,则应用文件属主权限
    • 进程的发起者是文件的属组时,则应用文件属组权限
    • 应用文件“其它”权限

2、权限管理命令

2.1 权限修改命令chmod

  1. //权限修改主要修改三类对象的权限
  2. //语法:chmod MODE file,...
  3. -R //递归修改权限
  4. //修改某类对象权限:u,g,o,a
  5. 权限修改的三种方式:
  6. chmod 对象类别=MODE file,.....
  7. chmod 对象类别=MODE,对象类别=MODE file,.....
  8. 例如:
  9. [root@zsl ~]# chmod u=rwx zsl
  10. [root@zsl ~]# chmod u=rwx,g=rwx zsl
  11. chmod 对象类别+|-MODE file,.....
  12. chmod 对象类别+|-MODE,对象类别+|-MODE file,.....
  13. chmod +|-MODE file,.....
  14. 例如:
  15. [root@zsl ~]# chmod u+rwx zsl
  16. [root@zsl ~]# chmod u-x,g-x zsl
  17. [root@zsl ~]# chmod +x zsl
  18. chmod "mode number" file,.....
  19. 例如:
  20. [root@zsl ~]# chmod 777 zsl

2.2 属主和属组修改命令chown

  1. //chown命令只有管理员可以使用。
  2. chown USERNAME file,...
  3. -R //修改目录及其内部文件的属主
  4. chown USERNAME:GROUPNAME file,...
  5. chown USERNAME.GROUPNAME file,...
  6. 例如:
  7. [root@zsl ~]# chown root.root zsl
  8. [root@zsl ~]# chown root:root zsl

2.3 特殊权限

linux的权限默认是根据linux安全上下文的方式来控制的,而特殊权限的存在打破了linux安全上下文的规则。

  1. SUID(4) //运行程序时,这个程序启动的进程的属主是程序文件自身的属主,而不是发起者为属主
  2. chmod u+s file
  3. chmod u-s file
  4. //如果file本身原来就有执行权限,则SUID显示为s,否则显示为S
  5. SGID(2) //运行程序时,这个程序启动的进程的属组是程序文件自身的属组,而不是启动者所属的基本组
  6. //一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件或目录,其所属的组为此设定了SGID的目录的属组
  7. chmod g+s DIR
  8. chmod g-s DIR
  9. //如果file本身原来就有执行权限,则SGID显示为s,否则显示为S
  10. SBIT(1) //公共目录,每个人都能创建文件,删除自己的文件,但是不能删除别人创建的文件
  11. chmod o+t DIR
  12. chmod o-t DIR
  13. //如果DIR本身原来就有执行权限,则SBIT显示为t,否则显示为T
  14. 特殊权限的数字表示方式:
  15. 4755 //有SUID,文件权限为755
  16. 2755 //有SGID,文件权限为755
  17. 1755 //有Sticky,文件权限为755
  18. //这里前面的4、2、1分别表示SUID、SGID、Sticky

2.4 文件系统访问控制列表facl

facl(Filesystem Access Control List),利用文件扩展保存额外的访问控制权限。

  1. //语法:setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
  2. -m //设定权限条目
  3. u:UID:perm
  4. g:GID:perm
  5. 示例:
  6. setfacl -m u:test:rw file
  7. setfacl -m g:test:rw file
  8. //如果要为某个目录设定默认的访问控制列表,只需要设定时在u或g前面加上d即可
  9. 示例:
  10. setfacl -m d:u:test:rw file
  11. //此时在此目录中创建的文件均继承此访问控制列表所设置的权限
  12. -x //删除权限条目
  13. u:UID
  14. g:GID
  15. 示例:
  16. setfacl -x u:test file
  17. setfacl -x g:test file
  18. -b //Remove all
  19. 示例:
  20. setfacl -b file
  21. //查看文件系统访问控制列表getfacl
  22. //语法:getfacl [-aceEsRLPtpndvh] file ...
  23. 示例:
  24. getfacl file

2.5 遮罩码

为什么文件创建以后默认权限是644?

为什么目录创建以后默认权限是755?

  1. 新建文件和新建目录的默认权限是由遮罩码umask来控制的。

从名字就能看出来,遮罩码umask是用来隐藏一些权限的。

  1. 举例:如果你不想让人家认出你,你会怎么办?

文件最终的权限为:

  1. 666-umask 文件最高权限 - 遮罩码 = 文件最终权限

目录最终的权限为:

  1. 777-umask 目录最高权限 - 遮罩码 = 目录最终权限

文件默认是不能具有执行权限的,如果文件有了执行权限则将其权限整体加1。

3、sudo借权

sudo可以实现某个用户能够以另外哪一个用户的身份通过哪些主机执行什么命令

sudo的配置文件:/etc/sudoers

  1. //使用visudo命令进行sudo的配置,每一行就是一个sudo条目,条目格式如下:
  2. 示例:
  3. who which_hosts=(runas) command
  4. who : UserUser_Alias //表示运行命令者的身份
  5. which_hosts : HostHost_Alias //通过哪些主机
  6. runas : UserRunas_Alias //以哪个用户的身份
  7. command : CommandCmnd_Alias //运行哪些命令
  8. //别名必须全部而且只能使用大写英文字母的组合,可以使用感叹号取反
  9. //别名分类
  10. 1.用户别名:
  11. User_Alias "Alias" =
  12. 用户的用户名
  13. 组名,使用%引导
  14. 还可以其它已经定义的用户别名
  15. 2.主机别名:
  16. Host_Alias "Alias" =
  17. 主机名
  18. IP地址
  19. 网络地址
  20. 其它主机别名
  21. 3.命令别名:
  22. Cmnd_Alias =
  23. 命令路径
  24. 目录(此目录内的所有命令)
  25. 其它已定义的命令别名
  26. //sudo命令语法:sudo [options] COMMAND
  27. -V //显示版本编号
  28. -h //帮助信息,会显示版本编号及指令的使用方式说明
  29. -l //列出当前用户可以使用的所有sudo类命令
  30. -v //重新做一次密码确认,如果超过N(默认为5)分钟,也会问密码
  31. -k //立刻清除认证信息,如果不指定-k,默认认证信息在5分钟后失效
  32. -b //将要执行的指令放在后台执行
  33. -u USERNAME //以指定的用户名执行命令,默认为root

4、文件特殊属性命令

chattr命令用于改变文件的特殊属性。与chmod命令相比,chmod只是改变文件的读写、执行权限,而chattr是基于内核的更底层的属性控制。

  1. 命令格式:
  2. chattr [选项] [+/-/=属性] [文件或目录]
  3. 选项:
  4. -R //递归
  5. -V //显示过程
  6. 模式:
  7. + //用于增加属性
  8. - //用户删除属性
  9. = //用于指定属性
  10. A //告诉系统不要修改该文件的最后访问时间
  11. a //只能向文件追加数据,不能删除
  12. i //设定文件不能被删除,改名,写入或新增内容
  13. 示例:
  14. [root@hzz ~]# chattr +a hzz.txt //为hzz.txt增加a属性
  15. [root@hzz ~]# lsattr hzz.txt //查看文件特殊属性
  16. -----a-------e-- hzz.txt

5、扩展命令

  1. sleep //睡眠
  2. //写脚本时为防止上一个命令没执行完下一命令就开始执行时可以sleep命令
  3. //语法:sleep NUMBER[SUFFIX]...
  4. SUFFIX
  5. s:秒,默认
  6. m:分
  7. h:小时
  8. d:天
  9. 示例:
  10. sleep 5 //表示睡眠5秒后再执行后面的命令
  11. last //显示/var/log/wtmp文件内容,用户登录历史及系统重启历史
  12. -n # //显示最近#次的相关信息
  13. lastb //显示/var/log/btmp文件内容,用户错误的登录尝试
  14. -n # //显示最近#次的相关信息
  15. lastlog //显示每个用户最近一次成功登录信息
  16. -u username //显示特定用户最近的登录信息
  17. basename //显示路径基名

Linux—权限管理的更多相关文章

  1. Linux系列教程(十六)——Linux权限管理之ACL权限

    通过前面的两篇博客我们介绍了Linux系统的用户管理,Linux用户和用户组管理之相关配置文件 讲解了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow ...

  2. 【Linux】 Linux权限管理与特殊权限

    Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在 ...

  3. Linux基础知识之用户和用户组以及 Linux 权限管理

    已经开始接触Linux用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时候看到这些名词总是下意识的跳过不敢看 ...

  4. Linux权限管理之ACL权限

    注:转载自:https://www.cnblogs.com/ysocean/p/7801329.html 目录 1.什么是 ACL 权限? 2.查看分区 ACL 权限是否开启:dump2fs ①.查看 ...

  5. [Linux 003]——用户和用户组以及 Linux 权限管理(一)

    嗬!没想到吧!学习 Linux 的第三天,我们已经开始接触用户管理,用户组管理,以及权限管理这几个逼格满满的关键字.这几个关键字对于前端程序猿的我来说真的是很高大上有木有,以前尝试学 Linux 的时 ...

  6. 用户和用户组以及 Linux 权限管理

    1.从 /etc/passwd 说起 前面的基本命令学习中,我们介绍了使用 passwd 命令可以修改用户密码.对于操作系统来说,用户名和密码是存放在哪里的呢?我们都知道一个站点的用户名和密码是存放在 ...

  7. Linux权限管理(用户、组、文件管理)

    一. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 1. 文件查看类命令cat,tac, head, tail, more, less, ls ,file: -ls : l ...

  8. linux权限管理-特殊权限

    目录 linux权限管理-特殊权限 一,特殊权限 Linux权限属性chattr概述 linux进程掩码umask linux权限管理-特殊权限 一,特殊权限 1.suid(4000) SetUID( ...

  9. linux权限管理-基本权限

    目录 linux权限管理-基本权限 权限修改命令chmod linux权限管理-基本权限 权限 针对某些文件和进程,对用户进行限制 权限与用户的关系 rwx rwx r-x User Group Ot ...

  10. linux权限管理—基本权限

    目录 Linux权限管理-基本权限 一.权限的基本概述 二.权限修改命令chmod 三.基础权限设置案例 四.属主属组修改命令chown Linux权限管理-基本权限 一.权限的基本概述 1.什么是权 ...

随机推荐

  1. 基于Web的CAD一张图协同在线制图更新轻量级解决方案[示例已开源]

    背景 之前相关的博文中介绍了如果在Web网页端展示CAD图形(唯杰地图云端图纸管理平台 https://vjmap.com/app/cloud),有不少朋友问,能不能实现一个协同的功能,实现不同部门不 ...

  2. SQL Server 2019企业版和标准版的区别?

    来源公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485400&idx=1&a ...

  3. Nginx安装及支持https代理配置和禁用TSLv1.0、TSLv1.1配置

    Linux安装Nginx Nginx安装及支持https代理配置和禁用TSLv1.0.TSLv1.1配置. 下载安装包 [root@localhost ~]# wget http://nginx.or ...

  4. 【实操干货】做好这 16 项优化,你的 Linux 操作系统焕然一新

    大家好,这次跟大家谈谈又拍云的操作系统优化方案.往简单地说,我们使用的 Linux 操作系统主要都是基于 CentOS6/7 的精简和优化.往复杂地说,则是我们有两套系统,业务上使用的定制 Linux ...

  5. Kafka 的稳定性

    一.事务 1. 事务简介 1.1 事务场景 producer发的多条消息组成⼀个事务这些消息需要对consumer同时可⻅或者同时不可⻅ producer可能会给多个topic,多个partition ...

  6. kafka优劣

    kafka优势 可扩展:Kafka集群可以透明的扩展,增加新的服务器进集群. 高性能:Kafka性能远超过传统的ActiveMQ.RabbitMQ等,Kafka支持Batch操作. 容错性:Kafka ...

  7. 牛亚男:基于多Domain多任务学习框架和Transformer,搭建快精排模型

    导读: 本文主要介绍了快手的精排模型实践,包括快手的推荐系统,以及结合快手业务展开的各种模型实战和探索,全文围绕以下几大方面展开: 快手推荐系统 CTR模型--PPNet 多domain多任务学习框架 ...

  8. 使用aggregation API扩展你的kubernetes API

    Overview What is Kubernetes aggregation Kubernetes apiserver aggregation AA 是Kubernetes提供的一种扩展API的方法 ...

  9. ASP.NET MVC的核心-Controller(控制器)

    "每一个请求都必须通过Controller处理,然而其中有些请求是不需要模型和视图的" MVC框架规定带Controller后缀的类称为所谓的"控制器",在xx ...

  10. VisionPro · C# · 加密狗检查程序

    写VisionPro C#项目时,我们需要在程序的启动时加载各种配置文件,以及检查软件授权,以下代码即检查康耐视加密狗在线状态,如查无加密狗,关闭程序启动进程并抛出异常. 1 using System ...