1、文件的读、写、执行权限可以简写为 r w x,亦可分别用数字4、2、1来表示

2、文件的特殊权限

  2.1、SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。例如,所有用户都可以执行passwd命令来修改自己的用户密码,而用户密码保存在/etc/shadow文件中。仔细查看这个文件就会发现它的默认权限是000,也就是说除了root管理员以外,所有用户都没有查看或编辑该文件的权限。但是,在使用passwd命令时如果加上SUID特殊权限位,就可让普通用户临时获得程序所有者的身份,把变更的密码信息写入到shadow文件中。这很像我们在古装剧中见到的手持尚方宝剑的钦差大臣,他手持的尚方宝剑代表的是皇上的权威,因此可以惩戒贪官,但这并不意味着他永久成为了皇上。因此这只是一种有条件的、临时的特殊权限授权方法。

查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。另外有读者会好奇,那么如果原本的权限是rw-呢?如果原先权限位上没有x执行权限,那么被赋予特殊权限后将变成大写的S。

  1. [root@linuxprobe ~]# ls -l /etc/shadow
  2. ----------. 1 root root 1004 Jan 3 06:23 /etc/shadow
  3. [root@linuxprobe ~]# ls -l /bin/passwd
  4. -rwsr-xr-x. 1 root root 27832 Jan 29 2017 /bin/passwd

  2.2、SGID主要实现如下两种功能:

让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);

在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

  2.3、SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后,那么该目录中的文件就只能被其所有者执行删除操作了。

最初不知道是哪位非资深技术人员将Sticky Bit直译成了“粘滞位”,刘遄老师建议将其称为“保护位”,这既好记,又能立刻让人了解它的作用。RHEL 7系统中的/tmp作为一个共享文件的目录,默认已经设置了SBIT特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件。

3、sudo命令具有如下功能:

限制用户执行指定的命令:

记录用户执行的每一条命令;

配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;

验证密码的后5分钟内(默认值)无须再让用户再次验证密码。

4、一切从“/”开始

FHS是根据以往无数Linux系统用户和开发者的经验而总结出来的,是用户在Linux系统中存储文件时需要遵守的规则,用于指导我们应该把文件保存到什么位置,以及告诉用户应该在何处找到所需的文件。但是,FHS对于用户来讲只能算是一种道德上的约束,有些用户就是懒得遵守,依然会把文件到处乱放,有些甚至从来没有听说过它。这里并不是号召各位读者去谴责他们,而是建议大家要灵活运用所学的知识,千万不要认准这个FHS协定只讲死道理,不然吃亏的可就是自己了。在Linux系统中,最常见的目录以及所对应的存放内容如下所示

目录名称 应放置文件的内容
/boot 开机所需文件—内核、开机菜单以及所需配置文件等
/dev 以文件形式存放任何设备与接口
/etc 配置文件
/home 用户主目录
/bin 存放单用户模式下还可以操作的命令
/lib 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数
/sbin 开机过程中需要的命令
/media 用于挂载设备文件的目录
/opt 放置第三方的软件
/root 系统管理员的家目录
/srv 一些网络服务的数据文件目录
/tmp 任何人均可使用的“共享”临时目录
/proc 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等
/usr/local 用户自行安装的软件
/usr/sbin Linux系统开机时不会使用到的软件/命令/脚本
/usr/share 帮助与说明文件,也可放置共享文件
/var 主要存放经常变化的文件,如日志
/lost+found 当文件系统发生错误时,将一些丢失的文件片段存放在这里

在Linux系统中另外还有一个重要的概念—路径。路径指的是如何定位到某个文件,分为绝对路径与相对路径。绝对路径指的是从根目录(/)开始写起的文件或目录名称,而相对路径则指的是相对于当前路径的写法。我们来看下面这个例子,以帮助大家理解。假如有位外国游客来到中国潘家园旅游,当前内急但是找不到洗手间,特意向您问路,那么您有两种正确的指路方法。

