Это потому, что родительский каталог принадлежит старой группе. Во многих системах владельцем группы файлов и каталогов по умолчанию является их родительский каталог. Если вы хотите, чтобы это прекратилось, вам нужно изменить владельца группы родительского каталога. Затем вы можете изменить владельца группы для всех ее дочерних каталогов, используя:
chgrp -R desiredgroup parentdirectory
Параметр -R применяет его ко всем дочерним каталогам.
Если вы имеете в виду выполнение этого через shell, то да, это возможно. Мы можем иметь в виду другой результат, но операция похожа на эту структуру, которую я написал ранее для передачи сообщения через shell.
См: http://www.akamay.net/PUBLIC/massmail.tar
Скрипт использует три (3) файла.
Credential File - собственно файл конфигурации. Поместите его в /tmp
HEAD_FROM="BSDUSER" # Почта от:
HEAD_TO="${FIELD1[$a]}" # Rcpt to:
HEAD_REPLY-TO="info@my.email.com" # Ответить :)
HEAD_BCC-TO="i@my.email.com" # BCC to
HEAD_SUBJECT="NOTICE - Personalize mass mail for ${FIELD3[$a]}"
HEAD_PRIORITY="High" # Low / Medium / High
HEAD_IMPORTANCE="3" # Важность
HEAD_MIME-VERSION="1.1" # Версия MIME
HEAD_CONTENT-TYPE="text/plain" # Обычный или HTML
TEAM_CONTACT="info@my.email.com" # Подпись @ EOF
INTERVAL="2" # Время ожидания на отправку.
Owner File - Файл, содержащий ваши FIELD'ed значения, разделенные символом ":".
john:Tuesday:john:john@my.email.com
sally:Wednesday:sally:sally@my.email.com
lisa:Friday:lisa:lisa@my.email.com
Собственно скрипт рассылки. Скрипт прост. Он разбирает конфигурационный файл с помощью цикла for со значениями заданных полей: field1,2,3 и т.д. Я подставил эти значения из CSV-файла, сохранил их в исполняемый текст с правильным форматом и отправил все в sendmail.
F1=`cat $2 | cut -d: -f1 | perl -ne 'chomp;print" $_"' | sed 's/^[ \t]*//;s/[ \t]*$//'`.
F2=`cat $2 | cut -d: -f2 | perl -ne 'chomp;print" $_"' | sed 's/^[ \t]*//;s/[ \t]*$//'`
F3=`cat $2 | cut -d: -f3 | perl -ne 'chomp;print" $_"' | sed 's/^[ \t]*//;s/[ \t]*$//'`
F4=`cat $2 | cut -d: -f4 | perl -ne 'chomp;print" $_"' | sed 's/^[ \t]*//;s/[ \t]*$//'`
F5=`cat $2 | cut -d: -f5 | perl -ne 'chomp;print" $_"' | sed 's/^[ \t]*//;s/[ \t]*$//'`
echo -e "#!/bin/bash" > $TMP/notify_exec
echo -e "FIELD1=($F1)\nFIELD2=($F2)\nFIELD3=($F3)\nFIELD4=($F4)\nFIELD5=($F5)\n" >> $TMP/notify_exec
echo -e "for ((a=0;a<\${#FIELD1[*]};a++))\ndo" >> $TMP/notify_exec
echo -e "echo \"From:$C_F" >> $TMP/notify_exec
echo -e "To:$C_T\nReply-to:$C_RT\nBcc-to:$C_BT\nSubject:$C_S\nPriority:$C_P" >> $TMP/notify_exec
echo -e "X-Mail-Priority:$C_I\nMime-Version:$C_M\nContent-Type:$C_C\n$C_MSG\n\n\n" >> $TMP/notify_exec
echo -e "Generated using: $0 - Есть вопросы? Напишите нам по электронной почте: $C_TM" >> $TMP/notify_exec
echo -e "\" | /bin/sendmail -t -oi" >> $TMP/notify_exec
echo -e "sleep $C_SL" >> $TMP/notify_exec
echo -e "done\nexit 0" >> $TMP/notify_exec
chmod +x $TMP/notify_exec
Я столкнулся с некоторыми проблемами при использовании mailx в отношении пользовательского ответа, поэтому я переключился на sendmail для доставки сообщения, и оно работает нормально.