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. eclipse 编辑器 setDirty方法无效

    可能是因为使用的编辑器继承了FormPage导致的,在setDirty方法里面多加一行getManagedForm().dirtyStateChanged();就可以了.

  2. 001-官网安装openstack之-安装前基础环境准备

    0.安装常用软件包(根据个人习惯安装需要的软件包) [root@localhost ~]# yum -y install wget vim ntp net-tools tree openssh 1.配 ...

  3. 【基本算法入门-字符串哈希(Hash)】-C++

    字符串哈希入门 说得通俗一点,字符串哈希实质上就是把每个不同的字符串转成不同的整数. 为什么会有这样的需要呢?很明显,存储一个超长的字符串和存储一个超大但是能存的下的整数,后者所占的空间会少的多,但主 ...

  4. vue使用Echarts图表

    vue使用Echarts图表 童话_xxv 关注  0.5 2018.12.11 09:09* 字数 325 阅读 1456评论 2喜欢 13 在开发后台系统时,使用图表进行数据可视化,这样会使数据更 ...

  5. Gradle 如何打包 Spring Boot 可执行 JAR

    如何在 Gradle 中配置一个项目可以打包为 Spring Boot 可执行 Jar? 你首先需要添加到 org.springframework.boot 到插件中: 例如下面的代码: plugin ...

  6. Java集合总结(一):列表和队列

    java中的具体容器类都不是从头构建的,他们都继承了一些抽象容器类.这些抽象容器类,提供了容器接口的部分实现,方便具体容器类在抽象类的基础上做具体实现.容器类和接口的关系架构图如下: 虚线框表示接口, ...

  7. 【概率论】3-3:累积分布函数(Cumulative Distribution Function)

    title: [概率论]3-3:累积分布函数(Cumulative Distribution Function) categories: Mathematic Probability keywords ...

  8. tarjan缩点——在农场万圣节Trick or Treat on the Farm

    一个房间能到另一个房间,有向图,奶牛从自己编号(1到n)的点出发,如果回到以前到过的点就停止,问每头奶牛可以经过几个点: 情况分两种, 一,奶牛在环上,能走的是环的大小,二,一条链连接一个环,大小是链 ...

  9. dubbo——高可用性

    一.zookeeper宕机 zookeeper注册中心宕机,还可以消费dubbo暴露的服务 健壮性: 监控中心宕掉不影响使用,只是丢失部分采样数据 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询, ...

  10. 常用SQL之日期格式化和查询重复数据

    本文列举一些工作中常用的SQL,以提升工作效率. 1 日期格式化 使用 DATE_FORMAT(get_date, '%Y-%m-%d') 函数进行格式化.其中:get_date 是需要被格式化的字段 ...