Archivio per la categoria Opensuse

Confrontare due directory sotto windows.

Nei sistemi linux potremmo confrontare due directory con il comando diff e la seguente sintassi:

diff -r --brief cartella1 cartella2 oppure come al solito per chi non è tanto a suo agio con la bash come me.. si può utilizzare il software Meld sotto gnome.

Sotto windows possiamo appoggiarci al programma winmerge, la cui interfaccia banale ci permette di risolvere il classico problema di avere due cartelle perfettamente allineate.

Winmerge ci permette di visualizzare le differenze in entrambe le cartelle sia nella prima che nella seconda e di copiare le differenze in un senso o nell’altro, questo principio si può applicare anche ai file di testo.

Il sistema di Apple utilizza un software chiamato Filemerge che si occupa del confronto e unione di file.

Lascia un commento

Opensuse: cups e il processo di stampa.

Opensuse: cups e il processo di stampa.

Il sistema di stampa di default in opensuse è Cups (Common Unix Printing System) il quale è bastato su IPP (Interent Printing Protocol), tale protocollo è ampiamente supportato dai maggiori produttori di prodotti per la stampa e dai vai sistemi operativi.

Vediamo di capire le fasi di un processo di stampa sotto linux, come gestire le n/s stampe e consultare gli eventuali log in caso di errori, partiamo definendo per passi il processo di stampa:

  1. Un job di stampa viene lanciato da un applicativo quale openoffice ad esempio.
  2. Il file destinato alla stampante selezionata viene aggiunto alla coda di stampa, la quale crea due files necessari per stampare nella directory /var/spool/cups, Il primo di questi file è il relativo lavoro di stampa, il secondo fornisce informazioni sul creatore del processo di stampa e sulla stampante da utilizzare.
  3. Il  demone cupsd agisce come spooler di stampa, si occupa infatti di controllare le code di stampa e di lanciare i relativi filtri richiesti per convertire i dati nel formato di stampa specifico.
  4. La conversione viene effettuata secondo tale schema:
    1. Il tipo di dato è determinato utilizzando le righe presenti nel file /etc/cups/mime.types
    2. Successivamente il dato viene convertito in Postscript utilizzano le righe presenti nel file /etc/cups/mime.convs.
    3. Dopo ch il programma pstops (/usr/lib/cups/filter/pstops) determina il numero delle pagine da stampare che è scritto nel file /var/log/cups/page_log.
    4. Nel caso in cui la stampante non fosse di tipo Postscript cups utilizzerebbe il formato di conversione necessario richiamando il relativo programma,  uno di questi ad esempio è cupsomatic  (/usr/lib/cups/filte/cupsomatic).
    5. L’invio definitivo alla stampante viene effettuato tramite un dterminato tipo di filtro in base alla connessione del dispositivo all’host di stampa (parallela, usb o network), tale informazioni risiedono nel file /usr/lib/cups/back end.
    6. Una volta che il lavoro è stampato, lo spooler cancella il job dalla coda di stampa e rimane in attesa del successivo, quando il job è cancellato i file in /var/spool/cups/ vengono eliminati.

Le varie stampanti in linux vengono indicate come code di stampa, ognuna di tale code sono registrate nel file /etc/cups/printers.conf, ogni coda ha il suo file di configurazione nella directory /etc/cups/ppd e ognuno di questi file contiene le impostazioni del formato carta, la risoluzione ecc, ecc.

Lascia un commento

Opensuse: gestire i runlevel.

Inittab definisce i runlevel che il sistema linux deve adottare quando è finite il boot, ma che servizi avviare ad ogni runlevel non risulta tra I compiti di questo file.

Tale informazioni sono date dai link simbolici presenti nelle varie directory /etc/ini.d/rcx.d/ che puntano agli script presenti in /etc/init.d/ , al fine di comprendere meglio l’avvio di tali servizi cerchiamo di analizzare:

  • Gli script di init.
  • Il link simbolici ai vari runlevel.
  • Come determianre quali servizi avviare o fermare.
  • Come attivare/disattivare tali servizi per ogni determinato runlevel.

La directory /etc/injt.d contiene gli script dell basj  dei vari task da effettuare dopo l’avvio e eventualmente dei vari  sevizi da avviare o stoppare nel sistema.

Questi script possono essere chiamati direttamente ad esempio all’avvio del sistema, alo spegnimento o durante la pressione di ctrl+alt+canc,  o indirettamente quanto si passa ad esempio da un runlevel all’altro.

Per lanciare un determinate runlevel init chiama in causa lo script  /etc/init.d/rc, con il runlvel come parametro, questo a sua volta legge nella directory /etc/init.d/rcx.d lanciando o stoppando I relative servizi in base ai links enumerati in questa directory.

Ogni runlevel ha la sue subdirectory in /etc/init.d, così avremo per il runlevel 3 /etc/init.d/rc3, /etc/init.d/rc5 per il runlevel 5 e così via.

Osservando I files presenti in ogni subdirectory noteremo che vi sono presenti tue tipologie di file quelle che iniziano con k e quelli che iniziano con s, oguno di questi è sempre seguito da due lettere più il nome del servizio.

Ogni servizio in linux può esere:

Avviato con il parametro start (ad esempio: /etc/init.d/smb start avvia il demone di  samba.)

Fermato con il commando stop

Riavviato con il commando restart, anche se in questo caso prima ferma il servizio poi lo riavvia.

Inittab definisce i runlevel che il sistema linux deve adottare quando è finite il boot, ma che servizi avviare ad ogni runlevel non risulta tra I compiti di questo file.

Tale informazioni sono date dai link simbolici presenti nelle varie directory /etc/ini.d/rcx.d/ che puntano agli script presenti in /etc/init.d/ , al fine di comprendere meglio l’avvio di tali servizi cerchiamo di analizzare:

  • Gli script di init.
  • Il link simbolici ai vari runlevel.
  • Come determianre quali servizi avviare o fermare.
  • Come attivare/disattivare tali servizi per ogni determinato runlevel.

La directory /etc/injt.d contiene gli script dell basj  dei vari task da effettuare dopo l’avvio e eventualmente dei vari  sevizi da avviare o stoppare nel sistema.

Questi script possono essere chiamati direttamente ad esempio all’avvio del sistema, alo spegnimento o durante la pressione di ctrl+alt+canc,  o indirettamente quanto si passa ad esempio da un runlevel all’altro.

Per lanciare un determinate runlevel init chiama in causa lo script  /etc/init.d/rc, con il runlvel come parametro, questo a sua volta legge nella directory /etc/init.d/rcx.d lanciando o stoppando I relative servizi in base ai links enumerati in questa directory.

Ogni runlevel ha la sue subdirectory in /etc/init.d, così avremo per il runlevel 3 /etc/init.d/rc3, /etc/init.d/rc5 per il runlevel 5 e così via.

Osservando I files presenti in ogni subdirectory noteremo che vi sono presenti tue tipologie di file quelle che iniziano con k e quelli che iniziano con s, oguno di questi è sempre seguito da due lettere più il nome del servizio.

Ogni servizio in linux può esere:

Avviato con il parametro start (ad esempio: /etc/init.d/smb start avvia il demone di  samba.)

Fermato con il commando stop

Riavviato con il commando restart, anche se in questo caso prima ferma il servizio poi lo riavvia.

Ricaricato con il commando reload, in questo caso rilegge la configurazione del servizio, ma differenza d restart prima non ferma il servizio.

Visualizzato nel suo stato attuale con il status.

Premesso questo andiamo a spiegare il signifacato dei vari k e s e delle due lettere che li seguono, questi parametri servono a spiegare il comportamento di tali servizi al passaggio da un runlevel all’altro.

Quando cambiamo runlevel init chiama lo script /etc/init.d/rc con il runlevel nuovo come parametro, supponiamo di passare dal runlevel 5 al runlevel 3, in questo caso lo script /etc/init.d/rc leggerà la directory del runlevel corrente (in questa caso 5) e la confronterà con quella del runlevel a cui passare (in questo caso 3).

Lo scenario presente ci ofrre 3 tipi di possibilità

  1. Esiste un link del tipo kxx per un certo servizio nel runlevel 5 ed esiste un link sxx per lo stesso servizio nel runlevel 3, in questo caso passando dal livello 5 a 3 tale servizio non viene ne avviato ne stoppato.
  2. Esiste un link del kxx per un certo servizo nel runlevel 5 ma non esiste un corrispondente sxx nel runlevel 3, in questo caso il servizio nel runlevel 3 viene stoppato.
  3. Esiste un link sxx per un certo servizio nel runlevel 3 ma nessuno corrispondente kxx nel runlevel 5, in questo caso  il servizio viene avviato.

Ancora poco chiaro? Si lo penso anche io.. vediamo di spiegarlo meglio con una tabella ipotizzando l’esempio del link /etc/init.d/kxxnetwork  al passaggio dal runlevel 5 al runlevel 3 con l’eventuale esito di avvio per il servizio network.

Nome link Runlevel 5 Nome link Runlevel 3 Esito
kxxnework Link presente sxxnetwork Link presente Servizio ignorato.
kxxnework Link presente sxxnetwork Link assente Servizio fermato.
sxxnework Link presente kxxnetwork Link resente Servizio avviato.

Rimane adesso da definire il significato delle lettere dopo k o s, indicano semplicemente la priorità dell’esecuzione dei vari servizi, ad esempio k10network sarà eseguito prima di k20cron,il cambio da un runlevel all’altro può essere eseguito dal superuser con il comando init + numero_runlevel.

