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. 如果简化stm32中printf函数的使用——首先重定向

    STM32单片机极简方法 使用宏定义 代替复杂的重定向printf()函数,实现串口打印.(HAL库例程)https://blog.csdn.net/wu10188/article/details/9 ...

  2. Codeforces Round #551 (Div. 2) E. Serval and Snake (交互题)

    人生第一次交互题ac! 其实比较水 容易发现如果查询的矩阵里面包含一个端点,得到的值是奇数:否则是偶数. 所以只要花2*n次查询每一行和每一列,找出其中查询答案为奇数的行和列,就表示这一行有一个端点. ...

  3. Codeforces Round #584 A. Paint the Numbers

    链接: https://codeforces.com/contest/1209/problem/A 题意: You are given a sequence of integers a1,a2,-,a ...

  4. RedisTemplate 中 opsForHash()使用 (没有测试过,copy的)

    1.put(H key, HK hashKey, HV value) //新增hashMap值 redisTemplate.opsForHash().put("hashValue" ...

  5. AtCoder Beginner Contest 116 C题 【题意:可以在任意区间【L,R】上加1,求通过最少加1次数得到题目给定的区间】】{思维好题}

    C - Grand Garden In a flower bed, there are NN flowers, numbered 1,2,......,N1,2,......,N. Initially ...

  6. pyecharts v1 版本 学习笔记 散点图

    散点图 基本案例 from example.commons import Faker from pyecharts import options as opts from pyecharts.char ...

  7. Codeforces 1221 G Graph And Numbers

    题面 这种比赛时只有11个人做出来的题一般来说都是暴难的, 我也不知道我怎么搞出来的www 看完这个题第一感觉就是要容斥,至少有一条某种边的方案已经比较难求了,而直接算三种边都至少存在一条的方案数就更 ...

  8. [TJOI2019]唱、跳、rap和篮球

    嘟嘟嘟 TJ律师函警告 20分暴力比较好拿,因为每一种学生可以理解为无限多,那么总方案数就是\(C_{n} ^ {4}\),然后我们枚举至少讨论cxk的有几组,容斥即可. 需要注意的是,容斥的时候还要 ...

  9. 【csp模拟赛6】树上统计-启发式合并,线段树合并

    30%:暴力 40%:枚举L,R从L~n枚举,R每增大一个,更新需要的边(bfs实现)60%:枚举每条边, 计算每条边的贡献另外20%的数据:枚举每条边,计算每条边的贡献100%:对于每一条边统计 有 ...

  10. GAN生成式对抗网络(一)——原理

    生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型 GAN包括两个核心模块. 1.生成器模块 --generator 2.判别器模块--de ...