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. Java注释中TODO/FIXME/XXX的含义

    转自:http://free0007.iteye.com/blog/1886526 特殊注释: 1 TODO 表示需要实现,但目前还未实现的功能 2 XXX 勉强可以工作,但是性能差等原因 3 FIX ...

  2. Spring boot 基于Spring MVC的Web应用和REST服务开发

    Spring Boot利用JavaConfig配置模式以及"约定优于配置"理念,极大简化了基于Spring MVC的Web应用和REST服务开发. Servlet: package ...

  3. 按Enter键后Form表单自动提交的问题

    怪事年年有,今年特别多. 话说,最近项目中遇到一件怪事,当我鼠标focus在文本框中,轻轻敲了下回车键,尼玛页面突然刷新了,当时把宝宝给吓得. 接下来就是一番苦逼的烧脑和蛋疼~ 一.被表象所迷惑 突然 ...

  4. linux rpm 安装和卸载

    [root@wang Packages]# mount /dev/cdrom /mnt 挂载 [root@wang Packages]# rpm -ivh zip-3.0-1.el6.x86_64.r ...

  5. 几种语言的CGI编程

    为了了解PHP.JSP.ASP出现之前人们写网站的方法,洒家研究了一波CGI,使用C.Python.batch.shell script语言写了几个简单的网页. CGI即通用网关接口,指web服务器调 ...

  6. 使用Fiddler对Android或者iOS设备进行抓包

    1.PC端Fiddler配置 Tools->HTTPS->选中“Decrpt HTTPS traffic”,“Ignore server certificate errors” Tools ...

  7. C# 中 SQLite 使用介绍

    关于SQLite SQLite是一款轻型的嵌入式的遵守ACID的关系型数据库管理系统,诞生已有15个年头了.随着移动互联的发展,现在得到了更广泛的使用. 在使用SQLite之前,我们势必要先了解它一些 ...

  8. Addthis使用

    一.使用 https://www.addthis.com/.国外的SNS分享站点较多,适用于英文站点内容的分享.有教程. 我的测试代码如下: <html> <meta charset ...

  9. 《2016ThoughtWorks技术雷达峰会----变革的原因》

    变革的原因      张松 ,ThoughtWorks中国区总经理 首先回顾IT历史,观点如下: 1.在80,90年代,IT作为一个种生产效率的提高工具,主要是把手工的活动自动化.以client se ...

  10. MIT 6.824 : Spring 2015 lab2 训练笔记

    源代码参见我的github:https://github.com/YaoZengzeng/MIT-6.824 Lab 2:Primary/Backup Key/Value Service Overvi ...