Per gestire l’avvio dei vari servizi ad ogni runlevel state tranquilli possiamo utilizzare tranquilamente il n/S amato Yast2, digitando da prompt yast2 runlevel oppure dalla gui System->System Service (runlevel), l’interfaccia grafica si propone in due modalità

Simple: dove possiamo abilitare/disabilitare i vari servizi (demons) per il prossimo avvio.

Exert mode: abbiamo il totale controllo dei servizi possiamo scegliere non solo quali abilitare o meno ma anche quali per ogni runlevel, quali fermare o quali ricaricare.

Lascia un commento

Opensuse: il file /etc/inittab e i runlevel.

Gestire i runlevel è essenziale per qualsiasi amministratore linux che si rispetti, perciò non  è sicuramente il caso mio, tuttavia conoscerne il funzionamento può servire per risolvere varie situazioni anche a i vari neofiti come il sottoscritto.

Iniziamo dando uno sguardo al programma ini e i vari runlevel che in linux sono numerati da 0 a 6 ognuno indicante una modalità di avvio diversa del sistema operativo.

Init viene lanciato da /sbin/init che a sua volta viene avviato dal kernel di linux come primo proesso di sistema, questo processo avvia poi successivamente tutti gli altri.

Essendo init l’ultimo programma in esecuzione durante l’avvio di linux questo vuol dire che è lo stesso programma che si occupa di tutto l’avvio e anche dello shutdown del sistema operativo, il file di configurazione a cui si appoggia init e /etc/inittab che si occupa di lanciare i vari script di avvio che sono locati nella directory /etc/init.d.

Definiamo intanto cosa sono poi questi runlevel, semplicemente definiscono lo stato di un sistema linux, i vari runlevel sono così divisi:

0 = Halt del sistema.

S = Utilizzato per effettuare l’avvio in single-mode (con layout di tastiera inglese).

1 = Modalità utente singolo (single-user mode)

2 = Multiutenza senza servizi di rete.

3 = Multiutenza con servizi di rete (senza server x-org).

4 = Questo non viene utilizzato mai.

5 = Multiutenza  con servizi di rete e modalità in grafica (x-org).

0 = Riavvio del sistema.

Dalla bash il comando runlevel ritorna il reunlevel attuale.

Per comprendere inittab dobbiamo:

Conoscere la sintassi di inittab.

Conoscere le varie entries presenti in inittab.

Ogni riga del file inittab è definita dalla seguente sintassi:

id:rl:azione:processo

id: un identificativo univoco di 4 lettere  per ogni riga del file.

rl:  la lsist dei runlevel per cui questo id è valido.

azione: La modalita’ con cui viene eseguito il comando vero e proprio

processo: identifica il processo relative a questa riga.

Vediamo adesso le entries classiche di inittab, partendo dalla prima di tutte che è la seguente:

Id:5:initdefault

Initdfault indica il livello di runlevel in cui deve essere avviato un system linux dopo il boot, solitamente questo può essere 3 oppure 5.

Il runlevel S è un come certamente vi sarete chiesti un runlevel special, addirittura funzionerebbe nel caso in cui /etc/inittab fosse mancante.

Vi basterebbe digitare S al prompt del boot quando il computer parte, in questo caso il commando sulogin permetterebbe solo al superuser di effettuare il login.

Concludiamo dicendo che inittab si occupa anche dell’eventuale pressione dei tasti ctrl+alt+canc durante l’avvio., per impedire che la loro pressione comprometta l’avvio di linux possiamo commentare l’eventuale riga nel file.

Lascia un commento

Opensuse: Grub il bootmanager.

Per avviare un sistema operativo, qualunque esso si avete bisogno di un programma particolare chiamato bootloader, questo dopo la fase iniziale del post di avvio del computer ricerca i vari dispositivi configurati per effettuare il boot e una volta identificati avvia da essi il processo di avvio del sistema operativo stesso.

Un bootmangaer può fare questo ed altro, ovvero non solo carica il processo di avvio si un sistema operativo ma può gestire l’avvio di più sistemi operativi insieme.

Il vecchio Lilo (linux loader) vien oggi sostituito da Grub (Grand Unified bootloader), ed è oramai il bootmanager di default di ogni distro linux opensuse compresa.

Il processo di Grub si articola in una architettura a due fasi:

  1. In  questa fase Grub vine installato nel MBR (Master Boot Record) solitamente quello del primo hard disk, data la sua grandezza, 446 byte, l’MBR contiene le informazioni necessarie per accedere alla fase due dell’avvio di Grub.
  2. Questa fase contiene il bootloader, i file del secondo stage del bootloader sono localizzati nella directory /boot/grub.

Grub può essere lanciato prima dell’avvio del sistema operativo premendo Esc quando appaiono le scritte indicanti i sistemi operativi da eseguire, e configurato addirittura dentro opensuse stessa, sia da Yast2 che da riga di comando.

 

Lascia un commento

Opensuse: Il processo di avvio.

Opensuse come qualsiasi sistema linux o altro esegue una sequenza di avvio ben determinata dal momento di accensione del computer al momento in cui sia arriva alla finestra di login dell’utente.

Le fasi di avvio di un sistema linux generalmente sono:

Sequenza del Bios e caricamento del boot manager.
Il kernel.
Inittramfs (Initial Ram System).
Init.
La sequenza di avvio del Bios (Basic Input Output System) che parte quando viene acceso il computer esegue una serie di test hardware sugli eventuali dispositivi di boot quali hard disks, cdrom anche periferiche usb nelle mainboard moderne, una volta trovato il primo hard disk avviabile (bootable) il Bios legge l’ MBR (Master Boot Record) presente sul disco leggendo perciò il codice li presente avvia il boot manager.

Il boot manager è il programma che avvia ogni sistema operativo, in linux questo è di default Grub che negli anni ha sostituito il vecchio LILO, grub carica il kernel e initrd in memoria e successivamente avvia il kernel.

Il kernel (/boot/vmlinux che non è altro che un link simbolico a /boot/vmlinux-kernel_versione) viene decompresso e si organizza per continuare l’avvio (boot) del sistema operativo.

Il kernel controlla e predispone la console (Il Bios, registra la scheda grafica e l’output della risoluzione video dello schermo), poi legge i parametri del Bios e inizializza le interfacce hardware e le vari periferiche.

Vengono poi caricati i drivers, che sono parte del kernel stesso, controlla e gestisce l’hardware presente in base ai drivers conosciuti.

Inittramfs (Initial Ram System) è un archivio creato in formato cpio che viene caricato nella ram, provvede un sistema minimale linux che abilita l’esecuzione dei programmi prima che il filesystem di root venga caricato.

Inittramfs deve sempre caricare un eseguibile chiamato init che esegue appunto il programma init sul filesystem di root per permettere al processo di boot di avviarsi.

I sistemi opensuse utilizzano il modulo initrd, /boot/initrd è un link a /boot/initrd-kernel_versione ovvero il file che contiene l’archivio compresso cpio.

Il kernel carica il programma init contenuto in initramfs, questo è script della shell di linux che carica i moduli del kernel e monta il filesystem root, e successivamente avvia /sbin/init dalla root stessa.

Una volt controllato le partizioni e montato la root, il programma init carica /sbin/init che effettua il boot del sistema operativo avviando i suoi programmi e le eventuali configurazioni.

Al processo init è sempre assegnato il PID (process ID) uguale a 1, questo si affida al file /etc/inittab per l’ informazioni sulla configurazione e su quali processi avviare.

Lascia un commento

Opensuse: lanciare i jobs con il comando at.

Una volta discusso della possibilità di utilizzare il demone cron per schedulare le n/s routine o processi, passiamo a presentare at che p il comando che serve per programmare l’esecuzione dei vari jobs nel caso in cui questi devono essere eseguiti un’unica volta.

Prima di tutto precisiamo che il servizio di at si attiva se non fosse avviatel con il comando rcatd start, secondo dobbiamo determinare quali utenti di sistema possono definire e lanciare i propri jobs.

Il file /etc/at.allow contiene gli utenti ammessi a schedulare i propri jobs, /etc/at.deny quelli a cui non è premesso, di default in suse /etc/at.deny esiste mentre /etc/at.allow deve solitamente essere creato con un editor di testo tipo vi.

La sintassi del comando è at orario_di avvio del jobs, successivamente possiamo digitare una serie di istruzioni da far eseguire al job e salvare il job stesso premendo Ctrl+d.

Le istruzioni possono essere anche contenute in un file di testo, in questo caso la sintassi sarà la seguente:

at –f nome_file orario_di avvio.

 

Lascia un commento

Opensuse: scheldulare i jobs con il demone cron.

Opensuse o linux in generale trova nel campo applicativo delle rete un vasto utilizzo, molti ammininstratori di sistema perciò a pari dei loro colleghi sotto windows server abitualmente dovranno effettuare controlli sul sistema, dovendo perciò shedulare le varie routine da eseguire su linux.

L’automazione di tali routine come di altri controlli eventuali o di qualsiasi task che vogliamo eseguire può essere eseguito con:

Il daemon cron, per schedulare abutualmente questi task.

Il comando at, per seguire una volta un determianto task.

Il daemon cron /etc/init.d/cron utilizza il file crontab che contiene una list di tutti i jobs da eseguire, ovviamente di crontab esiste una copia sia per il sistema linux che per ogni utente.

Il file /etc/sysconfig/cron contiene le variabili per la configurazione dei vari script di avviati da cron, con cron possiamo definire due tipi di jobs come accenato prima:

  • Job di sistema.
  • Jo avviati dagli utenti.

