Мне нужно скопировать (перезаписать, если он уже существует) файл во все домашние каталоги пользователей, входящих в одну и ту же группу («студенты»).
Я нашел сценарий, который попытался адаптировать к моему контексту (у меня есть пользователи LDAP вместо /etc/passwd, поэтому я использовал getent passwd для получения имен пользователей).
Вот это скрипт (cp2stud.sh):
#!/bin/bash
# subdirectory of /home/uid
DIR=".eclipse/org.eclipse.platform_3.8_155965261/configuration"
# the file to copy
FILE="/home/admin/tmp/config.ini"
# location of home dirs
UHOME="/home"
# GID of "students" group
USERS_GID=10004
# get list of users having same GID
_USERS="$(getent passwd | awk -F ':' '{if ( $4 == $USERS_GID ) print $1 }')"
for u in $_USERS
do
_dir="${UHOME}/${u}/${DIR}"
if [ -d "$_dir" ]
then
yes | /bin/cp -v "$FILE" "$_dir"
chown $(id -un $u):students "$_dir/${FILE}"
fi
done
Когда я пытаюсь запустить его:
$ sudo cp2stud.sh
Я ничего не получаю.
Где я ошибаюсь?
заранее спасибо
sudo bash -x cp2stud.sh
?-x
отслеживает каждую команду до стандартного вывода. - person Jordan Samuels   schedule 12.08.2014