生成 chroot 环境脚本 根据系统文件生成chroot环境

生成 chroot 环境脚本 根据系统文件生成chroot环境

[github地址](shell_script/chrootBuilder at master · ffashion/shell_script (github.com))

  1. 复制命令 库等

    1. export command_list=("bash" "ls" "dpkg" "apt" \
      "whoami" "whereis" "vim" "cat" "grep" "awk" \
      "adduser" "groups" "perl" "su" "sudo" "passwd" \
      "id" "mknod" "rm" "cp" "mv" "file" "mkdir"
      )
      create_file(){
          echo "create sys file"
          mkdir -p ./{root,dev,usr,etc,home}
      }
      
      copy_file(){
          mkdir -p .`dirname $1`
          #如果使用-r 那么如果文件时软连接的话 只会复制软链接 并不会复制真正的文件
          cp -u $1 .$1
      }
      copy_dir(){
          mkdir -p .`dirname $1`
          cp -ru $1 .$1
      }
      
      copy_command_lib(){
          # ldd $1 1>/dev/null 2>/dev/null || echo -n "static"
          #LIB为命的的库绝对路径
          LIB=`ldd $1 2>/dev/null| grep 'lib.*=>.*' | awk  '{print $3}'`
          for i in $LIB;do
              copy_file $i
          done
      }
      copy_command(){
          copy_file $1
      }
      
      copy_bash_conf(){
          echo "copy bash_conf ..."
          copy_file /etc/{profile,bash.bashrc}
          copy_file /etc/bash_completion
          copy_file /etc/passwd
          copy_file /usr/share/bash-completion/bash_completion
          copy_dir /etc/bash_completion.d
          
          
      }
      copy_system_conf(){
          echo "copy system_conf ..."
          copy_file /etc/hosts
          copy_file /home/fashion/.bashrc 
      }
      
      copy_common_lib(){
          copy_file /lib64/ld-linux-x86-64.so.2
      }
      
      
      create_file
      copy_common_lib
      copy_bash_conf
      copy_system_conf
      
      #循环复制数组中的命令 以及命令依赖的so
      for i in ${command_list[*]};do
          absulute_path=`whereis -b $i | awk '{ print $2}'`
          [[ $absulute_path == "" ]] && echo $i "command not found " && continue
          
          echo "copy" $absulute_path
      	copy_command $absulute_path
          copy_command_lib $absulute_path
      done
      cd ..
      cp ./initenv.sh ./chroot
      
      1. 只需要在command_list 数组中增加命令 即可往chroot环境中添加命令
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值