Potete eseguire i jobs di sistema con il file /etc/crontab, dopo un installazione standard  solo un job è definito quello che lancia quelli contenuti nelle seguenti directory:

/etc/cron.hourly jobs lanciati ad ogni ora.

/etc/cron.daily jobs lanciati ad ogni giorno.

/etc/cron.weekly jobs lanciati ad ogni settimana.

/etc/cron.monthly jobs lanciati ad ogni mese.

Potete aggiungere linee a crontab, ricordandovi di non cancellare quelle aggiunte in fase di installazione, le informazioni sui vari script eseguiti possono essere letti in /var/spool/cron/lastrun/ in file tipo cron.daily.

I jobs dei vari utenti sono archiviati nella directory /var/spool/cron/tabs in files contententi il nume utente che li ha creati, il proprietario dei file rimane sempre l’utente root, gli utenti possono creare i vari file con il comando crontab.

Lascia un commento

Opensuse: i servizi (daemon).

Un servizio in linux è  chiamato daemon,ed è un processo o una collezione di processi che attendano un determinato evento per attivarsi, facendo l’esempio dei servizi di rete un evento può essereuna richiesta di connessione al web o ad una risorsa condivisa, altre richieste potrebbero essere quelle quelle lanciate dai vari job schedulati (programmati) da cron e atd.

I daemons vengono abitualmente lanciati in background all’avvio di sistema fornendo una serie di servizi disponibili, possiamo ottenerli digitando ps x in un prompt danto un occhiata alla colonna TTY cercando il simbolo ?.

Esempio:

wickerman75: # ps x

PID      TTY     STAT   TIME   COMMAND

3043    ?          Ssl       0:00     /usr/sbin/nscd

 

I daemon(s) in linux finiscono solitamente con la lettra d, tipo nmbd, smbd winbd (i daemons della suite samb) oppure sshd (ssl), ci sono ovviamente alcuni tipo cron o portmap che rappresentano un eccezione.

I daemon(s) hanno tutti un script di avvio presente nella directory /etc/init.d, e possono essere avviati maulmente o arrestati o riavviati con i seguenti  comandi:

/etc/init.d/smb start avvia il demone smb.

/etc/init.d/smb stop interrompe  il demone smb.

/etc/init.d/smb restart riavvia il demone smb.

Oppure utilizzando il comando rc(nome_servizio) con questa sintassi:

Per avviare il servizio     rcsmb start.

Per fermare il servizio     rcsmb stop.

Per riavviare il servizio     rcsmb restart.

Lascia un commento

Opensuse: informazioni sull’hardware attraverso la shell.

Vediamo come reperire informazioni sull hardware del n/s computer attraverso la bash, ecco alcuni comandi utili:

hwinfo: genera e visualizza una lista del hardware installato sul computer, utilizzatelo con il comando | less per visualizzare le varie pagine una dopo l’altra.

Per un sommario utilizzate il comando con il parametro –short, per scrivere il tutto in un file di log utilizzate il parametro –log nome_file.

Hdparm: visualizza varie informazioni sul hard disk, l’opzione –i rivela informazioni sull hard drive direttamente al boot del sistema operativo.

fdisk: viene utilizzato principalmente per visualizzare e creare partizioni su un sistema linux.

lspci: visualizza tutte le informazioni relative al bus pci e tutti i dispositivi connessi, è utilissimo per generare informazioni sull hardware di un computer.

siga: (System Information Gathering) colleziona informazioni sull hardware del computer e lo esprota in un file ascii o html.

Lascia un commento

Opensuse: informazioni sull’hardware attraverso la directory proc.

Ricordate la directory /proc? Questa contiene informazioni in tempo reale  sull’hardware, I vari file in questa directory possono essere aperti con il comando cat per visualizzare il loro contenuto.

Ecco alcuni esempi dei file più usati:

/proc/cpuinfo: fornisce informazioni sul tipo di processore quali il tipo, la memoria cache ecc, ecc.

/proc/devices: indica quali dispositivi sono attualmente in uso.

/proc/ioports: visualizza le I/O ports utilizzati dal sistema.

/proc/interrupts: vede quali IRQ linux assegna ai vari dispositivi.

/proc/hdma: visualizza I DMA utilizzati dal sistema operativo.

/proc/bus/pci/devices: visualizza le periferiche PCI del sistema.

/proc/scsi: visualizza le periferiche scasi del computer:

Lascia un commento

Opensuse: monitorare il boot del sistema operativo.

Opensuse durante il boot mostra una serie di messaggi che visualizzano lo stato di avvio (boot) del sistema operativo, tali righe scorrono troppo velocmente per poter analizzare gli eventuali errori che sono presenti.

Ma dove finiscono ueste informnazioni? vengono registrate nel kernel ring buffer durante l’avvio di linux ma data la dimensione piccola di questo buffer le nuove informazioni vengono aggiunt e quelle vecchie cancellate, tuttavia tutte le informzioni vengono ugualmente archiviate nel file /var/log/boot.msg.

Il comando dsmeg permettere di vedere in tempo reale il contenuto del kernel ring buffer, digitando semplicemente dsmeg | less, in questo file vengano perciò archiviate tutte le informazioni generate dall’inizializzazione dell hardware da parte di linux, del kernel e die moduli del kernel.

Yast può aiutarci graficamente a visualizzare queste informazioni attraverso Yast -> Miscellaneous -> View start up log oppure con yast2 view_anymsg.

Lascia un commento

Cambiare il propietario di gruppi e files.

I comandi chown e chgrp vengono utiizzati per cambiare il proprietaro del file e il gruppo proprietario del file, ecco alcuni esmpi:

chown -R wickerman75 pippo.txt

Imposta wickerman75 come proprietario del file pippo.txt

chown -R wickerman75:users pippo.txt

In questo caso cambia anche il gruppo di wickerman75.

Per cambiare il gruppo si può anche utilizzare chgrp

chgrp users pluto.txt

1 Commento

Comportarsi come root.

Dover accedere alle configurazioni di sistema con l’utente root tutte le volte che necessitiamo di apportare modifiche al n/s pc con opensuse risulterebbe complicato, connettiti e poi  disconnettiti… ci vorrebbe un qualcosa che sia simile se non migliore del classico “Run as” dei sistemi operativi windows.

Vediamo come fare:

Possiamo da X lanciare qualsiasi programma o script che sia ed eseguirlo attraverso il comando sudo, facciamo un esempio

sudo /sbin/shutdwon -h now

A questo punto ci verrà chiesto di fornire la password del superuser e il gioco è fatto.

Questo è comodo se noi siamo la persona abilitata a fare modifiche al sistema e perciò la sola a conoscere la password di root, tuttavia può capitare come in molte realtà di dovere far eseguire semplici comandi o task agli utneti normali facendo si che questi non vengano a conoscenza della password.

Possiamo editare perciò il file /etc/sudoers con il comando visudo, decommentando o aggiungendo vari comandi allo script possiamo personalizzare quello che è concesso fare ai vari utenti del sistema.

Non essendo molto pratico di questo aspetto vi consiglio di ricercare tra i vari esempi dei file /etc/sudoers nel web per maggiori dettagli.

Lascia un commento

Opensuse: modificare i permessi dei files.

Opensuse: modificare i permessi dei files.

I permessi di file in linux possono essere cambiati attraverso il comando chmod seguito dagli argomenti + per aggiungere  o per rimuovere.

Chmod nella sua sintassi viene seguito anche dalle lettere che indicano il soggetto a cui il comando verrà applicato, queste sono:

  • u cambia i permessi al proprietario del file(owner)
  • g cambia il gruppo di appartenenza
  • o cambia i permessi per gli altri .
  • a cambia i permessi per tutti.

Alcuni esempi

chmod u+x il proprietario del file ottiene il permesso di eseguire il file

chmod a+rwx tutti gli utenti ottengono il permesso di lettura, scrittura e esecuzione sul file

chmod +x il file diventa eseguibile.

chmod g=rw il gruppo ottiene permessi di scrittura e lettura sul file.

I permessi vengono indicati come segue r=read w=write x=execute, e hanno gli stessi valori descritti nel post precedente ovvero:

  • r =4      per la  lettura del file.
  • w=2      per la scrittura del file.
  • x=1      per poter eseguire il file.

Per ottenere un controllo completo su un file o directory dobbiamo assegnare un valore complessivo al file di 777, ad esempio

:chmod 777  pippo.txt tutti hanno permesso di scrittura , lettura ed esecuzione del file.

chmod 444 pippo.txt invece rende  il file disponibile in sola lettura.

Normalmente in opensuse i file vengano creati con 666 come permessi di default  mentre  le cartelle con 777, per restringere i permessi possiamo utilizzare in unica soluzione il comando umask dalla shell.

Ad esempio creiamo una directory di nome prova nella n/s home per la quale vogliamo che il gruppo e gli altri non abbiano i relativi permessi di scrittura.

wickerman75@linuxbox# mkdir prova

wickerman75@linuxbox# umask 022

facciamo lo stesso per il file pippo

wickerman75@linuxbox# touch pippo

wickerman75@linuxbox# umask 022

con umask 077 lanciato su file o cartelle si farà si che queste siano accessibili solo a root e al proprietario, se vogliamo inoltre  far si che file e cartelle siano creati con i permessi della directory prova (775) e del file pippo (644) dobbiamo modificare il file /etc/profile.local sostituendo i  valori desiderati.

