ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-06-06 21:30:10  阅读:193  来源: 互联网

标签:chroot conf 生成 etc command 系统文件 file copy bash


生成 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环境中添加命令

标签:chroot,conf,生成,etc,command,系统文件,file,copy,bash
来源: https://blog.csdn.net/qq_44212821/article/details/117636845

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有