绝对路径(absolute path):首先坐飞机来到中国,到了北京出首都机场坐机场快轨到三元桥,然后换乘10号线到潘家园站,出站后坐34路公交车到农光里,下车后路口左转。

相对路径(relative path):前面路口左转。

5、物理设备的命名规则

在Linux系统中一切都是文件,硬件设备也不例外。既然是文件,就必须有文件名称。系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等;这对于陌生的设备来说特别方便。另外,udev设备管理器的服务会一直以守护进程的形式运行并侦听内核发出的信号来管理/dev目录下的设备文件。Linux系统中常见的硬件设备的文件名称如下表所示。

常见的硬件设备及其文件名称

硬件设备 文件名称
IDE设备 /dev/hd[a-d]
SCSI/SATA/U盘 /dev/sd[a-p]
软驱 /dev/fd[0-1]
打印机 /dev/lp[0-15]
光驱 /dev/cdrom
鼠标 /dev/mouse
磁带机 /dev/st0或/dev/ht0

由于现在的IDE设备已经很少见了,所以一般的硬盘设备都会是以“/dev/sd”开头的。而一台主机上可以有多块硬盘,因此系统采用a~p来代表16块不同的硬盘(默认从a开始分配),而且硬盘的分区编号也很有讲究:

主分区或扩展分区的编号从1开始,到4结束;

逻辑分区从编号5开始。

国内很多Linux培训讲师以及很多知名Linux图书在讲到设备和分区名称时,总会讲错两个知识点。第一个知识点是设备名称的理解错误。很多培训讲师和Linux技术图书中会提到,比如/dev/sda表示主板上第一个插槽上的存储设备,学员或读者在实践操作的时候会发现果然如此,因此也就对这条理论知识更加深信不疑。但真相不是这样的,/dev目录中sda设备之所以是a,并不是由插槽决定的,而是由系统内核的识别顺序来决定的,而恰巧很多主板的插槽顺序就是系统内核的识别顺序,因此才会被命名为/dev/sda。大家以后在使用iSCSI网络存储设备时就会发现,明明主板上第二个插槽是空着的,但系统却能识别到/dev/sdb这个设备就是这个道理。

第二个知识点是对分区名称的理解错误。很多Linux培训讲师会告诉学员,分区的编号代表分区的个数。比如sda3表示这是设备上的第三个分区,而学员在做实验的时候确实也会得出这样的结果,但是这个理论知识是错误的,因为分区的数字编码不一定是强制顺延下来的,也有可能是手工指定的。因此sda3只能表示是编号为3的分区,而不能判断sda设备上已经存在了3个分区。

《linux就该这么学》课堂笔记08 用户权限、特殊权限、隐藏权限、su、sudo的更多相关文章

  1. 《Linux就该这么学》培训笔记_ch05_用户身份与文件权限

    <Linux就该这么学>培训笔记_ch05_用户身份与文件权限 文章最后会post上书本的笔记照片. 文章主要内容: 用户身份与能力 文件权限与归属 文件的特殊权限 文件的隐藏属性 文件访 ...

  2. Linux用户、用户组、文件权限学习笔记

    最近打算更仔细学习一下linux操作系统.先是恶补了一下用户.用户组.文件权限这三样比较重要的知识.学习这几样东西,得先掌握linux的权限系统相关知识.linux的权限系统主要是由用户.用户组和权限 ...

  3. Linux就该这么学 20181004(第五章用户权限)

    参考链接https://www.linuxprobe.com/ Linux是一个多用户.多任务的操作系统,具有很好的稳定性与安全性,在幕后保障Linux系统安全的则是一系列复杂的配置工作.本章将 详细 ...

  4. Linux之文件(目录)默认权限、特殊权限与隐藏权限

    文件默认权限 从Linux之用户组.文件权限详解了解到文件与目录的基本权限管理,文件在创建时如果不指定具体的权限,那么系统会给它分配一个默认的权限,这个默认权限就是umask. vbird@Ubunt ...

  5. 《linux就该这么学》课堂笔记04 常用命令cat、mor...tar、find

    本节命令汇总 命令 说明 格式 常用参数 实例 备注 cat 查看纯文本文件(内容较少) cat [选项] 文件名称 -n 显示行号 cat -n install-setup-ks.cfg 查看ins ...

  6. 《linux就该这么学》课堂笔记15 vsftpd文件传输、Samba/NFS文件共享

    1.为了能够在如此复杂多样的设备之间(Windows.Linux.UNIX.Mac等不同的操作系统)解决问题解决文件传输问题,文件传输协议(FTP)应运而生. FTP服务器是按照FTP协议在互联网上提 ...

  7. 《linux就该这么学》学习笔记

    本篇文章是根据刘遄老师的<linux就该这么学>中个人易忘知识点的读书笔记,结合的是个人弱点,可能不适合广大的网友同学,并在此声明本篇文章只是用于学习之用,绝无侵犯版权之意 linux就该 ...

  8. LInux 就该这么学 笔记分享

    看了Linux就该这么学的前部分书,觉得写的还可以,就在网上找了下面这个同学写的笔记,觉得很详细,所以保存地址,供以后查阅参看.这里对作者表示感谢!!! 博客地址: https://www.cnblo ...

  9. 《Linux就该这么学》培训笔记_ch02_一些必须掌握的Linux命令

    本文在原来作者的基础上做一些符合自己的修改.原文参考: <Linux就该这么学>培训笔记_ch02_一些必须掌握的Linux命令.     本章的内容虽然多,基本都是书本原话,但是笔记能精 ...

