Autorizzazione negata a ~ anche se il proprietario è elencato come me


13

In qualche modo, sono riuscito a chmod e ho portato il mio ~ nell'oblio.

Quando provo ad accedere tramite la shell, ottengo

bash: ~/.bashrc : Permission denied

Anche dopo ( come root ) ho corso

chown -hR nroach44 /home/nroach44

e

chmod -R 666 /home/nroach44

o (con il nome nroach44 )

chmod -R 644 /home/nroach44

Nessuno di questi comandi restituisce errori.

Anche:

ls -la /home/nroach44

Restituisce un sacco di

drw-rw-rw-  1 nroach44 nroach44 4096 --date-- ti:me foldername

Qualsiasi aiuto?


Ringrazia tutti! Qualche guida su quali file necessitano di quali autorizzazioni nella cartella home adesso? :)
NRoach44

/homedovrebbe essere drwxrwxr-xe root:rooted /home/user rw rw -- or r-a seconda se si desidera che gli altri utenti di leggere i file degli utenti. Directory e file eseguibili con x. La stessa userdirectory interna non sarà un problema se hai il gruppo = utente (nroach44: nroach44) come sembra che tu abbia (darei solo 0 (---) autorizzazioni su altri).
laurent

Risposte:


14
chmod -R 666 /home/nroach44

o

chmod -R 644 /home/nroach44

Questo renderà non eseguibili tutti i file sulla tua home directory. Non è stata una buona idea;)

Non so come pulire questo casino, come soluzione rapida puoi provare a fare come root:

chmod -R 755 /home/nroach44

Questo comando fornirà le autorizzazioni di esecuzione a tutti i file nella cartella principale. Dovrebbe risolvere i tuoi problemi immediati, ma potrebbe essere un incubo per la sicurezza.

La soluzione migliore è aprire un altro account utente e trasferirvi i file e le impostazioni uno per uno.


6
Non sapevo che le directory avessero bisogno di permessi x per aprirsi. Grazie!
NRoach44

5

Le directory devono avere il bit di esecuzione impostato per consentire di scendere nella directory. Plain 666è semplicemente sbagliato, anche se stai eseguendo come root. Dà a tutti i permessi di scrittura.

Per rendere i file più sicuri, esegui:

chmod -R 640 /home/nroach44

Per rendere le cartelle nuovamente discendibili, eseguire:

find /home/nroach44 -type d -exec chmod 750 \;

Nota: ho scelto xx0 perché alcuni file potrebbero essere sensibili e non essere letti da altri. Solo per essere salvato, rimuovere le autorizzazioni di lettura / scrittura / esecuzione per il mondo.


Stavo solo 666 per verificare se avrebbe funzionato o meno :)
NRoach44

4

Dato che sembra che tu abbia autorizzazioni sufficienti su ~, devi /homeavere l'autorizzazione x per gli altri ( sudo chmod +rx /home) e controllare se le autorizzazioni sono ok nel /home/nroach44/.bashrcfile.

Un altro punto, le directory dovrebbero avere le autorizzazioni x per consentire di inserirle, quindi per risolverle tutte, è necessario eseguire sudo chmod -R +X /home/nroach44.


Conoscere le autorizzazioni di esecuzione necessarie per inserire le cartelle sarebbe stato bello conoscerlo prima, quindi grazie!
NRoach44

Non sapevo della capitale X+1
Lekensteyn il

la capitale Xè molto utile e sono stato molto contento di scoprirlo anch'io ... dopo molto tempo usando find !!
Laurent,

1

Questo perché hai incasinato le autorizzazioni di tutti i file nella tua cartella HOME. Si prega di fare molta attenzione mentre si gioca con i permessi dei file, usare chmod e chown con molta attenzione o si può finire con un casino.

bash: ~/.bashrc : Permission denied

Penso che tu abbia cambiato i permessi di tutti i file nella tua home directory, quindi anche il permesso di bashrc è stato cambiato.

Le autorizzazioni predefinite dello script ~ / .bashrc sono

-rw-r--r-- 1 user1 user1  3353 2012-01-09 12:05 .bashrc

Per spiegarlo, dovresti avere le autorizzazioni di lettura e scrittura sul file, altri utenti del gruppo utenti dovrebbero essere in grado di leggerlo e tutti gli altri possono anche leggerlo.

Quindi ora cambia i permessi dello script bashrc usando chmod su 644

chmod 644 ~/.bashrc

se i comandi precedenti danno l'autorizzazione negata. poi

esegui chown prima come sudo

sudo chown user1:usergrp ~/.bashrc

sostituisci user1 con il tuo nome utente e usergrp con il tuo gruppo di utenti predefinito.

Ora di nuovo

chmod 644 ~/.bashrc

ora avrai le autorizzazioni per lo script basrc, ora prova ad accedere e controlla se ricevi altri errori :)


0

Le directory necessitano di x bit impostati (per la directory quel bit è visto come bit di ricerca) per aprirsi. Quindi uso tree in modo da ottenere solo il set di cartelle ed evitare l'incubo di avere tutti i file impostati come file eseguibili (l'opzione per tree è -d List directories only.):

sudo tree -faid /home/nroach44 | xargs -L1 -I{} sudo chmod 755  "{}"

Avvertimento!!! dovresti tenerlo in considerazione:

  • l'uso di chmod o chown ricorsivo nella /directory principale o nelle directory di sistema distruggerà il sistema operativo (in realtà qualsiasi cosa ricorsiva/ directory o directory di sistema è pericolosa)

  • questa non è una buona pratica di sicurezza per imporre tali autorizzazioni in blocco

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.