автоматическое создание профилей удара?

Кажется, вычислили метод работы. Избегая $IFS и не пытаясь работать со всем списком каталогов как со строкой или массивом - работаем над каждым элементом по мере его нахождения. Заменили последний цикл следующим:

find "$DIR" -type f -mtime -2 -name '*.xls*' -exec sh -c '
  for file do
    # Check to see if we found any files or not
    if [ -z "$file" ]; then
        echo "$NOBODY" | mutt -s "Data files for $TODAY" $EMAILS
    # If we found files, then email them
    else
        echo "$MBODY" |  mutt -s "Data files for $TODAY" -a "$file" -- $EMAILS
    fi
  done
' sh {} +

где $NOBODY - другое тело сообщения о том, что не найдено ни одного подходящего файла. Использование "*.xlsx*" для обеспечения соответствия файлов .xls и .xlsx. Это сработало, но переменные, объявленные выше, не были переданы в цикл. Я разместил каждую из них командой export, после чего вышеприведенный трюк выполнен. (Если есть более элегантный способ занести переменные в цикл, то я его не нашел. 99% обсуждений циклов и переменных посвящено тому, как вернуть их обратно OUT цикла, а не INTO it)

.
1
07.10.2014, 18:40
3 ответа

/etc/profile.d/ каталог содержит сценарии, которые запускаются на user_login. Создайте здесь сценарий для создания профиля bash.

#!/bin/bash
export your environment variables here
or invoke a script that generates bash profile.

Местоположение bash_profile должно находиться в каталоге пользователя, то есть (/home/usr/.bash_profile)

Профиль bash_profile, как правило, представляет собой список экспортируемых переменных среды (например, пути ...)

export VARENV="/path/to/object/"
0
27.01.2020, 23:38

Поместите .bash_profile файл в / etc / kele / . Это в основном каталог шаблона для новых пользовательских профилей. Что-нибудь, в котором находится скопировано в $ Home , когда создается новый пользователь, и они имеют $ Home Dir. Это похоже на профиль по умолчанию в Windows.

Чтобы использовать тот же файл для удаленных и локальных пользователей, ищите переменную, что только удаленные пользователи установили и включают в себя тест для этого в функциях / настройках, которые вы хотите применить к ним. Что-то похожее на ssh_client или ssh_tty

if [[ $SSH_CLIENT ]]; then
    setup foo for a remote user
else
    setup foo for a local user
fi
2
27.01.2020, 23:38

Ручная страница Samba для синхронизации учетных записей пользователей с доменом

Список рассылки Samba :: Проверка состояния пользователя домена против Active Directory D (Omain) / C (Ontroller)

Один из способов выполнения этой задачи Чтобы разместить скрипт в каталоге /profile.d/, указанный в другом ответе.

Тест на членство в доменах и состоянии пользователя, затем в зависимости от результатов запроса, выполните ваше требование, или если пользователь не соответствует требованию привилегии домена, не создавайте Bash_Profile.

Console Console

$> getent group

Выход

Domain Admins:x:512:root
Domain Users:x:513:jht,lct,ajt,met,vlendecke
Domain Computers:x:553:
... ...
domain-ssh-users:x:55X:harry,mark,john

Тестирование членов группы домена

DOMAIN_GROUPS=`getent group`
USERS_DOMAIN_SSH=`echo $DOMAIN_GROUPS | grep "domain-ssh-users" | sed 's/domain-ssh-users:x:55X://g`
USER=`last | head -n 1`
if [ `echo $DOMAIN_GROUPS | grep $USER` ]
then
#... Do add bash_profile.
else
#... Do not add bash_profile.
exit
fi

Это хаки, но работоспособные ...

Domain_Groups Перечислены группы доменных групп и ассоциированные пользователи. User_domain_ssh Читает domain_groups, полоски все за исключением строки доменных пользователей ssh-ssh, а обработка текста потока прокладывает все, кроме шарнируемых пользователей запятой. Пользователь проверяет последних пользователей в систему и читает абсолютный последний логин.

Тест проверяет строку domain_groups для пользователя.

Пример экспорта пути Samba

if [ $TEST_DOMAIN_USER_ACCESS_LEVEL ]
then
export PATH='/usr/local/samba/bin:\
/usr/local/samba/sbin:$PATH' >> /home/domain/user/.bash_profile && echo OK
else
exit
fi

Управление Samba Group

Profile.D Script

#!/bin/bash
env=`env`
#Store env to string then test for domain membership...
if echo $env grep -q "local.mydomainname.com"
  then
    user=`cat /var/log/auth | grep LOGIN | grep -o '.\{0,0\}:.\{0,100\} | sed 's/: //g' | grep -Eo '^[^ ]`
    # There's a step ^^ missing in this assignment to grab the first line matching a pattern. So here we are checking what user to build for.
    echo "Line 1 of ~/.bashrc" >> /home/mydomain/$user
    echo "Line 2 of ~/.bashrc" >> /home/mydomain/$user
  else
    echo "Do not build a ~./bashrc for non-domain users"
fi
0
27.01.2020, 23:38

Теги

Похожие вопросы