随机推荐

  1. LG2512/BZOJ1045 「HAOI2008」糖果传递 中位数

    问题描述 LG2512 BZOJ1045 题解 这是一个链状问题的环状版本. 问题最终变为给定数轴上的\(n\)个点,找出一个到他们的距离之和尽量小的点,而这个点就是这些数中的中位数. 网络流24题的 ...

  2. Python进阶-XI 常用模块之一:collections、time、random、os、sys

    简要介绍一下各种集合: 列表.元组.字典.集合(含frozenset).字符串.堆栈(如手枪弹夹:先进后出).队列(如马克沁机枪的弹夹:先进先出) 1.collections 1)queue 队列介绍 ...

  3. Umi + Dva的数据传递学习Demo(代码有详细注释)

    刚学习时写了篇笔记,以免自己忘记,用了一段时间后,觉得不如做个demo,代码写上注释,方便也在学习umi-dva的同学们理解更好,更容易上手. 这可能是网上注释最多,看了最易理解的学习小指南吧,哈哈. ...

  4. 【转】Java 泛型

    转载:https://www.cnblogs.com/lwbqqyumidi/p/3837629.html. 一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: public ...

  5. Python程序设计例题

    例一:蒙特卡罗方法求解 π 值 from random import random from math import sqrt from time import clock DARTS=1000 hi ...

  6. 100教程-100jc.cn

    个人编程笔记网站(持续更新) http://100jc.cn

  7. (六)golang--变量

    什么是变量? 变量相当于内存空间中一个数据存储空间的表示,可以理解为一个门的房牌号:该区域有自己的名称(变量名)和类型(数据类型) 变量的使用步骤:申明--赋值--使用 package main im ...

  8. 论文阅读: Infrastructure-Based Calibration of a Multi-Camera Rig

    Abstract 在线标定很重要. 但是目前的方法都计算量都很高. 我们的方案不需要标定板之类的东西. 我们的方案不需要假设相机有重合的FOV,也不需要任何的初始猜测. 当相机模组行驶穿过之前建过地图 ...

  9. 用Java编程能给物联网(IoT)带来什么优势与不同?

    用Java编程能给物联网(IoT)带来什么优势与不同? 这是一个不太容易回答的问题,也是一个适合拿出来与大家讨论的一个话题~首先需要聊聊物联网硬件与嵌入式设备有什么不同.嵌入式设备通常是一个软件一体的 ...

  10. linux安装go环境并编写第一个go程序

    1.从官网下载go源码包 wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz 2.在/usr/local下解压源码包 sudo tar ...