问题:

一个脚本a.sh(必须root用户执行),在本地可以运行,通过pssh  -h ip_file "cd /home/byte/a.sh"不能执行。

原因:

分析应该是ssh没有获取到root权限,可能原因是操作系统安装时有多个用户且默认远程用户非root。通过查看可知是ssh默认登录用户不是root

Linux系统设置涉及到两种启动shell的方式一个是本地登录另一个是远程登录,

本地直接登录shell终端环境调用过程是 ~/.bash_profile->~/.bashrc

ssh登录时直接调用~/.bashrc,导致只是以普通用户登录,没有获取到root权限

解决办法:

1.修改命令,先执行root的.bash_profile来获取root权限

pssh  -h ip_file "source  /root/.bash_profile;cd /home/byte/a.sh"

2.修改.ssh配置文件

vi /etc/.ssh/enviroment 添加所需环境变量,格式如下

VAR1=VALUE1

VAR2=VALUE2

比如添加 USER=root

并修改/etc/ssh/sshd_config 文件中的PermitUserEnvironment=yes(会带来安全问题,具体请看备注1链接)

下次登录就直接获取root权限了

备注:

1. 安全问题

PermitUserEnvironment
指定是否允许 sshd(8) 处理 ~/.ssh/environment 以及 ~/.ssh/authorized_keys 中的 environment= 选项。

默认值是"no"。如果设为"yes"可能会导致用户有机会使用某些机制(比如 LD_PRELOAD)绕过访问控 参考连接 http://www.2cto.com/os/201401/272738.html
http://serverfault.com/questions/527638/security-risks-of-permituserenvironment-in-ssh
2.相关文件解释
/bin/bash
The bash executable
/etc/profile
The systemwide initialization file, executed for login shells
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
~/.inputrc
Individual readline initialization file

参考:http://serverfault.com/questions/527638/security-risks-of-permituserenvironment-in-ssh

http://stackoverflow.com/questions/415403/whats-the-difference-between-bashrc-bash-profile-and-environment

pssh 不能执行指定用户命令的更多相关文章

  1. Ubuntu 14.04 执行指定用户的命令

    #!/bin/bashsudo -u username /home/sco/start_server.sh 或者 #!/bin/bashsu - username -c /etc/init.d/xxx ...

  2. python如何在shell命令行执行创建用户命令

  3. 菜鸟学Linux命令:lsof命令 查找指定用户、进程、端口打开的文件

    lsof,list open files, 是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件. 命令格式:ls ...

  4. shell脚本中切换用户执行相应的命令或者shell脚本的方法

    通常在执行自动化过程中可能需要将root用户切换到其他用户进行执行,如:oralce 但是,执行的命令又要回到root用户下,继续执行root用户下的其他命令. 此时需要了解 su 命令中的参数 -c ...

  5. dotnetcore ef 调用多个数据库时用户命令执行操作报错

    dotnetcore ef 调用多个数据库时用户命令执行操作报错 1.多个DbContext 时报错: 报错: More than one DbContext was found. Specify w ...

  6. CentOS 显示历史执行过的命令以及用户历史命令缓存文件

    1.history命令用于显示历史执行过的命令 执行 history命令能显示出当前用户在本地计算机中执行过的最近 1000 条命令记录. 如果觉得 1000 不够用,还可以自定义/etc/profi ...

  7. Linux给指定用户或全部用户(已登录)发送消息

    在局域网络内很多时候是许多人共用一些机器,但如果多个人同时在使用同一台机器必定会发生一些冲突,比如系统的某些配置被修改,这样引起一些麻烦.那么如果在使用该机器之前,先给登录到该机器的所有其他用户发送一 ...

  8. windows下以指定用户访问SMB服务器进行读写

    需求:最近要开发某系统前端界面,但是该系统是部署在linux服务器上,前端是用php开发,实时调试运行需要linux下系统环境支持, 每次修改都需要手动传到服务器上,尤其是debug阶段,每修改一点就 ...

  9. CentOS下源码安装vsftpd-3.0.0,并设置指定用户访问指定目录(附带完整配置文件)

    1.卸载系统已经存在的ftp服务器 因为是源码安装,所以不能通过rpm -qa的方式查看是否已经安装ftp服务器,可以通过find / | grep vsftp*方式查看系统中存在哪些与vsftpd相 ...

随机推荐

  1. Myeclipse 2014 javascript 添加 jquery 代码提示

    近日在写js,在myeclipse中没有jquery代码的提示着实不方便,在网上使用度娘搜索添加提示方式,试了多种,现经测试以下方式可取. 1.打开help菜单下的install from site. ...

  2. SGU 132 Another Chocolate Maniac 状态压缩DP

    感觉不是很好写的一道状态压缩. dp[i][j][k]表示第 i 行状态为k,第i - 1行状态为 j,具体细节见代码. 内存卡的很死,要用滚动数组. 还有一个比较坑爹的地方是它在输入蛋糕的时候中间可 ...

  3. PHP也20岁了

    当今许多世界著名的编程语言的年纪已经够大了.举个例子,PHP昨天过了生日已经20岁了,Python也24岁,HTML已经服务了22年,Ruby和JavaScript有20年,Java前段时间刚过了20 ...

  4. ActionScript 设置元件色彩属性

        var clr:Color = new Color(mc);     var ct:Object = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa ...

  5. OTP【转】

    转自:http://baike.baidu.com/link?url=58z3oZfEMvNRiDUmWrxtzfDhv--UZ1jaW4rBHg1d9kIWd6HQaYZ96DH8QAFopSZBK ...

  6. 深入理解Java内存模型(三)——顺序一致性

    数据竞争与顺序一致性保证 当程序未正确同步时,就会存在数据竞争.java内存模型规范对数据竞争的定义如下: 在一个线程中写一个变量, 在另一个线程读同一个变量, 而且写和读没有通过同步来排序. 当代码 ...

  7. Newtonsoft.Json高级用法 1.忽略某些属性 2.默认值的处理 3.空值的处理 4.支持非公共成员 5.日期处理 6.自定义序列化的字段名称

    手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...

  8. [LintCode]perfect-squares(DP)

    题目链接:http://www.lintcode.com/zh-cn/problem/perfect-squares/ 就是求最小价值的完全背包,初始化dp[i]=i,假设全是1的时候是最多的,之后就 ...

  9. pl/sql programming 02 创建并运行plsql代码

    /* * chap 02 * ------------------------------------------------- */ create or replace function wordc ...

  10. 图片缓存之内存缓存技术LruCache,软引用

    每当碰到一些大图片的时候,我们如果不对图片进行处理就会报OOM异常, 这个问题曾经让我觉得很烦恼,后来终于得到了解决, 那么现在就让我和大家一起分享一下吧. 这篇博文要讲的图片缓存机制,我接触到的有两 ...