Linux: cambiare cartella corrente navigando con le frecce della tastiera

Per come è intrinsecamente sviluppato il kernel di Linux, non risulta possibile creare un’app che:
1. L’utente lancia.
2. Naviga nella cartella desiderata.
3. Esce e si trova nella cartella desiderata.

Per farlo bisogna adottare un escamotage.

Come prima cosa, consiglio di installare “nnn” (o n3), tramite sudo apt install nnn .

Dopodichè, bisogna creare o aggiungere al file ~/.bash_aliases il seguente codice:

n() {
    # Blocca un file temporaneo per memorizzare l'ultima directory
    export NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd"

    # Avvia nnn
    nnn "$@"

    # Legge l'ultima directory ed esegue il cd se il file esiste
    if [ -f "$NNN_TMPFILE" ]; then
        . "$NNN_TMPFILE"
        rm -f "$NNN_TMPFILE"
    fi
}

Per farlo è sufficiente un nano ~/.bash_aliases è incollare il codice sopra, quindi, riavviare il terminale.

Dopodiché, con n parte il programma, con le frecce ci si sposta e con q si esce nella cartella scelta!

Il programma nnn è un file manager minimale e atipico, con ? si ottiene la guida agli altri comandi disponibili, a voi la scelta se usarli o meno.

Montare una cartella condivisa di Windows Server 2022 su Debian 12 (risolvendo “Permission denied”)

Montare una cartella condivisa SMB su Linux a volte può sembrare semplice… finché non appare il temuto errore:

mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

Ecco come risolvere il problema passo per passo.

Leggi tutto: Montare una cartella condivisa di Windows Server 2022 su Debian 12 (risolvendo “Permission denied”)

Scenario

  • Server Linux: Debian 12.x
  • Server Windows: Windows Server 2022, Domain Controller
  • Condivisione SMB: //SERVER-NOME/Condivisione
  • Dominio Active Directory: DOMINIO.LOCAL
  • Utente dominio: username

Sintomo

Montando con:

sudo mount /mnt/Condivisione

compare l’errore “Permission denied” e nei log (dmesg) appare:

CIFS: Status code returned 0xc000006d STATUS_LOGON_FAILURE

Causa

mount.cifs gestisce in modo diverso le credenziali rispetto a smbclient.
Mentre con smbclient funziona:

smbclient -L //SERVER-NOME -U "DOMINIO\\username%password"

con mount.cifs il backslash (\) nell’username causa un fallimento dell’autenticazione.

Soluzione

1. Crea la directory di mount

sudo mkdir -p /mnt/Condivisione

2. Crea un file credenziali sicuro

Crea /etc/samba/credentials/server:

username=nome_utente
password=password_complicata_e_sicura
domain=DOMINIO

Nota: Usa domain=DOMINIO (NetBIOS), non DOMINIO.LOCAL.

(ovviamente devi personalizzare i valori del file!)

Imposta i permessi:

sudo chmod 600 /etc/samba/credentials/server

3. Aggiungi la riga in /etc/fstab:

//SERVER-NOME/Condivisione /mnt/Condivisione cifs credentials=/etc/samba/credentials/server,iocharset=utf8,vers=3.1.1,sec=ntlmssp,uid=1000,gid=1000,file_mode=0660,dir_mode=0770 0 0

(si tratta di un’unica riga, mi raccomando!)

Parametri chiave:

  • vers=3.1.1 → protocollo SMB di default su Windows Server 2022
  • sec=ntlmssp → autenticazione moderna supportata da AD
  • uid e gid → proprietario dei file su Linux
  • file_mode e dir_mode → permessi di default

Per eseguire il mount senza errori, dovrebbe bastare un semplice:

sudo mount /mnt/Condivisione

error: cannot communicate with server: Post http://localhost/v2/snaps/core: dial unix /run/snapd.socket: connect: no such file or directory

Provando ad usare il comando:

snap list

a seguito dell’installazione di snapd, tramite i seguenti comandi:

apt update
apt install snapd

su una distribuzione GNU Linux/Debian 10.13 (ormai vecchiotta, ma è LTS, prima o poi dovrò aggiornarla), ottengo l’errore in oggetto.

Il problema è dovuto al fatto che il demone è stato sì installato, ma non attivato!

Per farlo, usare:

systemctl enable snapd.service
systemctl start snapd.service

Se non parte, beh, significa che c’è qualche problema nel sistema e bisogna indagare, cercando in giro, mi spiace.

Roundcube: PHP Fatal error: Uncaught Error: Call to undefined method rcmail::action_handler()

Aggiornando il Client di Posta Roundcube, mi è capitato di ricevere il messaggio in oggetto.

Per risolvere il problema:

systemctl restart apache2

Sì, è sufficiente riavviare il web-server per aggiornare la cache di PHP.

Nel mio caso, il problema, non si presentava cercando di accedere alla cartella dove effettivamente ho installato Roundcube mentre, usando il solito percorso (in pratica un link simbolico alla cartella dove ho installato, cosicché possa installare più versioni e modificare il link per decidere quale usare … più che altro uso questo modus operandi durante l’aggiornamento), ottenevo un errore subito dopo il login (maledettamente non l’ho salvato).

Spero la cosa vi aiuti.

Debian Linux e LSI MegaRAID SAS

Monitorare il sistema RAID di un Server IBM x3400 M3 il cui controller RAID risulta “LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)”.

Devendo monitorare il sistema RAID di un Server IBM x3400 M3 il cui controller RAID risulta “LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 05)”, ho seguito le istruzioni di questo articolo (modificandole un po’ affinché funzionino).

Leggi tutto “Debian Linux e LSI MegaRAID SAS”

SMART error (FailedOpenDevice) detected on host

Su un Server Linux Debian mi capitava un fastidioso problema relativo allo smartmontools , un software che ha il compito di monitorare lo stato di efficienza dei dischi collegati al sistema ed in grado di segnalare eventuali malfunzionamenti.

Leggi tutto “SMART error (FailedOpenDevice) detected on host”