Lascia un commento

Opensuse: gestire i permessi dei vari files.

Come in qualsiasi altro sistema operativo anche lavorando con opensuse dovremo gestire i relativi permessi di file e cartelle.

Innnanzitutto è necessario capire come funzionano i vari permessi nel filesystem di linux, perciò meglio partire da un output di ls come esempio perciò digitiamo :

wickerman75@linuxbox: ls –l pippo.txt

-rx-rx-r– wickerman75 users 2010-02-15 20:40 pippo.txt

La stringa di risposta del prompt ci mostra varie informazioni, la più interessante in questo post sono i primi 10 caratteri.

Il primo carattere di questa stringa indica nell’output se si tratta di un file come questo, se si tratta di una directory avremmo avuto una d oppure di un link in quel caso una l.

Gli altri nove caratteri indicano i relativi permessi sul file, o sulla cartella o link che sia, i permessi sotto linux sono

Read (r): riferito ad un file indica che un file può essere letto, per una directory che possa essere elencato il suo contenuto.

Write (w): riferito ad un file indica che questo possa essere modificato, per una directory che si possa creare o cancellare files al suo interno.

Execute (x): riferito ad un file vuol dire che questo può essere eseguito, riferito a una directory che ci si possa spostare nella directory attraverso il comando cd.

I permessi si raggruppano di tre caratteri in tre, del tipo rwx rwx rwx e si riferiscono rispettivamente a:

Da 1° al 3° carattere per il proprietario del file o della directory.

Da 4° al 6° carattere per il gruppo del gruppo di appartennenza.

Da 7° al 9° carattere per tutti gli altri non inclusi nei primi sei caratteri.

I permessi sono visualizzati in linux anche in forma numerica , i numeri si ottengono dalla somma dei caratteri raggruppati in tre cifre alla volta assegnando come valore 4 per read, 2 per write e uno per execute.

Con riferimento all’output di prima avremmo 664, ovvero 6 per il propietario (4 read + 2 write), 6 per il gruppo (4 read + 2 write) ed infine 4 per gli altri (4 read).

Lascia un commento

Opensuse: gestire i gruppi e utenti dalla bash.

Una volta visto come yast ci permetta di gestire gruppi e utenti, vediamo come possiamo fare la stessa cosa dalla bash.

Il comando per aggiungere gli utenti dalla bash è useradd, adesso facciamo l’esempio di acreare un utente di nome wickerman75 con password $1975wi digitando da prompt:

useradd -p “$1975wi” wickerman75

L’opzione –p permette di definire la password utente, vediamo adesso altri parametri

g seguito dall’uid del gruppo definisce il gruppo primario dell’utente.

-u definisce lo user id dell’utente.

–m crea automaticamente anche la directory utente specificandone il percorso, se questa non viene indicata allora la directory /etc/skel viene utilizzata come template per creare la home directory dell’utente.

Quando creiamo un utente i files etc/defaults/useradd / e /etc/login.defs vengono utilizzati come default per indicare i relativi parametri riferiti ad un utente (home directory, shell di default e così via).

Possiamo definire la scadenza di un utente con l’opzione –e permette di definire una durata dell’utente per esempio creiamo un utente generico chiamato user1 che furerà fino al 31 dicembre di quest’anno.

useradd –e 2010-31-12 user1.

Il comando passwd invece permette di gestire le password di un utente ad esempio:

passwd wickerman75

New password:                   sarà quello che riporterà il prompt chiedendoci di inserire la nuova password.

Re-enter nw password        qui la riconfermiamo.

New password changed      qui abbiamo la conferma del cambio password.

Possiamo blocccare/sbloccare  un utente sempre con lo stesso il comando vediamo come:

passwd –l wickerman75   blocca un account.

passwd –u wickerma75    sblocca un acount.

passwd  -S wickerman75   visualizza lo stato di un utente.

Cancelliamo un utente ovviamente da root con il comando userdel, aggiungendo l’opzione –r cancelliamo anche la home directory.

userdel –r wickerma75

Fatti gli utenti gestiamo i gruppi, semplice no? Perciò aggiungiamo, cancelliamo o modifichiamo  un gruppo così:

groupadd personal creo il gruppo personal.

groupadd –g 101 personal creo il gruppo perosnal definendo il suo GID come 101.

groupdel personal cancello il gruppo personal.

groupmod –-g personal 102 modifico il GID del gruppo a 102.

groupmod –-n hidden personal modifico il nome del gruppo da personal a hidden.

groupmod –-A wickerman75 hidden aggiungo l’utente wickerma75 al gruppo hidden.

Lascia un commento

Opensuse: gruppi e utenti con Yast.

Yast il tool di configurazione di opensuse pemette la copleta gestione di utenti e gruppi attraverso l’interfaccia grafica, possiamo perciò attraverso questo tool occuparci della creazione di utenti e gruppi e dei vari aspetti di configurazione riguardanti questidue elementi.

Possiamo accedere alla configurazione degli utenti dal pannello di controllo Yast da Security and Users > User Managements oppure lanciando da prompt yast2 users per quel che riguarda gli utenti, per i gruppi Security and Users > Group mangement oppure yast2 groups.

Una volta arrivati a questa schermata possiamo scegliere se aggiungere un utente oppure modificare le proprietà di quelli esistenti.

In questa finestra abbiamo la possibilità di aggiungere un utente comando Add  o cancellarlo pulsante delete, oppure possiamo modificarne uno esistente indipendentemente dalla scelta verranno sempre utilizzate le seguenti finestre a partire da questa:

Qui in questa schermata possiamo inserire il nome dell’utente e la sua eventuale password ma anche la possibilità di fargli effettuare il login sul sistema.

In questa schermata che segue invece possiamo editare altri parametri quali lo User Id (vedete che parte da 1000) la sua home directory e la shell di default dell’utente ma anche i vari gruppi di appartenenza compreso quello di default.

In questa finestra invece abbiamo l’opzioni relative alla password come durata minima e massima delle password,  eventuale data di scadenza e quanti giorni prima l’utente deve essere avvertito prima che la password attuale scada.

Ora che abbiamo dato uno sguardo a Yast passiamo a definire le stessi opzioni dalla shell.

Lascia un commento

Opensuse: gruppi e utenti.

Linux è un sistema operativo multiutente perciò avremo la necessità di gestire sul n/s pc gruppi e utentiche utilizzano le risorse di sistema.

Ogni utente in opensuse è definito da un UID (user id) che definisce il tipo di utente che come potrete immaginare saranno divisi in base alle loro funzionalità e al loro utilizzo perciò avremo:

Utenti regolari: i normali utenti che utilizzano il computer che possono accedere a programmi, dati e così via che normalmente sono amministrati da l’utente root.

Utenti di sistema: sono gli utenti creati durante la fase installativa di opensuse che utilizzano servizi o utilità vari o altri applicativi vari tipo ad esempio wwrun che vien utilizzato per Apache.

L’utente root: l’amministratore di sistema con totali diritti amministrativi sul computer,.

Gli utenti vengono raggruppati in gruppi gli utenti normali vengono inseriti nei gruppi normali (user group) quelli dedicati alla creazione di pagine web al gruppo Webedit e così via per molti altri gruppi.

I gruppi in linux vengono identificati da un GID (group ID) il quale è rappresentato da un numero

Gruppi Normali: per gli utenti che utilizzano il computer partono da 100 in su.

Gruppi di Sistema: con numerazioni da 1 a 99.

Root. Identificato con gruppo 0.

Lascia un commento

Opensuse: gli editor di testi.

Lavorando con linux, sia per hobby che a livello professionale,  risulterà impossibile non incappare nell’utilizzare un editor di testo appropriato per modificare eventuali files di configurazione.

Ovviamente possiamo ricorrere all’interfaccia grafica come naturalmente da riga di comando.

Ricorrendo all’interfaccia grafica possiamo utilizzare quello fornito con l’interfaccia di default di gnome ad esempio gedit oppure il suo equivalente in KDE kwrite, se la v/s scelta è questa allora vi troverete ad utilizzare dalla user interface un editor di testo in stile wordpad per windows niente di più niente di meno perciò chi è che non sa usare wordpad….

Lavorando con la shell l’alternative sono molte tra cui emacs, vi ma oggi tratteremo di vim l’editor di default in opensuse.

Vim (vi improved) può essere invocato dal prompt anche tramite il comando vi che in suse risulta essere un link al comando vim, vim risulta essere un pòostico all’inizio per chi non è abituato a lavorare con le caratteristiche di questo editor di testo il cui comportamento dipende dalla modalità in cui si sta usando.

Quando viene lanciato vim è in modalità command ovvero tutto quello che viene lanciato qui risulterà essere un comando,  per entrare in modalità insert ovvero per digitare del testo dovremo digitare i, fatto questo vedremo apparire in fondo alla finestra dell’editor la scritta INSERT adesso possiamo iniziare a scrivere.

Per ritornare alla modalità command premete esc, se volete invece utilizzare la modalità command line allora premete : successivamente ad esc, da qui in poi vim acetterà dei comandi dalla riga di comando digitati questi ritornerete automaticamente in command mode.

i entra in modalità insert.

x cancella l’ultimo carattere.

dd cancella la riga su cui è posizionato il cursore e la copia in memoria.

D cancella il resto della riga su cui è situato il cursore.

u annulla l’ultima operazione.

:q chiude vim (in caso non si abbia salvato)

:q! esce dall’editor salvando tutte le modifiche verrano perse.

:w salva il file.

