在受限shell中禁用的命令在受限shell中运行的脚本或脚本的个代码断会禁用一些正常shell中可以执行的命令.这是限制脚本用户的权限和最小化运行脚本导致的破坏的安全措施.使用cd命令更改工作目录.更改环境变量$PATH,$SHELL,$BASH_ENV,或$ENV的值.读或更改shell环境选项变量$SHELLOPTS的值.输出重定向.调用的命令路径中包括有一个或更多个/字符.调用exec来把当前的受限shell替换成另外一个不同的进程.脚本中许多其他无意中能破坏或捣乱的命令.在脚本中企图脱离受限shell模式的操作.例1.在受限的情况下运行脚本 1#!/bin/bash 2 3# 脚本开头以"#!/bin/bash-r"来调用 4#+会使整个脚本在受限模式下运行. 5 6echo 7 8echo"Changingdirectory." 9cd/usr/local 10echo"Nowin`pwd`" 11echo"Comingbackhome." 12cd 13echo"Nowin`pwd`" 14echo 15 16#不受限的模式下,所有操作都能正常成功. 17 18set-r 19#set--restricted 也能起相同的作用. 20echo"==>Nowinrestrictedmode.<==" 21 22echo 23echo 24 25echo"Attemptingdirectorychangeinrestrictedmode." 26cd.. 27echo"Stillin`pwd`" 28 29echo 30echo 31 32echo"\$SHELL=$SHELL" 33echo"Attemptingtochangeshellinrestrictedmode." 34SHELL="/bin/ash" 35echo 36echo"\$SHELL=$SHELL" 37 38echo 39echo 40 41echo"Attemptingtoredirectoutputinrestrictedmode." 42ls-l/usr/bin>bin.files 43ls-lbin.files #尝试列出刚才创建的文件. 44 45echo 46 47exit0
上一篇:函数_程序数据_shell
下一篇:shell脚本中的通配_程序数据_shell