Portál AbcLinuxu, 25. listopadu 2025 19:33
No jasne ... taaak trebars nejako takto:
for user_dir in ` cut -d : -f6,1 /etc/passwd `
do
ur=`echo $user_dir |cut -d : -f1`
dr=`echo $user_dir |cut -d : -f2`
mkdir $dr
chown $ur.users $dr
done
awk -F: '{if($3>1000&&$3<1011)print$1}' /etc/passwd
Takže by se dal udělat jednoduchý script v BASHi, který by nějak, třeba takto:
for UZIVATEL in `awk -F: '{if($3>1000&&$3<1011)print$1}' /etc/passwd` ; do
mkdir /home/$UZIVATEL
__NEJAKA_AKCE__
chown -R $USIVATEL:users /home/$UZIVATEL
chmod 0700 /home/$UZIVATEL
done
vytvořil ty uživatelské adresáře, nastavil vlastníky a práva, zkopíroval do těch uživatelských adresářů obsah /etc/skel nebo co chcete v místě "__NEJAKA_AKCE__". Je to to první, co mě napadlo, tedy jestli dobře chápu váš dotaz. Snad to pomůže.
Pozn.: Některé distribuce místo toho, aby měly všechny uživatele v jedné skupine třeba "users", tak každý uživatel má vlastní skupinu. Pak by u toho "chown" namísto "-R $UZIVATEL:users" bylo samosebou "-R $UZIVATEL:$UZIVATEL".
#!/bin/bash for I in `cat /etc/passwd | grep /home/ | cut -d : -f1,1`; do echo Creating home dir for user $I cp -r /etc/skel /home/$I; chown -R $I.users /home/$I; done
Ale moc nechybělo...
#!/bin/bash for I in `grep /home/ /etc/passwd | cut -d : -f1,1`; do echo $I cp -r /etc/skel /home/$I; chmod 711 /home/$I; chown -R $I.users /home/$I; done
Snad je to lepsi...
#!/bin/bash for I in `grep /home/ /etc/passwd | cut -d : -f1,1`; do echo $I cp -r /etc/skel /home/$I; chmod 711 /home/$I; chown -R $I:`id -gn $I` /home/$I; done
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.