SSH 到远程 Linux 机器显示 -bash: /root/.bashrc: 权限被拒绝警告

SSH 到远程 Linux 机器显示 -bash: /root/.bashrc: 权限被拒绝警告

以下是我执行的步骤:

  1. 使用命令通过 SSH 连接到本地网络中的 CentOS 6.x 计算机

远程控制[电子邮件保护]

  1. 输入root用户密码
  2. 我能够成功登录到机器,但我只得到 bash 终端而不是 root 用户终端。

上次登录:2018 年 4 月 25 日星期三 18:04:32 来自 192.168.0.27

-bash:/root/.bashrc:权限被拒绝

-bash-4.1#

我正在尝试了解这里的问题是什么。

附加信息:

  1. 我可以登录到本地网络中的任何其他机器,而不会出现此问题。
  2. 另外,从 bash 终端,我可以使用“su”命令切换到超级用户帐户。

我尝试登录的远程机器上执行了一些命令及其输出。

-bash-4.1# whoami
root


-bash-4.1# stat /root/.bashrc
File: `/root/.bashrc'
Size: 221           Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 32510289    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/      root)
Access: 2018-04-26 10:09:04.206129757 +0530
Modify: 2018-04-25 18:04:59.354903860 +0530
Change: 2018-04-25 18:04:59.389903855 +0530


-bash-4.1# file /root/.bashrc
/root/.bashrc: ASCII text


-bash-4.1# lsattr /root/.bashrc
-------------e- /root/.bashrc

Bashrc内容:

#/bin/bash -x

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export PATH="/opt/postgres/postgresql:$PATH"

谁能帮助我理解这一点?

答案1

-bash:/root/.bashrc:权限被拒绝

  • 检查文件的权限.bashrc(您已经这样做了)。

  • 检查您包含的所有文件的权限(例如/etc/bashrc)。

  • /etc/bashrc检查全局包含的所有文件的权限。

  • 检查文件夹的权限/etc(请参阅此邮政)。 例如:

      chmod 0755 /etc # run as root
    
  • 考虑-vvv在运行时添加ssh以获得更详细的输出。


追踪

要进一步调试问题,您可以xtrace在 shell 中启用跟踪 ( )。以下是 3 种方法:

  1. 使用舍邦

    将以下行作为第一行添加到脚本中:

     #!/bin/bash -x
    
  2. set -x在启动脚本文件的最开始添加行。

  3. 与命令一起bash运行,例如-xssh

     \ssh -vvv [email protected] -t bash -x
    

此后,尝试再次重现该问题,然后您应该找到有问题的行。

相关内容