1、文件权限

1.1 用户有一个称为setuid(S)的特殊权限,它出现在执行权限(x)的位置,setuid权限允许用户以拥有者的权限来执行可执行文件,即使这个可执行文件是由

其他用户运行的。

具有setuid权限的文件的权限序列如下:

-rwS------

setuid的使用不是无限制的,为了确保安全,只能使用在linux ELF 格式二进制文件上,而不能用于脚本文件。

1.2 目录拥有一个特殊的权限,叫做粘滞位(sticky bit)。如果目录设置了粘滞位,只有创建该目录的用户才能删除目录中的文件,即使用户组和其他用户也有写权限,也无能为力。粘滞位出现在其他用户权限的执行权限位(x),使用 t 或 T 来表示。如果没哟设置执行权限,但设置了粘滞位,就用 t 表示,如果同时设置了执行权限和粘滞位,就是用 T 。

例如:

d------rwt

d------rwT

设置目录粘滞位的一个典型例子就是/tmp

l例如:

drwxrwxrwt  17 root root    12288 12月 28 18:40 tmp

1.3 设置不可修改的文件

chattr +i filname

1.4 打印出当前目录下的符合链接

ls -l | grep "^l"             解释: ^ 是字符串的起始标记

readlink 打印出符合链接指向的目标路径

例如:

root@hbg:/etc/rc.d# readlink S11sysctl
../init.d/sysctl

1.5 打印文件类型

file  filename

例如:

hbg@hbg:~/tarfiles$ file qsdk-qca-shortcut-fe-2.7.029.tar.bz2
qsdk-qca-shortcut-fe-2.7.029.tar.bz2: bzip2 compressed data, block size = 900k

hbg@root:~/dl$ file b.txt
b.txt: ASCII text
hbg@root:~/dl$ file base.sh
base.sh: Bourne-Again shell script, UTF-8 Unicode text executable

hbg@root:~/dl$ file *
111:               setgid, directory
aaa:               symbolic link to a.txt
add.sh:            Bourne-Again shell script, ASCII text executable
apple.sh:          Bourne-Again shell script, ASCII text executable
array.sh:          Bourne-Again shell script, ASCII text executable
a.txt:             ASCII text
base.sh:           Bourne-Again shell script, UTF-8 Unicode text executable
bc.sh:             POSIX shell script, ASCII text executable
b.txt:             ASCII text
cecho.sh:          ASCII text
checkword.sh:      ASCII text
c.txt:             ASCII text
duplicate_files:   empty
duplicate_samples: empty
filestat.sh:       UTF-8 Unicode text
getoopt.c:         C source, ASCII text
interactive.sh:    UTF-8 Unicode text
isroot.sh:         POSIX shell script, ASCII text executable
junk.data:         data
log.sh:            Bourne-Again shell script, ASCII text executable
makemore.sh:       ASCII text
printf.sh:         POSIX shell script, UTF-8 Unicode text executable
remove_dup.sh:     ASCII text
rename.sh:         UTF-8 Unicode text
rmmore.sh:         ASCII text
sleep.sh:          Bourne-Again shell script, ASCII text executable
test:              directory
test.sh:           ASCII text

1.6 查找文件差异并进行修补

命令 :  diff

非一体化(nonunified)形式的diff输出(不适用-u选项)如下:

hbg@root:~/dl$ diff version1.txt version2.txt
2,3c2
< line2
< line3
---
> lin2
5a5
> GNU is not UNIX

一体化形式的输出如下:

hbg@root:~/dl$ diff -u version1.txt version2.txt
--- version1.txt        2015-12-28 19:16:28.866869790 +0800
+++ version2.txt        2015-12-28 19:17:12.078872041 +0800
@@ -1,5 +1,5 @@
 this is the original text
-line2
-line3
+lin2
 line4
 happy hacking !
+GNU is not UNIX

可以重定向从而生成patch文件:

hbg@root:~/dl$ diff -u version1.txt version2.txt  > version.patch
hbg@root:~/dl$ cat version.patch
--- version1.txt        2015-12-28 19:16:28.866869790 +0800
+++ version2.txt        2015-12-28 19:17:12.078872041 +0800
@@ -1,5 +1,5 @@
 this is the original text
-line2
-line3
+lin2
 line4
 happy hacking !
+GNU is not UNIX

用下列命令来进行修补:

hbg@root:~/dl$ patch -p1 version1.txt  < version.patch
patching file version1.txt

hbg@root:~/dl$ cat version1.txt
this is the original text
lin2
line4
happy hacking !
GNU is not UNIX
hbg@root:~/dl$
hbg@root:~/dl$ diff -u version1.txt  version2.txt
hbg@root:~/dl$

