Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Схема данных, наборы Schema, объектные классы, атрибуты и другое => Тема начата: marawu от 07 Сентябрь 2016, 07:05:42
-
В openLDAP есть атрибут loginShell и там по умолчанию прописано /sbin/nologin. Мне нужно поменять его всем пользователям на /bin/bash и сделать так, чтобы в дальнейшем при создании юзера этот атрибут был уже прописан как надо. МНе нужно какую-то схему изменить?
-
Здравствуйте. Лёгкого пути сделать такое, насколько я знаю, нет. В клиенте LdapAdmin вроде бы была какая-то возможность массовой модификации, но насколько добротно это реализовано не знаю -- не пользовался.
Можно сделать в 3 этапа из командной строки:
1. Получить список записей из каталога, которые небходимо модифицировать и сохраниь его в файл:
ldapsearch -x -LLL -b 'dc=mycompany,dc=ru' '(loginShell=/sbin/nologin)' dn > users.ldif
В файле users.ldif будет список DN записей пользователей, что-то типа:
uid=ivanov,ou=People,dc=mycompany,dc=ru
uid=petrov,ou=People,dc=mycompany,dc=ru
uid=sidorov,ou=People,dc=mycompany,dc=ru
2. Для каждой из этих записей нужно добавить в файл сведения о модификации:
uid=ivanov,ou=People,dc=mycompany,dc=ru
changetype: modify
replace: loginShell
loginShell: /bin/bash
И так для каждой записи. Между записями должна оставаться пустая строка.
3. Изменить содержимое этих записей, применив сформированный LDIF модификации:
ldapmodify -Y EXTERNAL -H ldapi:/// -f ./users.ldif
Перед этим неплохо было бы сделать резервную копию каталога =).
Такие дела. Егор
-
Здравствуйте. Лёгкого пути сделать такое, насколько я знаю, нет. В клиенте LdapAdmin вроде бы была какая-то возможность массовой модификации, но насколько добротно это реализовано не знаю -- не пользовался.
Можно сделать в 3 этапа из командной строки:
1. Получить список записей из каталога, которые небходимо модифицировать и сохраниь его в файл:
ldapsearch -x -LLL -b 'dc=mycompany,dc=ru' '(loginShell=/sbin/nologin)' dn > users.ldif
В файле users.ldif будет список DN записей пользователей, что-то типа:
uid=ivanov,ou=People,dc=mycompany,dc=ru
uid=petrov,ou=People,dc=mycompany,dc=ru
uid=sidorov,ou=People,dc=mycompany,dc=ru
2. Для каждой из этих записей нужно добавить в файл сведения о модификации:
uid=ivanov,ou=People,dc=mycompany,dc=ru
changetype: modify
replace: loginShell
loginShell: /bin/bash
И так для каждой записи. Между записями должна оставаться пустая строка.
3. Изменить содержимое этих записей, применив сформированный LDIF модификации:
ldapmodify -Y EXTERNAL -H ldapi:/// -f ./users.ldif
Перед этим неплохо было бы сделать резервную копию каталога =).
Такие дела. Егор
Ок, а чтобы в дальнейшем при создании пользователей автоматом уже был этот атрибут в нужном виде? Правильно ли я понимаю, что это нужно будет модифицировать схему?
-
Модифицировать схему не нужно -- это точно =) . Если Вы собираетесь работать с LDAP, неплохо было бы иметь хотя бы минимальную базу, чтобы мы разговаривали на одном языке. Предлагаю почитать главы 2 (http://pro-ldap.ru/tr/zytrax/ch2/) и 3 (http://pro-ldap.ru/tr/zytrax/ch3/) учебника LFRS.
По существу вопроса: тут многое зависит от клиента, с помощью которого эти записи создаются. То есть, значения по умолчанию атрибутов на уровне каталога не задаются и должны явно указываться при создании записи, но многие графические клиенты позволяют задавать значения по умолчанию для тех или иных атрибутов для облегчения рутинной работы сисадмина. Посмотрите настройки своего клиента.
Егор