:qw salva il file ed esce da vim.

Lascia un commento

Opensuse: variabili e alias.

Le variabili di ambiente servono a controllare il comportamento di un programma lanciato da una shell, mentre le variabili della shell servono a controllare il comportamento stesso della shell stessa.

Alcune variabili di ambiente includono tali informazioni:

  • PATH: quando un programma viene invocato dalla shell questa per prima cosa ricerca la directory di avvio specificata qui, ogni directory elencata è separata dal carattere “:”, l’ordine di sequenza qui indicato rappresenta ovviamente l’ordine di ricerca predefinito.
  • HOME:  l’home directory degli utenti.
  • USER: il nome di login dell’utente attuale.

Per visualizzare il valori di tali variabili utilizziamo il comando echo $variabile, ad esempio

echo $HOME

Per creare una variabile usiamo la sintassi variable=nome_variabile, ecco un esempio

myvar=myvalue

il nome della n/s variabile può essere ho un numero, oppure una stringa ad esempio:

myvar=”la mia stringa” (essendo una stringa metto il valore tra gli apici)

a questo punto il valore di myvar è ottenuto con

echo $myvar che ritornerà ovviamente la mia stringa.

Gli alias permettono di creare collegamenti per i comandi e alle loro opzioni, o di creare comandi che richiami questi ultimi ma con nomi diversi.

In opensuse ogni volta che lanciamo comandi come dir, md o ls scopriamo che stiamo definitivamente utilizzando degli alias, possiamo scoprirli attraverso appunto il comando alias, ma eco alcuni esempio.

alias md ritornerà dal prompt alias md = “mkdir –p”

alias dir ritornerà dal prompt alias dir =”ls –l”

Possiamo scoprire anche se un comando è un alias di un altro comando con type –a.

Per definire un alias utilizziamo la seguente sintassi

alias nome_alias=”comando + opzione”

Normalmente gli alias influenzano solamente la shell corrente e non le altre, per rendere permanente un alias dobbiamo aggiungerlo manualmente ad una shell in opensuse tale file è ./alias

I vari alias possono essere rimossi con il comando unalias.

Lascia un commento

Opensuse: tasto tab e comando history.

Il bello della shell di linux a differenza del prompt di dos è che permette il completamento del comando da applicare su un file o altro attraverso la pressione del tasto tab, possiamo copiare ad esempio il file foo.txt digitando cp foo + tasto tab, il quale completerà il nome del file da copiare.

Un altra funzione molto comoda è il comando history che ci permette di rivedere e riutilizzare i comandi che abbiamo utilizzato in precedenza, basterà digitare history dal prompt e potremmo rivedere un elenco numerato dei comandi digitati, l’elenco di questi comandi viene scritto nel file .basch_default nella directory home di ogni utente e può contenere fino ad un massimo di 1000 voci.

Lascia un commento

Opensuse: conoscere la bash.

Nei sistemi operativi è impossibile comunicare direttamente con il kernel, perciò necessitiamo di uno strumento che ci permetta di interagire direttamente con questo, in linux questo strumento è rappresentato dalla shell.

La shell di linux ci permette di inviare comandi e convertirli in chiamate di sistema,  di inviare messaggi ai vari utenti oppure di utilizzarla anche come interprete di comandi.

In lnux esistono vari tipi di shell, sebbene quella di default nella maggior parte è la Bash (Bourne again shell) ve ne sono presenti varie versioni  ognuna con caratteristiche e funzionalità, ecco riportato di seguito un elenco:

  • Bourne again Shell    /bin/bash
  • Korn shell                   /bin/ksh
  • C shell                        /bin/csh
  • TC shell                     /bin/tsch

Ogni shell funziona come qualsiasi programma potete lanciare un terminale da gnome e dentro di esso switchare ad una shell differente semplicemente invocandola da dentro il prompt.

Le shell di differenziano tra login shell e non loginshell, la differenza consiste nel fatto che la prima (login shell) vine lanciata non appena un utente effettua il login sul sistema mentre la seconda viene lanciata da dentro una shell esitente.

La differenza sta anche nei file di configurazione delle varie shell ad esempio per le login shell i file che vengono letti quando una di queste vengono  invocate sono:

/etc/profile file di configurazione generale letto da tutte le shell, contiene le configurazioni di base generali.

˜.profile: questo file viene creato per ogni utente di un sistema opensuse, qui possiamo fare ogni tipo di personalizzazione del prompt.

/etc/bash.bashrc file di configurazione della bash, configurando questo possiamo definire parametric quail

  • Aspetto del prompt.
  • Colori del comando ls.
  • I vari alias

Le configurazioni generali per la bash vengono scritte nel file /etc/bash.bashrc.local che vine importato da /etc/basch.baschrc.

˜/.baschrc in questo file gli utenti possono personalizzare la bash.

Per le shell di tipo nonlogin, I file che vengono utilizzati sono /etc/bash.bashrc, /etc/bash.bashrc.local e ˜/.baschrc, bisogna precisare che in opensuse come in molti altri distro linux viene definito un setup generale per entrambi I tipi di shell tanto che gli utenti non notano abitualmente le differenze.

Possiamo applicare lwe varie modifiche alla n/s shell attraverso il commando source con questa sintassi

source ˜/.baschrc.

Lascia un commento

Opensuse: alla ricerca dei files.

L’importanza di organizzare i propri dati non sarà argomento di questo post, la metodologia organizzativa varia da persona a persona, il che vuol dire che se non so dove metto i dati poi come li ritrovo? per i “casualmente distratti” o perché magari nella furia non ricordiamo dove abbiamo spostato i files vediamo come ritrovarli con opensuse ed ecco le varie opzioni.

  • Interfaccia grafica
  • Comando locate, find, grep, whereis, wich, type.

Da gnome possiamo utilizzare il Desktop search tool e Gnome search tool, questi tool grafici hanno la stessa familiarità degli equivalenti in windows quali windows search e google desktop, perciò al loro utilizzo lascio alla v/s intuizione essendo basati su interfaccia grafica.

I comandi della shell.

locate

Abbastanza semplice nell’utilizzo, basta digitare locate nome_da_cercare, questa ricerca non si basa effettivamente sul classico “trova” per intendersi, ma si limita a ricercare su un apposito database contenente informazioni sui file presenti nella macchina in un dato momento per questo bisogna in caso volete utilizzare tale comando da prompt digitare updatedb.

locate foo.txt cerca ffo.txt nella directory corrente.

find

Questo in assoluto è il comando che permette di trovare e fare qualsiasi cosa con ciò che troviamo, i parametri da abbinare al comando seguono questa sintassi;

find  percorso + criterio + azione_da_eseguire (dove percorso, criterio, azione_da_eseguire sono i parametri)

percorso: ovviamente dove cercare il file directory e sub directory, se non indicato niente viene cercato nella directory in cui stiamo lavorando e nelle varie sub directory.

criterio:le proprietà del file che devono essere visualizzate per il file cercato, ne riporto alcune tra i più comuni.

-name “termine da cercare”     cerca in base alla caratteristiche del nome indicate in termine da cercare, abitualmente nei manuali linux questo termine viene indicato come pattern ed è accompagnato ai caratteri wildcards tipo * racchiuso negli apici (quotations marks”) per far si che il sistema linux non lo interpeti come dei comandi dal prompt.

-ctime[+/-] giorni       cerca in base alla data indicata ad esempio non precedente di n giorni.

-type tipo_di_file cerca in base al tipo di file, dopo type segue un altro argomento che può essere “f” per un file, “d” per una directory, “l” per un link simbolico.

-uid specifica l’ user id (uid) dell’utente da cercare.

-user nome_utente specifica il file di cui il proprietario è nome_utente.

-group cerca in base al gruppo che è proprietario dei file.

azione: terzo ed ultimo parametro indica cosa fare dei vari files trovati, le opzioni che seguono sono due

print: stampa il file

exec comando: esegue un determianto comando.

partiamo con un esempio che forse è la soluzione migliore:

find /home/prova/doc -name “ilmiofax*” -type f -exec grep data invio {} \;

(questo è quello che ritornerà al prompt)

data invio fax 12/11/09

Spieghiamo un po’ il tutto renderlo più comprensibile.

find cercherà nella directory /home/prova/doc (parametro del percorso) un file che contiene la stringa che corrisponde al nome ilmiofax (questo è parametro del  criterio), sarà eseguito poi il  comando grep (parametro dell’azione da eseguire) che cercherà nel file specifico, passato attraverso le parentesi graffe, per la stringa data invio và notato come  l’espressione di ricerca viene chiusa da lo slash \ e il ; essendo questi caratteri speciali non verrano inteerpretati dalla shell.

Grep è un comando che serve per cercare stringhe all’internto dei vari file con la seguente sintassi.

grep stringa_ da_ cercare  percorso_file

Utilizzato da solo grep si impiega per cercare stringhe in un file la cui posizione è nota nel filesystem, ne caso descritto sopra l’abbinamento con find risulta un potente mezzo di ricerca per trovare si ai n/s file che l’espriossini delle vari stringhe che ci interessano dentro di essi.

which

Ricerca tutti i percorsi elencati nella variabile PATH per ogni determinato comando e visualizza sul prompt tale percorso,  è utile per visualizzare quale comando viene lanciato dal prompt se non viene specificato il percorso.

La variabile PATH contiene i percorsi degli eseguibili dove la shell deve cercare prima di lanciare il comando.

Un esempio utile potrebbe essere quello di capire quale versione del comando viene lanciato se presenti più versioni di questo digitando ad esempio

