По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Жизнь системного администратора не проста. Поддержка систем, безопасность сетевого контура, решение проблем - уследить за всем сложно. Пользовательские пароли – важный нюанс и их, безусловно, нужно менять с определенной периодичностью.
В статье расскажем, как автоматически заставлять пользователей Linux сменить их пароли.
Срок действия паролей
Чтобы получить информацию о пользовательских паролях и о дате их окончания введите команду:
chage -l
Будет выведена следующая информация:
Когда пароль был последний раз изменен;
Дата окончания действия пароля;
Сколько дней осталось до окончания действия пароля;
Когда учетная запись пользователя будет закончена (можно, пожалуйста, далее мы будем говорить «заэкспайрится»?)
Минимальное количество дней между итерацией смены пароля;
Максимальное количество дней между итерацией смены пароля;
Заставляем пользователя менять пароль каждые 90 дней
Следующей командой вы можете поставить жесткое правило смены паролей:
sudo chage -M 90
Команду можно выполнить от root пользователя или от юзера с sudo правами. Проверить, что настройка установлена корректно, можно с помощью команды chage -l
Срок действия учетной записи
Представьте, у вас есть два юзера: Иван и Петр. И доступ им нужно организовать на 2 дня, с момента сегодняшней даты (сегодня echo rus_date("j F");). Получается, создаем им пользователей:
sudo adduser ivan
sudo adduser petr
Создаем пароли для них:
sudo passwd ivan
sudo passwd petr
Как мы уже сказали, Иван и Петр уезжают через 2 дня. Соответственно, делаем для них следующую конфигурацию:
sudo chage -E echo date("Y-m-d", strtotime("+2 days")); ivan
sudo chage -E echo date("Y-m-d", strtotime("+2 days")); petr
Если вы запустите команду chage -l , то увидите актуальную дату жизни аккаунта. Как только аккаунты Ивана и Петра заэкспайрятся, их можно будет удалить командой:
sudo chage -E -1 ivan
sudo chage -E -1 petr
Сколько времени на смену пароля?
Пароль Геннадия заэкспайрился (истек срок годности) в воскресение. Мы дадим Гене 5 дней, чтобы он зашел в свою учетную запись и сменил пароль. Если он этого не сделает, аккаунт будет заблокирован. Сделать это можно вот так:
sudo chage -I 5 gennady
Ну, а если Геннадий так и не сменит пароль и учетная запись заблокируется, удалить ее можно вот так:
sudo chage -I -1 gennady
Предупреждения для пользователей
Вы – адекватный человек. И наверняка хотите, чтобы ваши юзеры были уведомлены о смене пароля заранее. Например, чтобы Геннадий узнал, что через 7 дней истекает срок годности его пароля, дайте следующую команду:
sudo chage -W 7 gennady
Защищаемся от частой смены паролей
Вдруг в вашем штате завелся очень взволнованный безопасностью сотрудник, который меняет пароли каждый день? Такое. Чтобы сделать минимальное количество дней между сменой паролей в две недели (14 дней), можно указать следующую команду:
sudo chage -m 14 sergey
Сделали большой лимит и передумали? Не проблема – удалить ограничение в днях можно вот так:
sudo chage -m 0 sergey
Как и любая современная АТС, Asterisk имеет свою встроенную систему хранения истории звонков - CDR (Call Detail Record). Она используется для снятия статистики, ведения отчетности, прослушивания вызовов или подсчета биллинговых показателей.
В Asterisk для этого создана база данных asteriskcdrdb, в которой существует таблица cdr. Давайте рассмотрим как пользоваться данной таблицей и ее структуру.
[root@asterisk]# mysql // подключаемся к MySQL
После успешного подключения, необходимо выбрать для работы базу данных asteriskcdrdb:
mysql> use asteriskcdrdb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
Давайте убедимся, что у нас есть таблица cdr. Выполним это, как указано ниже:
mysql> show tables;
+-------------------------+
| Tables_in_asteriskcdrdb |
+-------------------------+
| cdr |
| cel |
+-------------------------+
2 rows in set (0.00 sec)
На данном этапе мы убедились, что у нас есть база данных asteriskcdrdb, в которой находится таблица cdr. Давайте попробуем посмотреть входящие звонки из города за сегодня (дата написания статьи 18 марта 2016 года), в период с 12:00 до 12:10, т.е за 10 минут:
SELECT `dst` , `src` , `duration` , `calldate` , `recordingfile`
FROM `cdr` WHERE `calldate` >= '2016-03-18 12:00:00' AND `calldate` <= '2016-03-18 12:10:00' AND LENGTH( `src` ) >3;
+-----+-------------+----------+---------------------+----------------------------------------------------------------+
| dst | src | duration | calldate | recordingfile |
+-----+-------------+----------+---------------------+----------------------------------------------------------------+
| 113 | 84991111111 | 140 | 2016-03-18 12:00:36 | external-113-84991111111-20160318-115933-1458291573.157155.wav |
| 104 | 89162222222 | 81 | 2016-03-18 12:01:33 | external-104-89162222222-20160318-120133-1458291693.157169.wav |
+-----+-------------+----------+---------------------+----------------------------------------------------------------+
2 rows in set (0.00 sec)
В вышеуказанном примере, в SQL запросе указано LENGTH( `src` ) >3. Столбец ‘src’ – показывает номер звонящего (source - источник). Это сделано для того, чтобы исключить внутренние звонки, так как у нас используется трехзначная нумерация. Тем самым, мы получаем в результате данные, с которыми затем можем работать. Например, отправить на почту в виде отчета. Ниже рассмотрена структура таблицы cdr в базе данных asteriskcdrdb:
Столбец
Пример значения
Описание
calldate
2016-03-18 12:00:36
Дата и время звонка
clid
"Oleg Ivanov" <84991111111>
В данное поле попадает полное CallerID (CLID, CID), которое состоит из имени и номера звонящего. Это доступно только для считывания.
src
84991111111
Номер звонящего в конструкции CallerID (CNUM). Это доступно только для считывания.
dst
113
Номер назначения для звонка. Это доступно только для считывания.
dcontext
CustomContext1
Контекст для обработки. Это доступно только для считывания.
channel
SIP/0002B2356854-a34bh3ef
Канал, через который поступил звонок
dstchannel
SIP/0004F6675969-97836bb0
Канал, через который ушел исходящий звонок
lastapp
Dial, Busy, Congestion
Приложение, которое последним отработало этот вызов перед попаданием в таблицу cdr
lastdata
SIP/0004F6675969,30,tT
Аргумент, который был передан приложению, которое отработало вызов последним (lastapp)
duration
75
Количество секунд от начала (отметка start) до окончания вызова (отметка end)
billsec
67
Количество секунд от ответа (отметка answer) до окончания вызова (отметка end). Данное значение всегда меньше значения duration, и отражает длительность самого разговора, что важно для подсчета стоимости.
disposition
ANSWERED, BUSY, NO ANSWER, FAILED
Результат звонка
amaflags
OMIT, BILLING, DOCUMENTATION, Unknown
Метка Automatic Message Accounting (AMA) – автоматический учет стоимости вызова.
accountcode
23232
Идентификатор аккаунта. Данное значение пустое по умолчанию, и определяется параметрами конкретного пользователя.
uniqueid
1458291693.157169
Уникальный идентификатор звонка
userfield
-
Пользовательское поле. Здесь можно передавать что угодно, добавляя данные в этот столбец при работе с вызовом внутри контекста обработки.
did
4996491913
DID (Direct Inward Dialing). На основании DID вызова на Asterisk осуществляется его маршрутизация (это значение приходит от провайдера).
recordingfile
external-113-84991111111-20160318-115933-1458291573.157155.wav
Имя файла, содержащего запись разговора. В данном имени можно проследить путь к файлу в файловой структуре сервера.
cnum
84991111111
Номер звонящего в структуре CallerID.
cnam
Oleg Ivanov
Имя звонящего в структуре CallerID.
Теперь, когда вы понимаете принцип формирования запросов к базе данных и ее структуру, вы можете без труда формировать собственные отчеты. Например, ежедневный отчет о количестве входящих звонков за текущий день на почту. Это реализуется средствами php скрипта и добавления расписания через cron. Поговорим об этом в следующей статье
Переменные среды (или окружения) используются для хранения общесистемных значений, которые могут использоваться любым пользователем и процессом в операционной системе. Мы уже рассказывали про то как установить переменные окружения в Linux, а теперь расскажем, как это сделать в MacOS.
Проверить текущие переменные среды
Есть два способа проверить текущие переменные среды в MacOS:
Показать список всех текущих переменных среды.
Показать конкретную переменную среды.
Список всех переменных среды
Используйте команду printenv для отображения списка текущих установленных переменных среды:
printenv
Примечание. Если вы хотите отобразить полный список переменных оболочки, используйте команду set.
Проверить конкретную переменную среды
Если вы хотите отобразить значение какой-либо конкретной переменной среды, используйте команду echo:
echo $[имя_переменной]
Например, чтобы проверить значение переменной PATH, в которой хранится список каталогов с исполняемыми файлами, используйте команду echo:
echo $PATH
Примечание. Всегда используйте префикс $ при указании имени переменной.
Установить временную переменную среды
Значение, которое вы присваиваете временной переменной среды, сохраняется только до тех пор, пока вы не закроете сеанс терминала. Это полезно для так переменных, которые нужно использовать только для текущего сеанса.
Назначить временную переменную среды с помощью команды export:
export [имя_переменной]=[значение_переменной]
Где:
[имя_переменной]: имя новой временной переменной среды, которую вы хотите установить.
[значение_переменной]: значение, которое вы хотите присвоить новой переменной.
Команда export также позволяет добавлять новые значения к существующим переменным:
export [имя_существующей_переменной]=[новое_значение_переменной]:$[имя_существующей_переменной]
Где:
[имя_существующей_переменной]: имя переменной среды, к которой вы хотите добавить новое значение.
[новое_значение_переменной]: значение, которое вы хотите добавить к существующей переменной.
Например, если вы хотите добавить собственный путь к папке в переменную PATH, используйте следующую команду:
export PATH=/Users/test/test_folder:$PATH
Установить постоянную переменную среды
В файл .bash_profile добавляются постоянные переменные среды:
Найдите путь к файлу .bash_profile, используя: ~/.bash-profile
Откройте файл .bash_profile в любом текстовом редакторе.
Прокрутите до конца файла
Используйте команду export, чтобы добавить новые переменные: export [имя_переменной]=[значение_переменной]
Сохраните все изменения, внесенные вами в файл
Запустите новый .bash_profile, перезапустив окно терминала, либо используя команду: source ~/.bash-profile
Удалить переменную среды
Используйте команду unset, чтобы удалить переменную среды:
unset [имя_переменной]