再重新输入一次这个命令 patch -p1 version1.txt < version.patch,就可以将补丁文件去掉

shell脚本学习(四)的更多相关文章

  1. shell脚本学习(四)

    shell printf命令 printf是shell的另一个输出命令,默认printf不会自动添加换行我们可以手动添加\n. 语法: printf format-string [arguments. ...

  2. 转 shell脚本学习指南

    shell脚本学习指南 以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bashshell 脚本的第一行,#!之后应该是什么?如果拿这个问题 ...

  3. Shell脚本学习指南笔记

    Shell脚本学习指南 作者:Danbo 2015-8-3 脚本编程语言与编译型语言的差异 许多中型.大型的程序都是用编译型语言写的,例如:C.C+.Java等.这类程序只要从源代码(Source C ...

  4. 笔记——shell脚本学习指南

    <shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...

  5. Shell 脚本学习资料搜集

    Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...

  6. 学习笔记之Shell脚本学习指南 & sed与awk & 正则表达式

    正则表达式_百度百科 http://baike.baidu.com/link?url=ybgDrN2WQQKN64_gu-diCqdeDqL8LQ-jiQ-ftzzPaNUa9CmgBRDNnyx50 ...

  7. Shell脚本学习 - 运算符

    继续shell脚本学习.上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作. 运算符 bash不支持简单的数学计算,需要依赖其他命令实现. expr可以代为实现. # 表达式一般这么写 ` + ...

  8. shell脚本学习总结02--数组

    bash同时支持普通数组个关联数组,普通数组只能使用整数作为数组的索引,关联数组可以使用字符串作为数组的索引. 数组的定义方法: 在单行中使用一列值定义一个数组 [root@new ~]# array ...

  9. shell脚本学习之6小时搞定(1)

    shell脚本学习之6小时搞定(1) 简介 Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把 ...

  10. Shell脚本学习指南 [ 第三、四章 ] 查找与替换、文本处理工具

    摘要:第三章讨论的是编写Shell脚本时经常用到的两个基本操作.第四章总共介绍了约30种处理文本文件的好用工具. 第三章 查找与替换 概括:本章讨论的是编写Shell脚本时经常用到的两个基本操作:文本 ...

随机推荐

  1. python 解析html

    #!/usr/local/bin/python2.7 # -*- coding: utf-8 -*-: import requests from pyquery import PyQuery as p ...

  2. memcache学习和分析

    Memcached 特点• 具有非常快的处理速度• 缺乏认证以及安全管制,应将其放置在防火墙之后• 重启后数据全部丢失• 可以给数据设置有效期• 适合使用大量低CPU的机器搭建集群• 各节点之间各自独 ...

  3. 原图旋转/缩放 然后画布画图 ImageProcessor

    //旋转 byte[] photoBytes = File.ReadAllBytes(HttpContext.Current.Server.MapPath(diyInfo.ImageUrl)); Im ...

  4. Hibernate——脏检查和缓存清理机制

    Session到底是如何进行脏检查的呢? 当一个Customer对象被加入到Session缓存中时,Session会为Customer对象的值类型的属性复制一份快照.当Session清理缓存时,会先进 ...

  5. PHP静态延迟绑定和普通静态效率简单对比

    只是一个简单的小实验,对比了下 延迟绑定 和 非延迟的效率 延迟绑定主要就是使用 static 关键字来替代原来的 self ,但功能非常强大了 实验代码: class A { protected s ...

  6. [HMLY]3.如何使用Xcode Targets管理开发和生产版本?

    本文原地址:http://www.appcoda.com/using-xcode-targets/ 在开始此教程之前,我们假设你已经完成了应用程序的开发和测试,现在准备提交生产发布.问题是,某些web ...

  7. Proteus中MATRIX-8X8 LED灯的连接

    上面8个引脚用于选择行,低电平有效.下面8个引脚用于选择列,高电平有效. 经测试,红色点阵LED与之相反,是上面的引脚用于选择列,且高电平有效:下面的引脚用于选择行,低电平有效. 在AT89C51单片 ...

  8. WPF Image Binding Uri Source 失败解决办法

    在ListView 的ListItem里动态绑定Image. 首先代码写的是没有问题的.但最后运行却无法显示图片.先看代码: 1. XAML部分 代码如下: <ListView x:Name=& ...

  9. kubernetes port nodePort targetPort 理解

    port The port that the service is exposed on the service's cluster ip (virsual ip). Port is the serv ...

  10. Learning from the CakePHP source code - Part II

    原文:http://debuggable.com/posts/learning-from-the-cakephp-source-code-part-ii:480f4dd6-57fc-4715-8709 ...