which cp

dovremmo ricevere

/bin/cp   come percorso corretto

which find

Dovremmo ottenere

/usr/sbin/find

type

Questo comando esegue una funzione simile a which però a differenza di questo visualizza un messaggio che indica se tale comando è uno dei comandi inclusi nella shell di linux oppure un alias, oppure una funzione ecc,ecc ma ecco alcuni esempi:

type type

type is a shell built in

type grep

grep is /usr/bin/grep

Lascia un commento

Opensuse: lavoriamo con i files e le directory.

Vediamo come  spostare, cancellare,  e creare link a file e cartelle in opensuse con la shell.

Ecco i comandi che ci interessano:

  • cp: serve per copiare file o cartelle.
  • mv: sposta file o cartelle.
  • mkdir: crea directory.
  • rmdir: cancella directory vuote.
  • rm: cancella file .. e cartelle vedremo come.
  • ln: crea link ai vari file e inode.

cp

copia i vari file o contenuti delle directory, principalmente al sintassi è la seguente copy origine_file  destinazione_ file portiamo alcuni esempi

cp foo.txt  /home/prova/foo.txt lanciato senza parametri per default cp sovrascrive ogni file esistente, in questo caso copiamo il file foo.txt dalla directory corrente sovrascrivendo quello presente in /home/prova.

cp -i foo.txt /home/prova/foo.txt chiede conferma prima di copiare.

cp -u foo.txt /home/prova/foo.txt copierà il file nella destinazione solo se questo è più vecchio di quello di destinazione, o questo è mancante.

Vediamo come copiare una singola directory e le sue opzioni

cp /home/prova /tmp copia la directory prova in /tmp.

cp -R /home/prova  /tmp/new copia tutti i file contenuti in /home/prova in /tmp/new, ottimo come backup.

cp -A /home/prova /tmp/new come sopra ma in questo caso vengono anche copiati i vari permessi, i proprietari link ecc, ecc.

mv

Sposta i vari file ma anche rinomina i  file, esempio pratico

mv *.txt /tmp sposto tutti i file con estensione .txt in /tmp.

mv foo. txt foo1.txt rinomina il file foo.txt in foo1.txt (vale anche per le directory)

mkdir

Crea una directory  nel percorso corrente o in un altro, esempio pratico

mkdir new crea la directory new nella cartella attuale.

mkdir –p prova/new crea una cartella di nome new in prova.

rmdir e rm

Il primo elimina directory vuote o file,  il secondo elimina ogni cosa.. davvero se digitato da root cancella davvero tutto

rmdir  prova cancella la directory vuota prova

rm foo.txt cancella il file foo.txt

rm prova cancella la directory prova

rm /windows/c lanciato come root in un sistema dual boot windows/opensuse cancella la partizione di windows e credetemi lo esegue davvero provato in un virtual machine.

rm fil* elimina tutto ciò che inizia con file comodo per cancellare tanti file o cartelle insieme.

ln

Quelli che normalmente indichiamo come links in windows sotto linux hanno anche un altro significato, tanto per cambiare direte voi.

Il file system di linux tiene separati quelli che sono i dati e le informazioni che lo riguardano, ogni file è descritto da un inode (information node), ognuno di questi inode 128 bits   corrisponde ad una struttura sul filesystem che memorizza di ogni file le varie informazioni quali proprietario, permessi, dati dell’ultima modifica e accesso, e la sua relativa posizione su un relativo blocco come ad esempio un hard disk, ma non il suo nome.

Possiamo vedere gli inode con il comando ls -i.

I link in linux sono di due tipi i cosiddetti hard link e i symlink, sebbene il loro utilizzo sia il medesimo, la loro funzionalità è diversa.

Potete creare un hard link usando il comando ln che punterà a questo punto a un inode già esistente, in questo modo il file può essere utilizzato sotto entrambi i nomi, sono di fatto una copia di una voce di directory, hanno nomi diversi ma puntano allo stesso inode e quindi condividono esattamente lo stesso dato (oltre agli stessi permessi, data di modifica, owner ecc.).

Teoricamente in un sistema Unix non potremmo avere hard links su sistemi diversi, con linux è possibile attraverso il parametro -d, gli hard links sono più economici  perché occupano meno spazio e permettono una lettura più rapida per il filesystem.

I symlink funzionano invece come concetto più ai collegamenti ai vari file sotto windows, se il file originale viene cancellato il symlink rimane anche se il suo collegamento non punta più al file originale.

Sono principalmente utilizzati a scopo amministrativo su sistemi Linux/Unix, di fatto rispetto agli hard link si presentano verso gli utenti come avente tutti permessi aperti a differenza del file a cui punto, ovvero il symlink non riflette gli stessi permessi del file a cui punta.

Lascia un commento

Opensuse: creiamo e leggiamo i files.

Normalmente in linux i file possono essere creati anche dalla bash oltre che dai vari editor di testo come gedit oppure openoffice o altre suite da ufficio.

Questi comandi che seguono servono per creare, visualizzare, modificare i vari files e sono:

  • touch: crea un file.
  • head: legge le prime righe di un file.
  • tail: legge la fine di un file.
  • cat: legge i contenuti di un file.
  • less: visualizza i vari contenuti dei file anche queli compressi, con questo comando non ci sono opzioni ma utilizziamo la tastiera per la visualizzazione.

Alcuni esempi

touch

touch foo.txt crea il file foo.txt.

touch -a foo.txt cambia l’ultima data di lettura del file.

touch -m foo.txt cambia l’ultima data di accesso del file.

head e tail

head foo.txt leggiamo l’inizio del file foo.txt per default sono 10 righe.

tail foo.txt leggiamo le ultime righe del file foo.txt (sempre 10).

Il numero delle righe può essere cambiato aggiungendo il parametro -numer (-n)

tail -c foo.txt leggiamo le ultime righe del file in tempo reale!, se su foo.txt nel mentre che lanciamo il comando vengono aggiunte righe tail le riporterà a video, possiamo interrompere il tutto con la pressione di ctrl+c.

cat

cat foo.txt legge il contenuto del file foo.txt, il nome del file da leggere in cat è un parametro obbligatorio.

less

Visualizza in tempo reale il contenuto di un file, possiamo spostarsi all’interno di un file utilizzando i tasti della tastiera dopo aver digitato il nome del file da visualizzare ad esempio

less foo.txt visualizza il contenuto di foo.txt, ecco come spostarsi all’interno del file con i vari tasti

  • barra spaziatrice: si muove di uno schermo verso il basso
  • b: si muove di uno schermo sopra.
  • freccia in basso: si sposta di una riga sotto.
  • freccia in alto: si sposta di una riga sopra.
  • q. chiude less

Lascia un commento

Opensuse: muoviamoci nel file system.

Le interfacce grafiche sono comode e utili per i programmi visuali, ma  velo dico con tutto il cuore in linux la shell (teminale) è qualcosa di veramente troppo utile per lavorare, sebbene io mi trovi in difficoltà nel suo utilizzo, devo dire che una volta presa la mano non ne potete fare a meno.

Come mai? Perché non troverete, ma uno che utilizza anche minimamente linux che non sappia almeno spippolare con il terminale e con tutta la buona volontà per alcune cose tra questi m’includo anch’io …ho almeno ne ho la presunzione, detto questo lascerò a dopo le motivazioni del tutto per ora scopriamo come muoverci nel file system.

Vi ricordo che potete attivare la shell anche da gnome o kde lanciandola dai programmi oppure passare a una sessione digitando ctrl+alt+fn (dove n è un numero che va solitamente da 1 a 6, 7 è utilizzato da xorg per la sessione grafica), effettuate il login e sarete pronti a muoverti nel file system ma vediamo come.

Questi i comandi più comuni

cd: per cambiare directory

ls: elencare i contenuti delle directory.

pwd: indica la directory dove siete.

Vi ricordo che linux e case-sensitive ovvero fa nettamente differenza tra maiuscole e minuscole.

cd

Acronimo di change directory è appunto il comando che serve per sosparsi fra le varie cartelle ecco alcuni esempi:

cd /home si sposta nella directory etc partendo dalla root (classico esempio di percorso assoluto).

cd lanciato da un prompt di sposta nella propria home directory.

cd .. si sposta nella directory superiore.

cd ..\.. si sposta nelle due directory superiori.

cd prova si sposta nella sub directory prova, ad esempio prova è una subdirectory di home, utilizzando un percorso assoluto avremmo digitato cd /home/prova.

ls

Questo comando elenca il contenuto di una directory ecco i vari parametri.

ls elenca solamente file e cartelle con i soli nomi.

ls -a visualizza i file nascosti, che in linux vengono preceduti dal punto (.) ad esempio .baschrc

ls -F indica dopo ogni nome il tipo di file,  “/” per le cartelle, “*” per gli eseguibili, “@” per i link simbolici, “l” per i file Fifo.

pwd

Acronimo di print working directory, visualizza la directory dove siamo attualmente.

Lascia un commento

Opensuse: identifichiamo i tipi di file.

Il filesystem di linux è totalmente diverso dagli altri sistemi operativi in virtù anche delle sue varie tipologie di file, c’è da dire che la suddivisone file e directory è sempre presente ovvero una directory (cartella) server per archiviare i vari file e i file sono i file.. semplice come in qualsiasi altro sistema.

In aggiunta a tutto questo in Unix/linux esistono varie tipologie di file che ritroviamo sono nel filesystem di questi sistemi, elencando tutti i tipi di files abbiamo:

  • File normali.
  • Directory.
  • File di dispositivi.
  • Links.
  • Socket.s
  • Fifos.

