位置: 编程技术 - 正文

shell脚本学习指南[六](Arnold Robbins & Nelson H.F. Beebe著)(shell脚本用法)

编辑:rootadmin

学shell到现在了,一直以为自己不会犯一个大家常说的非常二的问题,结果这本书最后的时候犯了个十分2的事,晚节不保啊!!!我在测试文件路径下除了通配符*和?外还能用啥正则那样的东西,结果就在$HOME下执行了rm .* 。。。好吧,蛋疼了一下午!还木找回任何一个配置文件。警示后人,千万别使用rm试通配符!任何时候小心使用rm!

第十四章shell可移植性议题和扩展

可以先通读这篇文章。想写出好的可移植性shell,不仅要了解各种shell版本间的差异,还要有很多编程技巧,比如尽量从环境变量中获取需要的信息等。

第十五章安全的shell脚本:起点

安全性shell脚本的提示:1、不要将当前目录(点号)置于PATH下。可执行程序应该只能放在标准的系统目录下,将当前目录放在PATH里,无疑是打开特洛伊木马(Trojan Horse)的大门。2、为bin目录设置保护。确认$PATH下的每一个目录都只有它的拥有者可以写入,其余任何人都不能。用样的道理也应该应用于bin目录里所有的程序。3、写程序前,先想清除。花点时间想想你要做什么,该如何实行。不要一开始就在文字编辑器上写。错误与失败的优雅处理也应该设计在程序里。4、应对所有输入参数检查其有效性。如果期待的是数字,那就验证它是数字,并且是否在要求的范围内。其他的需要也是这样检测。5、对所有可返回错误的命令,检查错误处理代码。不在你预期内的失败情况,很可能是有问题的强迫失败,导致脚本出现不当的行为。例如,如果参数为NFS加载磁盘或面向字符的设备文件时,即便是以root的身份执行,也可能导致有些命令失败。6、不要信任传进来的环境变量。如果它们被接下来的命令(如TZ、PATH、IFS等)使用时,请检查并重设为已知的值。无论在什么情况下,最好的方式就是明确的设置自己需要的(如PATH只包含系统bin目录,设置IFS为空格定位符和换行)。7、从已知的地方开始。在脚本开始时,确切cd到已知目录,这么一来,接下来任何相对路径名称才能指到已知位置。确认cd操作成功:cd app-dir || exit 、使用syslog(8)保留审计跟踪。记录引用的日期与时间、username等,参见logger(1)的使用手册。如果没有logger,可建立一个函数保留日志文件:

