一、文件系统和安全

chmod命令

chmod命令有两种模式,一种是符号模式,用ugo执行用户,用rwx执行权限;另一种是绝对模式,用八进制不同位置的不同值来代表不同用户的不同权限。

  • 符号模式

chmod命令的格式为 chmod [who] operator [permission] filename

其中[who]的取值可以为

 u:文件属主的权限
g:用户所在组的权限
o:其他用户权限
a:所有用户权限
如果省略[who]参数,会同时为u和g设置权限,即同时为属主和用户所在组设置权限

operator取值为

 +:增加权限
-:取消权限
=:设定权限

permission

 r:读
w:写
x:执行
另外还有s,t,l,u,g,o不常用

命令举例,

 chmod +x temp //为属主和所用所在组增加执行权限
chmod a-w temp //收回所有用户的写权限(当然属主自己执行的话已然会有w权限)

绝对模式

绝对模式下,chmod命令的格式为 chmod [mode] file

[mode]是一个八进制数,八进制数与用户对应关系如下,

     文件属主可读
文件属主可写
文件属主可执行 属组用户可读
属组用户可写
属组用户可执行 其他用户可读
其他用户可写
其他用户可执行

将相同类型用户所拥有的权值相加就是这类用户最终的权限,

例如

令属主可读写并能执行,则权值为4+2+1=7

属组可读不可写可执行,则权值为4+0+1=5

其他用户可读不可写不可执行,则权值为4+0+0=4

最终我们设置权限的命令就是 chmod 754 filename

用下面方式表达更直观,

 文件属主:r w x: +  +
属组用户:r w x: + +
其他用户:r w x: + +

硬连接和软连接

文件节点

在linux底层,并不是按照文件名来唯一标识一个文件,而是通过文件节点(inode)来标识的。

硬连接

Hard Link就是建立多个不同文件名,但是文件节点相同的文件(即在底层属于同一个地址空间),用命令 ln f1 f2

软连接

也叫符号链接(Symbolic link)就是建立元文件的一个文本文件,保存着原文件的位置信息,访问软连接文件也等同于访问原文件,类似windows的快捷方式。

软连接与硬连接的区别在于删除文件,如果删除一个文件,对它的硬连接文件不会有影响(相当于硬连接文件取代了原文件),但是其软连接文件不再是有效文件。

下面举例说明,

随便新建一个文件  echo agfgfgfdg3fsfsdf > f1

新建硬连接    ln f1 f2

新建软连接    ln -s f1 f3

如果修改f3    echo 23423423 >> f3

会发现f1和f2都被修改了

 cat f3
agfgfgfdg3fsfsdf
 cat f2
cat f3
agfgfgfdg3fsfsdf
 cat f1
agfgfgfdg3fsfsdf

如果删除f1, 会发现其硬连接f2已然可访问,但是软连接f3已经无效了,

 cat f3
cat: f3: No such file or directory

Linux Shell基础知识的更多相关文章

  1. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

  2. Linux Shell 基础知识(一)

    1. 本文知识结构 2. shell 基础知识 2.1 shell 简单介绍 ​ GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + ...

  3. Linux Shell 基础知识(二)

    1.本文知识结构 2.文件的查询与检索 2.1. cd 目录切换 找到文件/目录位置:cd 切换到上一个工作目录: cd - 切换到home目录: cd or cd ~ 显示当前路径: pwd 更改当 ...

  4. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  5. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  6. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  7. Linux Shell基础(下)

    Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...

  8. linux shell 基础 使用日志与心得

    linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现#!/bin/bash是指此脚本使用/bin/bash来解释执行.其中,#!是一个特殊的表示符,其后,跟着解释此脚 ...

  9. shell基础知识总结

    1. shell 对于一台计算机而言,其硬件受系统内核的控制,使用者想要控制计算机,就必须有与系统内核进行通讯的手段.而shell就是使用者与计算机进行通讯的手段之一.从命名上看,shell其实是相对 ...

随机推荐

  1. php数组合并&去重&恢复索引demo

    <?php $tmp = array('a','b','v'); $tmp_1 = array('a','s','asdf'); $res = array_merge($tmp,$tmp_1); ...

  2. 我喜欢ASP.NET的MVC因为它牛逼的9大理由(转载)

    我很早就关注ASP.NET的mvc的,因为最开始是学了Java的MVC,由于工作的原因一直在做.Net开发,最近的几个新项目我采用了MVC做了,我个一直都非常喜欢.Net的MVC.我们为什么使用MVC ...

  3. JMeter学习-032-JMeter常见四种变量简介

    在JMeter自动化测试脚本编写过程中,经常需要对测试脚本进行一些参数设置.例如,设置测试计划的全局变量(方便切换不同的测试环境).样本线程(HTTP请求等)的参数传递等. 通常,JMeter中常用的 ...

  4. LeetCode Counting Bits

    原题链接在这里:https://leetcode.com/problems/counting-bits/ 题目: Given a non negative integer number num. Fo ...

  5. JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作

    基本IO操作 . 文本数据IO操作 java标准IO(input/output)操作 package day07; import java.io.FileOutputStream; import ja ...

  6. java字典序全排列

    import java.util.Arrays; /** *字典序全排列 *字符串的全排列 *比如单词"too" 它的全排列是"oot","oto&q ...

  7. SQL,根据不同条件拼接不同SQL,非if拼接 改为SQL where形式

    (参数) and 其他条件)

  8. NSURLSession访问网络数据

    1.NSMutableURLRequest的设置 //创建NSMutableURLRequest对象 NSMutableURLRequest *request = [NSMutableURLReque ...

  9. 暑假CTF训练一

    暑假CTF训练一 围在栅栏中的爱 题目: 最近一直在好奇一个问题,QWE到底等不等于ABC? -.- .. --.- .-.. .-- - ..-. -.-. --.- --. -. ... --- ...

  10. AD10的PCB设计规则

    PCB布线规则,布板需要注意的点很多,但是基本上注意到了下面的这此规则,LAYOUT PCB应该会比较好,不管是高速还是低频电路,都基本如此. 1. 一般规则 1.1 PCB板上预划分数字.模拟.DA ...