Uprawnienia odmówiono właścicielowi, chociaż jest on ustawiony na 666 w katalogu .ssh

12

Niedawno pomieszałem z katalogiem .ssh. Wprowadziłem pewne zmiany uprawnień, tak myślę i teraz nie pozwoli mi już na to uzyskać dostępu. Mogę uzyskać do niego dostęp jako użytkownik root (sudo -i), ale nie jakoś tak

Otrzymuję odmowę dostępu podczas wyświetlania lub cdingowania do .ssh, nawet jeśli wyświetla pliki

ls: cannot access /home/somesh/.ssh/amazon.pem: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa: Permission denied
ls: cannot access /home/somesh/.ssh/known_hosts: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa.pub: Permission denied
total 0
-????????? ? ? ? ?            ? amazon.pem
-????????? ? ? ? ?            ? id_rsa
-????????? ? ? ? ?            ? id_rsa.pub
-????????? ? ? ? ?            ? known_hosts

Logowanie jako root i ls daje następujące wyniki

# ls -l /home/somesh/ -a |grep ssh
drw-rw-rw-  2 somesh somesh 4096 Aug 27 15:45 .ssh

Nawet pliki wewnątrz są .ssh są własnością somesh: somesh i chm

-rw-rw-rw- 1 somesh somesh 1692 Aug 27 15:45 amazon.pem
-rw-rw-rw- 1 somesh somesh 1675 Aug 25 20:01 id_rsa
Więc co
źródło
5
Zobacz Dlaczego chmod 644 uniemożliwia dostęp do katalogów? . AFAIK poprawne uprawnienia do ~/.sshkatalogu to 700( drwx------).
steeldriver

Odpowiedzi:

21

Steeldriver ma rację. W katalogu potrzebujesz również xflagi dostępu, aby móc wyświetlić listę plików w środku.

Naprawienie katalogu za pomocą chmod 700 ~/.sshpowinno pomóc ci wejść w ten (poprawny) stan:

$ ls -ld ~/.ssh
drwx------. 2 user user 4096 Aug 26 10:37 /home/user/.ssh

Powinieneś również naprawić klucze za pomocą chmod 600 ~/.ssh/id_rsai, chmod 644 ~/.ssh/*.pubaby uzyskać:

$ ls -l ~/.ssh/
-rw-------. 1 user user  1766 Mar  7  2014 id_rsa
-rw-r--r--. 1 user user   415 Mar  7  2014 id_rsa.pub
Jakuje
źródło
Udało mi się to naprawić samodzielnie, kopiując je gdzie indziej, a następnie kopiując z powrotem
SoWhat
-2

Po uruchomieniu polecenia ls -l w dowolnym katalogu pierwsza kolumna jest kolumną uprawnień interpretowaną w następujący sposób:

1 ------------- 2 3 4 ------- 5 6 7 ------- 8 9 10

(TYP) ---- (użytkownik) ----- (grupa) ---- (inne)

TYP: Jeśli „-” , to plik. Jeśli „d” to katalog.

Uprawnienia: odczyt: 4, zapis: 2, wykonanie: 1

Tak więc dla odczytu, zapisu i wykonania twoje uprawnienia będą 7 w grupie użytkowników.

Możesz użyć

sudo chmod 7 6 6 file_name 

lub

sudo chmod -R u+x /home/somesh/.ssh 

-R - to modyfikuje uprawnienia do folderu nadrzędnego i obiektów podrzędnych w obrębie

Dhaval Simaria
źródło
2
Nie rozumiem części TYPE; również chmod 700 file_namei chmod u+x file_namezrobić dwie zupełnie różne rzeczy. Pierwszy ustawia uprawnienia na rwx/---/---, drugi ustawia tylko xbit dla właściciela (i począwszy od 666niego zmieni plik na 766, a nie na 700).
Kos
1
@kos, on / on oznacza, że ​​pierwsze pole w ciągu wskazuje typ wpisu pliku. -Znak oznacza, że jest to „normalne” plik. A doznacza, że ​​jest to katalog. Są inni też podoba c, l(dla dowiązania symbolicznego) s, a jeszcze dla innych systemów operacyjnych.
Josh
@Josh Tak, układ mnie pomylił.
Kos