以下是我执行的步骤:
- 使用命令通过 SSH 连接到本地网络中的 CentOS 6.x 计算机
远程控制[电子邮件保护]
- 输入root用户密码
- 我能够成功登录到机器,但我只得到 bash 终端而不是 root 用户终端。
上次登录:2018 年 4 月 25 日星期三 18:04:32 来自 192.168.0.27
-bash:/root/.bashrc:权限被拒绝
-bash-4.1#
我正在尝试了解这里的问题是什么。
附加信息:
- 我可以登录到本地网络中的任何其他机器,而不会出现此问题。
- 另外,从 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 种方法:
使用舍邦。
将以下行作为第一行添加到脚本中:
#!/bin/bash -x
set -x
在启动脚本文件的最开始添加行。与命令一起
bash
运行,例如-x
ssh
\ssh -vvv [email protected] -t bash -x
此后,尝试再次重现该问题,然后您应该找到有问题的行。