9、当使用该输入时,一定将用户输入引用起来。例如:"$1"与"$*",这么做可以防止居心不良的用户输入超出范围的计算与执行。、勿在用户输入上使用eval。甚至在引用用户输入之后,也不要使用eval将它交给shell再处理。如果用户读取了你的脚本,发现你使用eval,就能很轻松的利用这个脚本进行任何破坏。、引用通配符展开的结果。你可以将空格、分号、反斜杠等放在文件名里,让棘手的事情交给系统管理员处理。如果管理的脚本未引用文件名参数,此脚本将会造成系统的问题。、检查用户输入是否有meta字符。如果使用eval或$(...)里的输入,请检查是否有像$或`这类的meta字符。、检测你的代码,并小心谨慎阅读它。寻找是否有可被利用的漏洞与错误。把所有坏心眼的想法都考虑进去,小心研究你的代码,试着找出破坏它的方式,再修正发现的问题。、留意竞争条件(race condition)攻击者是不是可以在你脚本里的任两个命令之间执行任意命令,这对安全性是否有危害?如果是,换个方式处理你的脚本。、对符号性连接心存怀疑。在chmod文件或是编辑文件时,检查它是否真的是一个文件,而非连接到某个关键性系统文件的符号性连接(利用[ -L file ] 或 [ -h file ]检测file是否为一符号性连接。、找其他人重新检查你的程序,看看是否有问题。、尽可能用setgid而不要用setuid。这些术语稍后讨论,简之就是使用setgid能将损害范围限制在某个组内。、使用新的用户而不是root。如果你必须使用setuid访问一组文件,请考虑建立一个新的用户,非root的用户做这件事并设置setuid给他。、尽可能限制使用setuid的代码。尽可能让setuid代码减到最少。将它移到一个分开的程序,然后在大型脚本里需要时才引用它。无论如何,请做好代码防护,好像脚本可以被任何人于任何地方引用那样。、一个安全shell的开场白:

这段代码使用了许多非POSIX的扩展,需要注意。

该书最后给出了如何编写自己的shell程序的manual,和unix的文件和文件系统的介绍。至此该书通读完毕。

推荐整理分享shell脚本学习指南[六](Arnold Robbins & Nelson H.F. Beebe著)(shell脚本用法),希望有所帮助,仅作参考,欢迎阅读内容。

shell脚本学习指南[六](Arnold Robbins & Nelson H.F. Beebe著)(shell脚本用法)

文章相关热门搜索词:shell脚本指南,shell脚本总结,shell脚本基础教学,shell脚本学习指南,shell脚本用法,shell脚本基础教学,shell脚本 教程,shell脚本学习指南,内容如对您有帮助,希望把文章链接给更多的朋友!

csh,tcsh,bash,sh等shell的区别 出自bash的faq,仔细看看。顺便翻译学习一下。SectionC:DifferencesfromotherUnixshellsC:跟其他UNIXshells脚本的区别C1)Howdoesbashdifferfromsh,theBourneshell?C1)bash和sh、Bou

Shell字符串截取的详细方法 一、Linuxshell截取字符变量的前8位,有方法如下:1.exprsubstr$a.echo$a|awk‘{printsubstr(,1,8)}'3.echo$a|cut-c1-.echo$5.expr$a:‘(.\).*'6.echo$a|ddbs=1count=/dev/null二、

Linux Shell脚本编程的注意事项 一、常用技巧sshuser@serverbash/path/to/local/script.sh#ssh到远程服务器执行一个脚本,此命令可以避免将脚本上传到远程服务器sshuser@hostcat/path/to/remotefile|diff/pat

标签: shell脚本用法

本文链接地址:https://www.jiuchutong.com/biancheng/374765.html 转载请保留说明!

上一篇:shell脚本学习指南[五](Arnold Robbins & Nelson H.F. Beebe著)(shell脚本用法)

下一篇:csh,tcsh,bash,sh等shell的区别

  • 个人劳务报酬所得税率表
  • 缴纳以前年度所得税在今年汇算清缴怎么填报
  • 银行承兑汇票是什么科目
  • 给员工发礼品发什么礼品最实惠
  • 公司报销生育津贴,孕期还需要去社保局备案吗
  • 公司为其他企业提供担保,担保对象可以是公司股东吗
  • 分公司亏损是否也分摊所得税
  • 人身保险和意外保险是一个东西吗
  • 工程设备租赁带什么手续
  • 固定资产一次性扣除政策2023文件
  • 还有主营业务收入这个科目
  • 期间损益结转怎么结转
  • 705元大写金额怎么写的
  • 1697509966
  • 非正常损失和非正常损耗的区别
  • 支付拆迁补偿款做账
  • 可转债溢价率多高为好
  • macOS Catalina10.15.2值得升级吗 macOS Catalina10.15.2更新了什么
  • 苹果系统最新版本
  • php string
  • 代发工资跨行手续怎么办
  • 根据完工进度确认成本
  • 公允价值变动损益借贷方向
  • 采用权益法核算
  • ieview.exe 是什么
  • 哪一年底,由linux基金会成立?
  • file php
  • 父母将住房无偿赠送给子女 增值税
  • 甲供材料增值税
  • 固定资产入账流程图
  • 怎么做委托银行业务
  • 两险征缴工作的意义
  • 前端 高级
  • 机关单位工会经费提取比例
  • vue的简介
  • 科目汇总表借方发生额等于贷方发生额吗
  • 税控盘开具增值税专用发票步骤
  • 合同补充协议印花怎么写
  • 高价值配件用入固定资产吗
  • 期初未分配利润在哪个表
  • 4s店收到红字发票怎么办
  • 新购固定资产怎么填写申报表
  • 现金银行本票的签发人是谁
  • phpcms任意文件上传
  • 待报解预算收入怎么做账
  • 上海电子税务局网站
  • 核定征收企业所得税的小型微利企业不得享受优惠政策
  • 定期定额征收税款
  • 什么指的是土地面积
  • 公司贷款可以转私户吗
  • 工会经费多久缴纳一次
  • 汽车租赁费怎么做分录
  • 转移固定资产是指什么
  • 财务报告编制原则
  • 进项税留底怎么处理
  • 暂估应付账款的科目编码
  • 法人在公司账户取钱要纳税么
  • 可转债举例说明
  • 科目余额表没有本年累计怎么办
  • mysql handshake
  • ubuntu-
  • rtm平台全称
  • win10系统开机蓝屏怎么修复
  • linux 磁盘情况
  • win7如何设置鼠标
  • linux就要这样学
  • linux如何使用gcc编译
  • cocos2d android 游戏开发学习——CCAction(一)
  • unity urp 性能
  • Android之Volley
  • OKHttp源码解析-ConnectionPool对Connection重用机制&Http/Https/SPDY协议选择
  • jquery 文本框
  • jquery入门
  • javascript面向对象吗
  • 安卓开发常见问题
  • 关联企业业务往来税收调整
  • 营改增后如何计算税金
  • 2021年江苏省考常州职位表
  • 本期实际抵扣税金怎么算
  • 海关进口增值税怎么认证抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设