linux中,权限的学习是必不可少的,不论是作为一名运维工程师或者是单一的管理者,学习好linux中的权限控制,你就可以保护好自己的隐私同时规划好你所管理的一切。

权限的学习是很多的,不要认为自己已经把自己的隐私保护的很好,漏洞总是有的,侧面的攻击往往是难以防守的。所以大家跟我一起学习一下基础的权限控制,在后面也会有更多关于权限控制的知识点分享出来。谢谢各位的关注和支持!


 开班第九天:

  今天的课程大纲:

  1. linux系统中文件目录的基本权限控制
  2. 如何来修改默认的生成权限
  3. 三种特殊的权限(s,s,t)

  里面我基本讲了一些概念性问题,还有特殊的一些,应用方面很多,我不可能讲完,这些都还是需要在实践中慢慢充实的。

详细讲解:

  • linux系统中文件目录的基本权限控制

  提到权限问题,我们最先需要知道的是什么,没错就是如何查看权限。这里讲两个方法:

  1. stat+文件名,其中我们看到的644就是该文件的权限

  

  2. ls -l +文件名,这个显示的信息就包括文件的权限

  

  首先我们应该了解一下权限rwx代表什么意思,r表示read,读;w表示write,写;r表示execute,执行。

  其次我们要了解一下权限的构成:使用ls -l来得到的,第一位"-"先不看,直接看后面的九位,rw-r--r--,分成三个三个的看,分别是rw-,r--,r--。分别代表这个文件的拥有者、所属组和其他对这个文件的权限,统称UGO权限,另外我们把rwx分别以421表示,常见的权限有777、755、644等。

  我们知道linux系统中有文件的权限和目录的权限,
  1. 对于文件的权限,我们首先要知道的是如何改变这个文件的权限,使用命令chmod u/g/0+r/w/x 文件名,表示对文件增加或减少r/w/x权限针对于拥有者、所属组、其他。如果是想对所有的都赋权限,那么使用chmod a=rwx 文件名,来改变权限。不过我们常用chmod 777 文件,以数字的形式来进行赋权限。这里说一下文件被执行x的前提是拥有读的权限r。
  2. 目录的权限。对于目录的权限,我们使用ls -ld 目录名,来查看目录的权限。可以看到第一位变成了d,表示目录:dir

   

  rwx对于目录来说,意义是不一样的:r表示列出目录的内容ls,w表示在目录中创建,删除,重命名文件,x表示cd到目录里。要看一个用户是否对文件有写的权限,要看这个用户对文件所在目录是否有x(cd)权限。chmod从文件或者目录层面上改变用户或者组对它的权限,chown和chgrp从用户或者组的层面上改变对它的权限(chown和chgrp只有root用户才能执行)。
  • 如何来修改默认的生成权限

  什么时候生成的默认权限?我们创建一个文件和创建一个目录,都会有一个初始的权限,那么这个权限是怎么设置的。

  umask限制了用户创建文件或者目录的默认权限。我们执行umask。

  

  可以看到root用户的umask为0022,第一位不看,为002。002三个分别表示user,group,other没有的权限,2表示other没有w写的权限,0表示都有。  

  此外还要了解的是,针对文件,初始的权限:666-022=644权限,即rw-r--r--。针对于目录,初始的权限:777-022=755,即rwxr-xr-x。 我们可以直接执行umask+数字来改变umask的值,来控制初始的权限。
  • 三种特殊的权限(s,s,t)
  linux中有三种特殊的权限,sst,分别代表setuid,setgid,stick bit。满权限为rwxrwxrwx,第一个s代表user对应rwx中的x,第二个s代表group对应rwx中的x,第三个t代表other对应rwx中的x。

  
  1. setuid 给一个二进制程序 passwd之类的添加一个s权限,chmod u+s /usr/bin/passwd 表示其他用户可以以root(拥有者)的身份去执行passwd命令,本来passwd是修改/etc/passwd文件的,其他用户是修改不了,现在可以。
  2. setgid要针对于二进制程序和目录dir来说。setgid 给一个二进制程序 效果跟setuid一样,以root(所属组)身份去执行touch mkdir之类的命令,这样创建的文件所属组就是root了,chmod g+s /bin/touch。setgid给dir添加s权限,表示A用户在B目录中创建的文件的所属组会变成B目录的所属组,继承。 chmod g+s /dir。

