1,创建文件的用户和他所属的组拥有该文件,文件的属主可以设定谁具有读、写、执行该文件的权限,根用户可以改变任何普通用户的设置。

2,一个文件一经创建,就具有三种访问权限:读(可以显示该文件的内容)、写(可以编辑或删除它),执行(如果该文件是一个shell脚本或程序)

3,按照针对的用户,文件的权限分为三类:文件属主(创建该文件的用户)、同组用户(拥有该文件的用户组中的任何用户)、其他用户(不属于拥有该文件的用户组的某一用户)

4,解析文件描述

total 4232:该目录中所有文件所占空间

-rwxr-xr-x:说明文件权限。除去前面横杠,一共9个字符,对应9个权限,分为3组

  rwx:文件属主权限(前三位)

  r-x:同组其他用户权限(中间三位)

  r-x:其他用户权限(后三位)

出现在rwx位置上的横杠表示相应的访问权限被禁止

1:该文件硬链接的数目

root:文件的属主

root:文件的属主所在的缺省组

3578:用字节来表示文件的长度

Oct 14 04:44 文件的更新时间

demsg:文件名

5,-rwxrwxrwx 前面的横杠表示的是文件的类型。

  d(目录)、l(符号链接)、s(套接字文件)、b(块设备文件)、c(字符设备文件)、p(命令管道文件)-(普通文件,确切的说是不属于以上几种类型的文件)

6,系统在创建文件的时候,出于加强系统安全的考虑,系统不会自动设置执行权限位,必须手动修改。chmod命令可以改变文件权限位的设置。

  chmod [who] operator [permission] filename

  who:u(文件属主权限)、g(同组用户权限)、o(其他用户权限)、a(所有用户:文件属主、同组用户、其他用户)

  operator:+(增加权限)、-(取消权限)、=(设定权限)

  permission:r(读权限)、w(写权限)、x(执行权限)、s(文件属主和组set-ID)、t(粘性位*)、l(给文件加锁、使其他用户无法访问)、u,g,o(针对文件属主、同组用户以及其他用户的操作)

  *:在列文件或目录时,有时会遇到‘t’位。‘t’位代表了粘性位。如果一个目录上出现了t位,表示该目录中的文件只有属主才能删除,即使某个同组用户具有和属主同等权限。

  如果在文件列表时,看到t,表示该脚本或程序被执行时,会被放在交换区(虚存)。

  chmod a-x filename   收回所有用户的执行权限

  chmod og+w filename  赋予同组用户和其他用户写权限

  chmod u+x o-w filename   赋予属主执行权限,取消其他用户写权限

