shell脚本受限执行

shell 中运行的脚本或脚本的个代码断会禁用一些正常 shell 中可以执行的命令.
这是限制脚本用户的权限和最小化运行脚本导致的破坏的安全措施.
受限的内容包括:
使用 cd 命令更改工作目录. 
更改环境变量$PATH, $SHELL, $BASH_ENV,或$ENV 的值. 
读或更改 shell 环境选项变量$SHELLOPTS 的值. 
 输出重定向. 
调用的命令路径中包括有一个或更多个/字符.
脚本中许多其他无意中能破坏或捣乱的命令. 在脚本中企图脱离受限 shell 模式的操作 .
如下脚本测试受限shell:

allenle@backupabc:~$ cat  retrictedshell.sh
 #!/bin/bash 
  echo
  echo "I am in `pwd`" 
  echo "Changing directory." 
  cd /usr 
  echo "New dirctory in `pwd`" 
  echo "Coming back home." 
  cd -
  echo "I am again in `pwd`" 
  echo "--------------------restricted shells------------------------------"
  set -r 
     #or  set --restricted 
  echo "==> Now in restricted mode. <==" 
  echo 
  echo 
  echo "Tring directory change in restricted mode." 
  cd .. 
  echo "I am in `pwd`" 
  echo 
  echo 
         
  echo "\$SHELL = $SHELL" 
  echo "Attempting to change shell in restricted mode." 
  SHELL="/bin/ash" 
  echo 
  echo "\$SHELL= $SHELL" 

  echo 
  echo 

  echo "Attempting to redirect output in restricted mode." 
  ls -l /usr/bin > bin.files 
  ls -l bin.files # Try to list attempted file creation effort. 
  echo 
  exit 0

从结果图看,在非受限模式下,变更目录的操作成功了。

当改变了shell模式为受限模式(set -r),cd命令变更目录的操作就不成功了。

不仅如此,当试图修改$shell变量时,也是失败的。

 注:脚本开头以"#!/bin/bash -r"来调用,则以受限模式运行脚本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值