File normali: quelli che utilizziamo continuamente file di testo, grafica, eseguibili vari, sono tutti quei file che sono associati alle varie applicazioni o i semplici dati che utilizziamo.

Directory: le cartelle da sempre si utilizzano per archiviare file , le directory in linux sono precedute nel file system da uno o due punti, il primo fa riferimento alla directory stessa l’altro alla directory superiore.

File di dispositivi: ogni hardware (ad eccezione delle schede di rete) in linux sono rappresentati da un file, ogni programma che vuole accedere a quel determinato dispositivo deve farlo accedendo al corrispettivo file, a quel punto il kernel assicura che i dati trovino il modo di accedere a quel determinato hardware leggendo dal file in questione.

Links: ovvero i collegamenti a determinati files, questi vengono prevalentemente utilizzati per la manutenzione di tali files

Sockets: sono file speciali utilizzati per lo scambio di dati attraverso due programmi, lo scambio di file tra questi due processi è bidirezionale.

Fifos: (First In First Out) chiamati anche named pipe sono sempre file utilizzati per lo scambio dati tra due processi però in questo caso la scambio avviene solo da un processo all’altro.

Lascia un commento

Opensuse: Il file system di linux.

Il file system in linux è raffigurabile come un albero il cui ramo principale root (/) è suddiviso in varie sub directory, normalmente nella directory root non sono presenti file ma unicamente le cartelle.

Queste sono le principali sottodirectory di root in un file system linux in opensuse:

  • /bin
  • /boot
  • /datax
  • /dev
  • /etc
  • /home
  • /media
  • /mnt
  • /opt
  • /proc
  • /root
  • /sbin
  • /srv
  • /sys
  • /tmp
  • usr
  • /var
  • /windows

Che cosa rappresentano nel dettaglio ciascuna directory? Eccovi il significato:

bin: questa è la directory dove sono presenti alcuni eseguibili di sistema e le varie shell di linux, programmi utili per lavorare con i file qual cp, rm, mount e anche editor di testo quali vi.

boot: la directory che contiene i file di avvio di grub, il bootloader di default questa directory comprende anche il file del kernel chiamato vmlinux.

/datax: qui sono montate  partizioni o dischi con un filesystem diverso da quello linux ma che non sia quello di windows, le partizioni con windows siano montate nella directory /windows.

/dev: questa directory elenca tutto l’hardware presente sull’elaboratore, perché in ogni sistema linux un dispositivo è rappresentato da un file nella directory dev.

/etc: questa directory contiene i file di configurazione del sistema operativo come ad esempio:

  • /etc/X11/xorg.conf:  file di configurazione di X11.
  • /etc/shadow: file delle password utenti (questo file è cifrato).
  • /etc/sysconfig:  il file di configurazione di sistema, quelli modificati da Suseconfig.
  • /etc/init.d: il file di configurazione del processo init.
  • /etc/fstab: qui vengono archiviati i fileystem montati all’avvio.
  • /etc/cups: file di configurazione di cups.
  • /etc/host:  qui vengono archiviati l’associazioni indirizzo ip = nome computer.
  • /etc/passwd: elenca il file degli utenti senza password.

/home: questa è la directory degli utenti, tutto quello riguardante un utente è in questa cartella è un po’ l’equivalente di documents and settings sotto xp o users sotto vista, l’utente qui può personalizzare le proprie impostazioni ad esempio la bash modificando il file .bashrc.

/lib: questa directory opsita le varie librerie condivise tra i vari applicativi, le  librerie condivise (shared libraries) utilizzate dai programmi presenti in bin o sbin ad esempio.

/media: in questa directory vengono montati le vari periferiche dei dispositivi removibili ad esempio cdrom, usbpen avremmo perciò /media/usbpen per le penne usb e /media/dvd per il dvd.

/opt: cartella utilizzata da vari software, alcune applicazioni scrivono in questa.

/root: questa è la cartella delle utente root la sua home directory, viene creata separatamente rispetto a quelle utenti per permettere l’accesso al sistem anche in caso di mancato avvio del sistema.

/sbin: questa directory contiene gli script di sistema più utilizzati tra questi indichiamo ad esempio yast oppure SuSeconfig

/usr: questa è una directory particolare in accordo con la standard HFS è come se fosse una seconda gerarchia dell’albero di root, in questa cartella troviamo tutte le librerie condivise, i programmi installati, i file dell’interfaccia grafica e la documentazione di un sistema linux inoltre in src se installati vi sono i file del kernel di lnux.

Questi le sotto directory di usr:

  • /usr/X11R6/ : file del system X windows
  • /usr/bin: tutti gli eseguibili dell’applicazioni installate.
  • /usr/lib: le librerie dei programmi.
  • /usr/share/doc: la documentazione.
  • /usr/share/man: le pagine man.
  • /usr/share/src: qui vengono installati I sorgenti del kernel.

/var: in questa directory sono elencati file che possono essere modificati e consultati durante l’utilizzo del sistema operativo contengano sottodirectory molto utili quali /spool e /log.

Queste le sotto directory di var:

  • /var/lib/:
  • var/log: i log file di sistema.
  • /var/run: fiels dei programmi in esecuzione.
  • /var/spool: directory delle code di stampa (stampanti e email).
  • /var/lock/: vi sono i file che proteggono i dispositivi da utilizzi multipli.

/windows: qui vengono montate le partizioni windows.

/proc: questa directory che realmente non contiene file è utilizzata da linux per comunicare informazioni all’utente sui processi, ogni processo alla sua sottodirectory.

/sys: in questa directory fornisce informazioni sui bus hardware e i vari dispositivi, elenca le informazioni nella forma di un albero, così come pro il contenuto della directory è generato al volo.

/mnt: utilizzata per fare il mount temporaneo di alcuni dischi, per fare un mount definitivo di un file system o hard disk partizione che sia dovete editare /etc/fstab da root.

Lascia un commento

Opensuse: installiamo il software.

L’installazione del software sotto linux almeno per me si è sempre rivelato un problema, abituato al comodo installer di windows l’idea di dover installare i programmi dai sorgenti o addirittura dai pacchetti mi ha sempre un pò sconvolto.

Avendo utilizzato la red hat come mio primo linux ero abituato al formato  .rpm almeno in parte, perciò in opensuse l’utilizzo di questa gestione non mi ha sconvolto più di tanto, devo ricordare che il fatto che yast tanto per cambiare propone la gestione del sofware tramite interfaccia grafica con um front end in grado di facilitare l’installazione del software in maniera simil windows.

Yast provvede non solo a installare il software ma anche a aggiornare il sistema operativo e a mantenere la gestione dei repository da cui poter installare il software, perchè in opensuse come in qualsiasi linux sono disponibili repository di software compilati per la distribuzione.

Quello che andrò ad appuntarmi riguarda i principali comandi di rpm, la struttura di un pacchetto rpm e ovviamente l’utilizzo di zypper il tool presente in opensuse per installare/rimuovere software, devo dire che zypper  sebbene nella mia opinione da profano non è ancora all’aaltezza di apt risulta vermente comodo per tutte le interrogazioni dei pacchetti software.

Come è fatto un pachetto rpm prendiamo ad esempio questo

foo1.11.14.i586.rpm

La sintassi è questa nome pacchetto(foo) versione software(1.11.14) architettura del pacchetto(i586 indica sistemi a 32bit) rpm l’estensione del pacchetto, i file principali della configurazione di rpm sono archiviat in questa directory /usr/lib/rpm/rpmc mentre i file relativ al dabatase di rpm sono archiviati in /var/lib/rpm questo database può arrivare ad occupare anche 30 mb specialmente dopo un aggiornamento software.

Vediamo allora le opzioni più usate:

rpm -q foo  interroga il database per verificare se il pacchetto foo è installato.

rpm -i foo instlla il pacchetto foo.

rpm -e disisntalla il pacchetto foo.

rpm -V foo verifica l’installazione del pacchetto foo.

rpm -U foo  aggiorna il pacchetto foo.

rpm -i foo  installa il pacchetto foo.

In opensuse rpm e il software viene gestito con il comando zypper che provvede ad installare il softeware prendendosi la briga di ricercare nei reposistory configurati per il sistema, ecco la lista dei comandi più comuni di zypper

zypper install foo installa il pacchetto il pacchetto foo.

zypper rm foo rimuove il pacchetto foo.

zypper update foo aggiorna il pacchetto foo.

zypper search foo cerca il paccheto foo se installato.

Lavorando ogni giorno con windows devo dire che fatico ancora un pò a capire l’installazione da riga di comando sia zypper o apt che dir si voglia , fortunatamente opensuse con yast mi faciltà notevolmente le cose ed è uno di questi motivi per cui sono passato a questa distro, a parte tutto comunque opensuse utilizza anche One click Install.

One click isntall funziona indipendentemente rispetto alla posizione del sotfware nei repository, il formato del file ovvero YMP contiene informazioni su quale pacchetti scaricare e le sue eventuali dipendenza, una volta scaricato il pacchetto in questo formato viene lanciato yast e il inizia l’installazione del software qualora un repository non fosse presente ci verrà chiesto di aggiungerlo confermando al sistema la sua affidabilità.

Lascia un commento

Opensuse: configuriamo la rete.

Una volta installato opensuse certamente sarà prioritario configurare il sistema per l’accesso ad internet, come primo esempio farò riferimento alla configurazione della scheda di rete per la navigazione in internet attraverso un modem/router.