7,chmod命令绝对模式

  chmod [mode] file  mode是一个八进制数,每一个权限位用一个八进制数来表示

  0400(属主可读)、0200(属主可写)、0100(属主可执行)

  0040(同组可读)、0020(同组可写)、0010(同组可执行)

  0004(其他可读)、0002(其他可写)、0001(其他可执行)

  在设定权限时,只需要找到相应数字,相加即可。最大权限位7

  例如:-rw-r--r--表示的权限为644,即0400+0200属主可读写,0040同组可读,0004其他可读

  r+w+x = 4+2+1

  chmod 444 file  赋予所有用户读权限

  chmod 644 *   一次设置目录下所有文件的权限,文件属主具有读写权限,同组用户和其他用户只要读权限

  chmod -R 664 /usr/local/home/dave/*   一次性将dave目录下的所有文件连同各个子目录下的文件的权限,全部设置为文件属主和同组用户可读可写,其他用户只读(只有在改变目录树下全部文件权限时,才可以使用-R)

8,读指列出文件目录的权限,写指在该目录中创建或删除文件的权限,执行指搜索或进入该目录的权限

9,目录的权限级别大于目录中文件的权限级别

  

10,suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时,也会具有其属主的相应权限。于是,如果根用户的某一脚本设置了这样的权限,那么其普通用户在执行它的期间,也同样有根用户的权限。同样的原则也适用于guid,执行相应脚本的用户将具有该文件所属用户组中用户的权限。

  想找出设置了suid和guid的命令,可以进入/bin或/sbin目录执行下面的命令

  

  如果希望设置suid,那么就将相应权限位之前的那一位设置为4,如果希望设置guid,那么就将相应权限位之前的那一位设置为2,如果希望同时设置,那么相应权限位之前的那一位设置为4+2。

  一旦设置了这一位,一个s将出现在x的位置上。在设置suid或guid的同时,相应的执行权限位必须要被设置。

  

rwS rw-rw-表示该文件没有设置执行位,这是一种没有任何用处的suid设置

chmod不进行必要的完整性检查

11,只有文件的属主和系统管理员可以改变文件的所有权,一旦将文件的所有权交给另外一个用户,将无法再重新收回它的所有权,如果真的要收回,就只能求助于系统管理员。

  chown命令的一般形式:chown -R -h owner file

  -R表示对所有子目录下的文件也进行同样的操作。-h表示在改变符合链接文件的属主时,不影响该链接所指向的目标文件。

12,

13,找出自己所属的用户组

14,找出其他用户的组

15,当我们登录系统后创建文件时,总有一个默认权限,这就是umask干的事情,umask设置了用户创建文件的默认权限。与chmod相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般来说umask是在/etc/profile文件中设置的,每个用户登录时都会引用这个文件。如果希望永久性的设置自己的umask,就将它放在自己$HOME目录下的.profile或.bash_frofile文件中。

  对于文本文件来说,umask的最大值是6,对于目录来说,umask最大是7。因为系统不允许在创建一个文本文件时就赋予它执行权限,必须在创建后使用chmod增加,目录则允许设置执行权限。

  umask命令形式:umask nnn  nnn范围是000-777

  umask的计算是从权限中拿走相应的位即可。例如umask是002,则对于文件的缺省权限是664,针对目录的权限是775

  

  如果想知道umask的值,可以使用umask命令

  

16,符号链接:存在两种不同类型的链接,软链接和硬链接。

  软链接实际就是一个指向文件的指针。比如,有很多子目录,进入很浪费时间,那就可以在方便的位置针对这个很深的子目录创建一个链接。链接的名字可以和源文件不同。

  命令模式:ln [-s] source_path target_path  其中的路径可以是目录页可以是文件,若target不存在,系统会自动创建

  链接一旦创建,链接目录将具有权限777(对原有文件的权限不会产生改变),所以不要忘记在原有目录设置执行权限

shell学习笔记1-文件安全与权限的更多相关文章

  1. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  2. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

  3. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  4. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  5. shell 学习笔记2-shell-test

    一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...

  6. SHELL学习笔记三

    SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...

  7. MongoDB学习笔记(三)--权限 && 导出导入备份恢复 && fsync和锁

    权限                                                                                             绑定内网I ...

  8. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  9. Linux学习笔记1_用户和权限

    自从我大微软终于放下身段,决定给开源社区一个迟来的拥抱,追随多年的拥趸们像是突然得到了女神的垂青,各种茫然失措.痛哭流涕.欢欣鼓舞,纷纷唱了起来:“等了好久终于等到今天,梦了好久终于把梦实现……”唱完 ...

随机推荐

  1. redis在应用中使用连接不释放问题解决

    今天测试,发现redis使用的时候,调用的链接一直不释放.后查阅蛮多资料,才发现一个配置导致的.并不是他们说的服务没有启动导致的. 1)配置文件 #redis连接配置================= ...

  2. 使用谷歌chrome浏览器查看任何标签的固有属性

    查看任何标签的固有属性property: 使用谷歌浏览器:Ctrl+Shift+I 开发者工具----点击Elements----点击a标签----点击Properties属性及其属性值. 自定义属性 ...

  3. [Luogu] 最大收益

    题面:https://www.luogu.org/problemnew/show/P2647 题解:https://www.zybuluo.com/wsndy-xx/note/1142685

  4. 【线性代数】7-3:对角化和伪逆(Diagonalization and the Pseudoinverse)

    title: [线性代数]7-3:对角化和伪逆(Diagonalization and the Pseudoinverse) categories: Mathematic Linear Algebra ...

  5. 基于ARM的SoC设计入门[转]

    原文:基于ARM的SoC设计入门 我们跳过所有对ARM介绍性的描述,直接进入工程师们最关心的问题.要设计一个基于ARM的SoC,我们首先要了解一个基于ARM的SoC的结构.图1是一个典型的SoC的结构 ...

  6. 数据结构实验之图论八:欧拉回路(SDUT 3364)

    Problem Description 在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个岛及岛与河岸连接起来. 能否走过这样的七座桥,并且每桥只走一次?瑞士数学家欧拉最终解决了这个问题并由此创立了拓 ...

  7. vue实战_从头开始搭建vue工程

    写在前面:vue工程入口文件分析 /index.html,/src/main.js,/src/APP.vue /index.html文件示例: <!DOCTYPE html> <ht ...

  8. APP相关测试工具

    名称 描述   性能检测工具 用于对插件CPU.内存.闪退进行测试   接口测试工具 用于对插件本版本内的接口进行上线前的结构检测 自动比对差异   monkey测试工具 对主软件进行稳定性测试   ...

  9. JS获取div高度的方法

    有时在写页面时,需要获取一个div的高度.怎么才能获取呢?哈哈,先上结论.有两种方法. offsetHeight .clientHeight getComputedStyle offsetHeight ...

  10. JSON字符串控制台格式化输出 java

    1.正常情况下返回的json数据格式如下: {"header":{"transSn":"e33128bb7622462ebfb2cbfcc46baa1 ...