总结:

  权限的控制有很多应用,这个要灵活运用,三种特殊权限需要理解,用的方面不多,但是要要知道这一点。

博客园:爱家人爱老婆的IT男

QQ群:145252709,我会上传资源,同时会有很多大神跟你们讨论学习分享 

微信公众号:程序猿的野生香蕉【获取文章中出现的工具】

<实训|第九天>掌握linux中普通的权限控制和三种特殊的权限(sst),做合格的运维工程师的更多相关文章

  1. <实训|第十三天>linux中ACL权限控制以及磁盘配额,附编译属于自己的linux内核

    [root@localhost~]#序言 首先讲讲昨天关于缩容失败,开不机的解决方法:ACL权限也算是一个很重要的知识点,不难,但是很实用:磁盘配额一般不需要自己弄,但是要懂得原理.剩下的就是编译属于 ...

  2. Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  3. [转]Linux中设置服务自启动的三种方式

    from:http://www.cnblogs.com/nerxious/archive/2013/01/18/2866548.html 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统 ...

  4. Linux中创建Daemon进程的三种方法

    什么是daemon进程? Unix/Linux中的daemon进程类似于Windows中的后台服务进程,一直在后台运行运行,例如http服务进程nginx,ssh服务进程sshd等.注意,其英文拼写为 ...

  5. Linux中设置服务自启动的三种方式,ln -s 建立启动软连接

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务(http://www.0830120.com) 主要用三种方式进行这一操作: ln -s 在/etc/rc.d/rc*.d目录中建立 ...

  6. (转)Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  7. 【转发】Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  8. Linux运维工程师简历项目经验

    如何做好一个合格的运工程师,运维工程师前景怎么样呢?就这些问题,与大家交流一下.首先对于运维工程师的要求是十分严苛的了,运维工程师不但要针对不同的问题做出响应,而且需要不断的补充自己的知识面,并不继提 ...

  9. 转:linux运维工程师

    运维中关键技术点解剖:1 大量高并发网站的设计方案:2 高可靠.高可伸缩性网络架构设计:3 网站安全问题,如何避免被黑?4 南北互联问题,动态CDN解决方案:5 海量数据存储架构 一.什么是大型网站运 ...

随机推荐

  1. Drupal7网站+IIS7.0+PHP+MySql

    .服务器系统环境 Windows Server R2 Enterprise 64位操作系统 .所需软件 IIS7 PHPManager http://phpmanager.codeplex.com/r ...

  2. HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较

    摘要:   在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题. ...

  3. android java substring说明

    substring(参数)是java中截取字符串的一个方法有两种传参方式一种是public String substring(int beginIndex)返回一个新的字符串,它是此字符串的一个子字符 ...

  4. 发现struct proc_dir_entry内核3.10.17移到internal中去了,倒

    struct proc_dir_entry 原:2.6.38.8 在#include <linux/proc_fs.h> 现:3.10.17 在fs/proc/internal.h:str ...

  5. KEIL MDK STM32如何建立工程

    2. 3 4 5 6 7 QQ 463431476 8 9

  6. openwrt修改flash大小

    前言 默认openwrt trunk编译出来的flash大小为8M,但是我们手上的板子可能flash大小更大,本文以MT7620a为例,将其flash大小由8M修改为16M或者32M 增加dts文件 ...

  7. Fitbit Flex 智能手环佩戴心得 主要说说过敏

    参杂一篇杂文. 也是因为体重飙升,所以去年下半年的时候入手了一个Fitbit flex. 当时相比Jawbone up,nfc和ble的特性,以及防水性还是更吸引我一点.所以就入手了. 佩带了如此长的 ...

  8. 使用HTTP方式远程连接PowerShell

    借助Windows PowerShell,我们可以像管理Linux一样使用命令行来远程管理Windows服务器.但是默认情况下,我们只能在域环境中使用PowerShell Remoting.如果是通过 ...

  9. POJ1270 Following Orders[拓扑排序所有方案 Kahn]

    Following Orders Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4885   Accepted: 1973 ...

  10. Android驱动入门-LED--HAL硬件抽象层程序设计①

    硬件平台: FriendlyARM Tiny4412 Cortex-A9 操作系统: UBUNTU 14.04 LTS 时间:2016-09-21  16:15:26 设计HAL硬件抽象层程序,则需要 ...