zoukankan      html  css  js  c++  java
  • 转 Linux sudo命令

    脚本中使用$HOME变量 问题描述:某些同事原来写的脚本中包含如下内容。
    BIN_DIR=${HOME}/tools
    TAIR_BIN_DIR=${HOME}/tair_bin
    TAIR_SRC_DIR=${HOME}/tair_src

    原来的使用习惯是:
    直接登录admin的shell运行这些脚本。

    改用个人帐号使用sudo -u admin example.sh
    运行之后,发现脚本中$HOME变量获取成个人帐号家目录。

    问题分析: sudo执行命令的时候,默认使用个人帐号的家目录赋值给$HOME变量。

    比如张三执行 _sudo -u admin example.sh_得到的$HOME结果是 /home/zhangsan

    原因是sudo命令默认不会修改$HOME变量,如果希望改变sudo中$HOME变量,
    则需要增加-H参数: _sudo -u admin -H example.sh

    举例如下: [yuanqiao@tair004013 ~]$ cat example.sh

    #!/bin/sh BIN_DIR=${HOME}/tools
    echo 'BIN_DIR='$BIN_DIR

    [yuanqiao@tair004013 ~]$ sudo -u admin ./example.sh
    BIN_DIR=/home/yuanqiao/tools

    [yuanqiao@tair004013 ~]$ sudo -u admin -H ./example.sh
    BIN_DIR=/home/admin/tools

    解决方法: 虽然sudo -H这个参数能解决脚本的这个问题,但并不推荐大家使用sudo的-H参数,
    因为执行脚本的时候并不一定知道脚本里面的变量是如何定义或获取的。 希望还是从脚本的编写角度出发,对脚本作适当修改,减少对admin/root这样帐号环境变量的依赖。

  • 相关阅读:
    初学Android: 四大组件之Activity
    jQuery Pagination Plugin ajax分页控件
    PHPExcel 多工作表 导入
    PHPExcel 多工作表 导出
    js常用方法
    如何让多个不同版本的jquery库共存
    总结机器学习部分计算原理—续
    第四周学习进度报告
    总结机器学习部分计算原理
    数据清洗报告
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/11812582.html
Copyright © 2011-2022 走看看