#!/bin/bash
UHOME="/home"
FILE="/etc/skel/.newconfig-file"
USERS=$(cut -d':' -f1 /etc/passwd) # get list of all users
for u in $USERS
do
/bin/cp $FILE ${UHOME}/${u}
chown $(id -un $u):$(id -gn $u) /${UHOME}/${u}/${FILE}
done
Copy Multiles File To All Users Home Directory
You can also copy multiple files using inner and outer loop concept:
UHOME="/home"
FILES="/etc/skel/.newconfig-file /etc/skek/.update-config /chroot/jail/.force.conf"
USERS=$(cut -d':' -f1 /etc/passwd) # get list of all users
for u in $USERS
do
for f in $FILES
do
/bin/cp ${f} ${UHOME}/${u}
chown $(id -un $u):$(id -gn $u) /${UHOME}/${u}/${f}
done
done
for i in `ls -d /home/*/domains/*/public_html`; do
/bin/cp -Rv /sourcepath/* $i
done
เนื่องจากการเรียก cp เฉยๆนั้น หากใน profile มีการสร้าง alias ไว้ก็จะมีผล จึงควรอ้าง path เต็มๆเพื่อเลี่ยง alias
/bin/cp -Rfv
โค๊ดง่ายๆใช้แค่ sh ก็พอไม่ต้องถึงมือ bash เอาไปใช้ได้ทุกเครื่อง
ควรตรวจสอบด้วยว่ามี /home/user อยู่หรือเปล่า เพราะ list user ออกมาจากไฟล์ passwd จะมี system user ออกมาด้วย
Copy Single File To All Users Home Directory
#!/bin/sh
UHOME="/home"
FILEPATH="/etc/skel/"
FILENAME=".newconfig-file"
USERS=$(cut -d':' -f1 /etc/passwd) # get list of all users
for u in $USERS; do
if [ -d $UHOME/$u ]; then
/bin/cp -f $FILEPATH/$FILENAME $UHOME/$u/
chown $(id -un $u):$(id -gn $u) $UHOME/$u/$FILENAME
fi
done
Copy Multiles File To All Users Home DirectoryYou can also copy multiple files using inner and outer loop concept:
UHOME="/home"
FILES="/etc/skel/.newconfig-file /etc/skek/.update-config /chroot/jail/.force.conf"
USERS=$(cut -d':' -f1 /etc/passwd) # get list of all users
for u in $USERS; do
if [ -d $UHOME/$u ]; then
for f in $FILES; do
/bin/cp $f $UHOME/$u/
fn=`echo $f | awk -F'/' '{print $NF}'`
chown $(id -un $u):$(id -gn $u) /$UHOME/$u/$fn
done
fi
done