Настраивая сценарий на поле AMI для создания каталогов - vsftpd, pam, mysql

tac LCSoap_8.log | sed -n '
  /Server returned HTTP response code: 500 for URL:/,/qualified-src-dn=.*src-dn/!d
  s/.*qualified-src-dn=\(.*\)src-dn.*/\1/p'

или повторно использовать ваш grep:

tac LCSoap_8.log | sed '
  /Server returned HTTP response code: 500 for URL:/,/qualified-src-dn=.*src-dn/!d' |
  grep -Po '(?<=qualified-src-dn=).*(?=src-dn)'

sed '/A/,B/!d' d̲eletes каждую строку за исключением (!̲) строк с до следующего после этого.

1
26.08.2018, 01:12
2 ответа

Вот некоторые мысли:

1) Вероятно, вам нужно использовать модуль pam_script или что-то подобное для создания homedir пользователей. Модуль pam_mkhomedir основывает домашний каталог на том, что видно в файле passwd (или ldap и т.д.) и предполагает несколько отображений uid/gid/homedir. Ваши пользователи виртуальны в mysql и не основываются на записи passwd, которую система знает и может хорошо играть в мире vsftp.

Скорее всего, модуль pam_script не включен в ваш дистрибутив, и вам может понадобиться найти внешний пакет или скомпилировать его из исходников.

2) $PAM_USER - это переменная окружения, которая передаётся модулям pam: С помощью pam_script, как мне передать PAM_AUTHTOK и PAM_USER во всех случаях?

3) Когда вы попадаете в скриптовую часть, проверьте наличие ошибок selinux, так как /etc/pam-script/pam_script_auth может быть отшлепано написанием в нестандартное место для вашего дистрибутива.

4) Отправьте ваш вывод в /etc/pam-script/pam_script_auth в лог-файл, чтобы вы могли увидеть, получаете ли вы ошибки, связанные с вашими командами.

$ cat /etc/pam-script/pam_script_auth
#!/bin/sh
echo "I got here" >> /tmp/script.out 2>&1
if [ ! -d "/opt/ftp/$PAM_USER" ]; then
  /usr/bin/env mkdir /opt/ftp/$PAM_USER >> /tmp/script.out 2>&1
  /usr/bin/env chown ftp:ftp /opt/ftp/$PAM_USER >> /tmp/script.out 2>&1
fi

Good luck,

Nick

1
27.01.2020, 23:51

Так что это ваш скрипт:

#!/bin/sh
if [ ! -d "/opt/ftp/$PAM_USER" ]; then
 /usr/bin/env mkdir /opt/ftp/$PAM_USER
 /usr/bin/env chown ftp:ftp /opt/ftp/$PAM_USER
fi

Попробуйте свой скрипт с этим:

#!/bin/sh
if [ ! -d "/opt/ftp/${PAM_USER}" ]; then
 /usr/bin/env mkdir /opt/ftp/${PAM_USER}
 /usr/bin/env chown ftp:ftp /opt/ftp/${PAM_USER}
fi

PAM_USER - это вариабельная версия? Но я не понимаю, где вы создаете эту переменную.

У меня есть подобный скрипт, он проверяет мое имя хоста, чтобы принять файл на сервере TFTP.

0
27.01.2020, 23:51

Теги

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