Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    37

    Script bash per modifiche a home utente

    Salve,
    mi servirebbe uno script in bash che da root acceda a tutte le cartelle utente ed esegua delle operazioni al loro interno.
    L'autenticazione al sistema è tramite LDAP, non so se dipenda da questo ma in /etc/passwd non sono presenti gli utenti del sistema.

    Non so se mi sono spiegato chiaramente, ma ad esempio se ho gli utenti pippo, pluto e paperino, devo scrivere dei file nelle directory /home/pippo, /home/pluto e /home/paperino
    Tutto qui
    www.ariadifan.it - Ariadineve Official Fan Club -

    God save the Queen

    Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something

  2. #2
    Utente di HTML.it L'avatar di nifriz
    Registrato dal
    Jan 2008
    Messaggi
    2,058
    Ma senza passare dal file dell'elenco utenti, non puoi accedere alla directory /home,
    fare un "LS" delle directory e ciclare su quell'elenco? Sarebbe più semplice...

    In ogni caso /etc/passwd non è più affidabile mi sa, se non erro (NEL CASO CORREGGETEMI) alcune Distro, come UBUNTU non utilizzano più questo files...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2009
    Messaggi
    37
    Alla fine ho risolto con

    codice:
    command='ls -d /home/*' 
    for i in $($command); do 
      if [[ "$i" = "/home/mms" || "$i" = "/home/tomcat" || "$i" = "/home/lost+found" ]]; then 
        echo "" 
      else if [[ -d $i ]]; then 
        sudo cp * $i/.icewm/ 
        user=${i:6} # per estrarre il nome utente
        sudo chown $user:users /home/$user/.icewm/* 
      fi 
    fi
    Il primo if serve per non far copiare i file in cartelle a cui non serve, non sarà una soluzione pulitissima ma funziona correttamente
    www.ariadifan.it - Ariadineve Official Fan Club -

    God save the Queen

    Progress isn't made by early risers. It's made by lazy men trying to find easier ways to do something

  4. #4
    Un modo piu` pulito per ottenere l'elenco degli utenti e`

    codice:
    awk -F: '($3 > 999){print $1}' < /etc/passwd | grep -v nobody
    quindi puoi

    codice:
    for user in $(awk -F: '($3 > 999){print $1}' < /etc/passwd | grep -v nobody); do
       if [ -d "/home/$user" ]; then
    
           sudo cp * /home/$user/.icewm/ 
           sudo chown $user:users /home/$user/.icewm/* 
    
       fi
    done
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.