SSH do zdalnego komputera z systemem Linux pokazuje -bash: /root/.bashrc: Ostrzeżenie o odmowie zezwolenia


1

Oto kroki, które wykonałem:

  1. SSH do komputera CentOS 6.x, który jest w sieci lokalnej z poleceniem

ssh root@192.168.0.1

  1. Wprowadź hasło użytkownika root
  2. Udało mi się pomyślnie zalogować do komputera, ale dostaję tylko terminal bash zamiast terminala użytkownika root.

Ostatnie logowanie: śr. 25 kwietnia 18:04:32 2018 od 192.168.0.27

-bash: /root/.bashrc: Odmowa uprawnień

-bash-4.1 #

Próbuję zrozumieć, na czym polega problem.

Dodatkowe informacje:

  1. Jestem w stanie zalogować się na dowolnym innym komputerze w sieci lokalnej bez tego problemu.
  2. Ponadto z terminala bash mogę przełączyć się na konto superużytkownika za pomocą polecenia „su”.

Niewiele poleceń wykonanych na zdalnej maszynie, którą próbuję się zalogować i ich wynik.

-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

Zawartość 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"

Czy ktoś może mi pomóc to zrozumieć?


Może być konieczne wykonanie komendy ssh jako root. su ; ssh root@192.168.0.1lub sudo ssh root@192.168.0.1. Należy również rozważyć użycie szeregowców klucz zamiast uwierzytelniania hasłem (dla własnego bezpieczeństwa): digitalocean.com/community/tutorials/...
kcdtv

Spróbuj tych poleceń, które mogą pomóc zidentyfikować problem (ale nie rozwiąże problemu) i daj nam znać co wyjścia są: whoami, stat /root/.bashrc, file /root/.bashrc,lsattr /root/.bashrc
Deltik

@Deltik Dodałem wynik żądanych poleceń do pytania ...
Bala Krishnan

@kenorb Nie dostaję odmowy zgody na błąd podczas wykonywania polecenia debugowania ...
Bala Krishnan

Czy możesz dodać / zmodyfikować pierwszy wiersz tego pliku #/bin/bash -x, zastosować śledzenie i ponownie odtworzyć problem?
kenorb

Odpowiedzi:


0

-bash: /root/.bashrc: Odmowa uprawnień

  • Sprawdź uprawnienia do .bashrcpliku (które zrobiłeś).
  • Sprawdź uprawnienia do wszystkich dołączanych plików (takich jak /etc/bashrc).
  • Sprawdź uprawnienia do wszystkich plików, w tym globalnych /etc/bashrc.
  • Sprawdź uprawnienia swojego /etcfolderu (zobacz ten post ). Na przykład:

    chmod 0755 /etc # run as root
  • Rozważ dodanie -vvvpodczas uruchamiania, sshaby uzyskać bardziej szczegółowe dane wyjściowe.


Rysunek kalkowy

Aby dalej debugować problem, możesz włączyć śledzenie ( xtrace) w swojej powłoce. Oto 3 metody:

  1. Za pomocą shebang .

    Dodaj następujący wiersz jako pierwszy do skryptu:

    #!/bin/bash -x
  2. Dodaj set -xwiersz na samym początku pliku skryptu uruchamiania.

  3. Uruchom bashz -xwraz z sshpoleceniem, np

    \ssh -vvv root@192.168.0.1 -t bash -x

Następnie spróbuj ponownie odtworzyć problem, a następnie powinieneś znaleźć problematyczną linię.


Nie, to nie działa ... uprawnienia .bashrc, / etc / bashrc są poprawne i nie mają żadnych problemów ... polecenie śledzenia dodane przeze mnie w nagłówku nie działa .. to nie jest rozwiązanie ...
Bala Krishnan

Jeśli twój shebang z jakiegoś powodu nie działa, dodaj set -xw drugim wierszu. To powinno działać.
kenorb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.