Per configurare la scheda di rete possiamo far ovviamente ricorso a Yast lanciandolo e caricando la sezione riguardo al networking, l’interfaccia grafica vi guiderà passo passo  provvedendo all’inserimento dei vari parametri che comprendono ip, subnet default gateway e dns.

Normalmente la rete in opensuse non viene gestita da yast ma da Networkmanger un applicativo che permette di poter canbiare fra le varie configurazioni wireless ethernet che sia, il vantaggio di networkmanager e che  non necesssita dei privilegi del superuser a differenza di yast.

Divulgarsi su come configurare la rete attraverso l’interfaccia grafica non è argomento di questo topic, perciò mi concentrerò sull’utilizzo della bash per configurare la rete, vediamo innanzitutto come vedere gli indirizzi in uso sulle varie schede perciò aprite un prompt e digitate ip adress show (l’equivalente di ipconfig /all sotto windows) e diamo un occhiata all’output del comando.

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
inet 127.0.0.2/8 brd 127.255.255.255 scope host secondary lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
link/ether 00:1f:29:7f:6a:9f brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:1a:73:f6:bb:bc brd ff:ff:ff:ff:ff:ff
inet 192.168.2.100/24 brd 192.168.2.255 scope global eth1
inet6 fe80::21a:73ff:fef6:bbbc/64 scope link
valid_lft forever preferred_lft forever
4: pan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether 7e:cc:65:d2:75:dd brd ff:ff:ff:ff:ff:ff
inet6 fe80::7ccc:65ff:fed2:75dd/64 scope link
valid_lft forever preferred_lft forever

Ogni scheda in linux è definita da quello che possiamo chiamare un index interface, il primo elencato definito dal numero 1 è l’indirizzo di loopback, seguono 1 per eth0 in questo caso la connessione ethernet e eth1 la connessione wireless cui attualmente sono connesso ma tutte queste righe cosa indicano?

Partiamo spiegandone il significato facendo riferimento alla mia connessione wireless

La prima riga che riporta 3 eht1 indica che la scheda è attiva, la riga immediatamente sotto link/ether indica l’indirizzo hardware della scheda (mac address), quella sotto ancora che comincia per inet indica la configurazione dell’ indirizzo ip quella successiva indica l’indirizzo ipv6 attestato sulla scheda.

Passiamo adesso ala configurazione della scheda attraverso il commando ip

Per assegnare un indirizzo:

ip address add 192.168.1.100/24 brd + dev eth0

Assegno alla scheda l’indirizzo 192.168.1.100 con subnet 255.255.255.0  l’opzione brd + assegna il brodcast automaticamente in fondo indico qual scheda utilizzare in questo caso eth0.

Per cancellare l’indirizzo:

ip address del 192.168.1.100 dev eth0

cancello l’indirizzo non è obbligatorio indicare la subnet e il broadcast

Abilitare disabilitare la scheda:

ip addrress set eth0 up abilito la scheda.

ip address set etho down disabilito la scheda.

Ruotare i pacchetti da un ip ad un altro:

ip route 192.168.1.100/24 via 10.0.0.1

tutti i pacchetti inviati ad uno 192.168.1.100 saranno reindirizzati su 10.0.0.1.

Aggiungere una route:

ip route add 192.168.1.100/24 via 10.0.0.1.

Cancellare una route:

iproute delete 192.168.1.100/24 via 10.0.0.1

Io abitualmente utilizzo questi comandi solamente per vedere la configurazione di rete non di certo per configurarla, per le reti wireless si può utilizzare anche iwconfig.

Lascia un commento

Opensuse: yast il tool di configurazione.

Yast acronimo di Yet another setup tool è lo strumento di configurazione che possiamo utilizzare per configurare quasi tutti gli aspetti di opensuse, può essere utilizzato attraverso le librerie ncurses in modalità testo oppure attraverso le qt perciò in modalità grafica.

Tutte le versioni svolgono le stesse funzioni, la  scelta dipende dalle n/s preferenze per poter utilizzare la versione con qt possiamo utilizzare anche il prompt da interfaccia grafica oppure accedere ad una sessione terminal premendo ctrl+alt+Fn dove n è il numero delle sessioni a cui possiamo accedere.

Possiamo pensare a yast come ad un front end per i vari tool di configurazione come ad esempio per la gestione del software, durante un installazione yast esegue dei semplici istruzioni del comando  .rpm,  normalmente durante la configurazione dei vari file yast procede in due modi scrivendo direttamente nei file di configurazione oppure temporaneamente nella directory /etc/sysconfig.

Durante questa fase entra in gioco SuSEconfig, questo tool viene utilizzato per configurare l’ambiente in base alle variabile presente in /etc/sysconfig, i vari file in queste directory sono vengono elaborati da SuSEconfig lanciando la gli script presenti /sbin/conf.d.

1 Commento

Opensuse: il comando man.

I sistemi moderni ci hanno abituato all’utilizzzo del mouse facendoci dimenticare che il prompt dei comandi rimane comunque la via più veloce per eseguire le operazioni.

L’utilizzo della shell poi in linux è il modo più veloce per eseguire le varie operazioni , non si può pensare di utilizzare linux senza dover metter mano al prompt almeno una volta, la bash (bourne again shell) è la shell di default sotto opensuse anche se possiamo decidere ad esempio di utilizzare tcsh o altre.

Man o man pages letterelmente pagine di manuale,è il comando che permette di visualizzare in maniera dettagliata tutta la documentazione di un relativo comando o anche applicativo, digitando ad esempio man cp avrete tutte le funzioni del comando cp (copy) sotto linux.

Per comodità man è diviso in varie sezioni, otto precisamente ognuna delle quali richiama vari parti della documentazione del comando che cin interessa, quello che segue dicamo che è la suddivisione delle sezioni.

  1. Comandi generali.
  2. Chiamate di sistema.
  3. Funzioni della libreria standard del c.
  4. File speciali.
  5. Formati e convenzioni.
  6. Giochi e screensaver.
  7. Miscellanea.
  8. Amministrazione del sistema, comandi e demoni.

Se volessimo visualizzare al sezione 3 del comando cp ci basterebbe digitare dal prompt man 3 cp, la forza di questo sistema ancora oggi utilizzato e risulta essere la migliore documentazione per i sistemi unix/linux.

Lascia un commento

Opensuse: uno sguardo ad X11.

Opensuse come qualsiasi altra distro linux utilizza il sistema grafico X o comunemente chiamato X11, creato nel 1984 presso il MIT con lo scopo di poter utilizzare le varie applicazioni grafiche attraverso la rete indipendentemente dall’hardware.

X11 permette di poter utilizzare le varie applicazioni anche sui vari pc della rete senza che questi siano visualizzate sullo schermo sul quale il computer sia collegato, questo funziona grazie alla parte server di X e alla parte client.

X.free e X.org sono implementazioni moderne di X, la parte server di xorg che quello usato di default sotto opensuse gestisce la grafica sullo schermo e  i vari input di tastiera e mouse, questo non ha niente a vedere con la gestione delle finestre o dei temi dell’interfaccia grafica quello è affidato ai vari desktop manager quali gnome, kde e icevm.

La parte client invece e l’applicazione grafica che utilizza il server X per ricevere i comandi da tastiera/mouse e vede l’output di ciò visualizzato a video, un interessante curiosità e che server e client comunicano attraverso il protocollo tcp/ip anche quando il client viene utilizzato sullo stesso pc del servere.

Di default opensuse utilizza kde come windows manager per Xorg mentre suse linux,(la versione commerciale di opensuse targata novell, utilizza gnome che io sinceramente preferisco,ricordate che il desktop manager può essere caricato automaticamente all’avvio del sistema linux oppure si può decidere il contrario.

In quel caso linux partirà ma alla fine ci troveremo davanti al sistema direttamente dalla bash, in quel caso per avviare la parte grafica dovremmo lanciare da prompt il comando startx, prima però dovremmo essere certi di aver configurato la parte grafica di linux ad esempio attraverso il tool  sax2.

La parte grafica può essere raggiungibile attraverso la combinazione ctrl+alt+f7, su questa verrà visualizzato la parte grafica, per accedere invece ad altre sessioni in modalità testo digitare  ctrl+alt+fn dove fn e il numero delle varie console  sul quale fare login.

Lascia un commento

Opensuse: i miei appunti di linux.

Sebbene lavori in ambiente windows, il mio primo interesse per l’informatica come lavoro  deriva da linux, un sistema che a mio avviso dovrebbe essere studiato  anche solo per scopi didattici.

Di distribuzioni linux ce ne sono talmente tante che scegliere tra quella che più ti si addice è impresa ardua , il mio primo linux fu red hat 6.0 negli ultimi tempi dopo aver osservato ed utilizzato come tutti il fenomeno ubuntu la mia scelta ricade su opensuse.

Il perchè? perchè linux non è solo debian o ubuntu , questa distribuzione è a mio avviso adattissima a quelli come me che non necessitano in fase iniziale di essere maestri della bash ,anche se questo vuol dire non  poter utilizzare linux come si deve.

Il tool di configurazione e amministrazione di opensuse (e suse linux versione commerciale della novell) si chiama Yast molto simile al  pannello di controllo di windows permette nei primi tempi di soffrire del passaggio  per chi si avvicina a linux da windows o mac.

Nel corso di questi mesi i miei post saranno dedicati alla mia curva di apprendimento sul sistema opensuse.

Perciò buon inizio …

Lascia un commento