Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
Доброе утро всем!

Можно ли заблокировать всех пользователей портала сразу, кроме основных ключевых пользователей (таких как orcladmin, portal, ias_admin, portal_admin)

Портал на базе Oracle Application Server Portal 10g
26 сен 08, 06:55    [6230801]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
Доброе утро!

А какие там еще есть технические пользователи кроме тех, что вы назвали? Или вы про "всех остальных юзеров" ?
26 сен 08, 06:56    [6230804]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
Да я про всех пользователей. Портал закрывается.
26 сен 08, 06:58    [6230805]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
Bulk operation'ом заменить всем статус...

Создать ldif с апдейтом статуса и прогнать. Прогонять можно через ldapmodify или можно через веб, там есть кнопка bulk operation.
26 сен 08, 07:13    [6230813]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
Через веб не получится, слишком болье количество пользователей.
А можно ли применить Bukl оператор сразу ко всем?? да еще и исключая некоторых при этом...
и синтаксис таконго оператора можешь написать, конкретно по этому вопросу
26 сен 08, 08:58    [6230940]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
автор
Через веб не получится, слишком болье количество пользователей.


Я не предлогал ходить и каждому галочку ставить...

Пользователи хранятся в OID - это лдап каталог. Выгружаем их оттуда через любой лдап клиент в текст файл. Удаляем оттуда вручную те 5-10 учеток которые мы не хотим блокировать. Используя bash+awk+etc создаем ldif файл, где каждому пользователю апдейтим статус на заблокированный.
Запускаем полученый файл:
1. через ldapmodify
2. через кнопочку Buls Operation в веб интерфейсе...

поищу сейчас примеры...
26 сен 08, 09:22    [6231035]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
Вот пример лдиф файла который нужно скарливать в bulk operation
В этом примере юзерам изменяется пароль.

dn: cn=sergey,cn=users,dc=domain,dc=com
changetype: modify
replace: userpassword
userpassword:: ljHxc7glfby7gq4o78gfaouigfasldf

dn: cn=drugoi_user,cn=users,dc=domain,dc=com
changetype: modify
replace: userpassword
userpassword:: ljHxc7glfby7gq4o78gfaouigfasldf

P.S. просто нет портала под рукой, не могу готовый скрипт дать :(
26 сен 08, 09:37    [6231106]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
Спасибо.
Я поняла что ты имеешь в виду.
Осталось найти синтаксис строки, которая блокирует учетку
26 сен 08, 11:59    [6231966]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
Ой еще вопрос )
Это как -
big bug
Используя bash+awk+etc создаем ldif файл, где каждому пользователю апдейтим статус на заблокированный.

?
26 сен 08, 12:03    [6232002]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
Ну, смотри:
После выгрузки списка пользователей(я это делал через утилиту ldapsearch, как то _примерно_ так:
ldapsearch -h localhost -p 389 -D cn=orcladmin -b "cn=Users,dc=domain,dc=com" -x | grep "cn=users,dc=domain,dc=com" > user.ldif

),
мы получим текстовый файл
dn: cn=sergey,cn=users,dc=domain,dc=com
dn: cn=user_user,cn=users,dc=domain,dc=com
где каждая строчка, соответствует одному пользователю.
Это получилось?

Далее нужно привести это к виду как я выше писал. Можно это сделать например так :(*nix, как на win я не знаю)
#!/bin/sh
cat ./user.ldif | while read line
do
echo $line >> UserList.txt
echo "changetype: modify" >> UserList.txt
echo "replace: userpassword" >> UserList.txt
echo "userpassword:: ljHxc7glfby7gq4o78gfaouigfasldf" >> UserList.txt
echo  >> UserList.txt
done

В этом примере, меняется пароль... Не под рукой портала, непомню как там хранится статус учетки.
26 сен 08, 12:22    [6232137]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
не могу никак подобрать фильтр для оператора ldapsearch, чтобы выташщить тока dn пользователя:
dn: cn=user1,dc=domain,dc=com

dn: cn=user2,dc=domain,dc=com

вытаскиваются со всеми имеющимися атрибутами тока.
Кто может подсказать? =)



to big bug

 ldapsearch -h localhost -p 389 -D cn=orcladmin -b "cn=Users,dc=domain,dc=com" -x | grep "cn=users,dc=domain,dc=com" > user.ldif 

так не получается ((
29 сен 08, 11:16    [6238884]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
ldapsearch -h localhost -p 389 -D cn=orcladmin -b "cn=Users,dc=domain,dc=com" -x

Только что проверил. Работает.
Red Hat Enterprise Linux AS release 3 (Taroon Update 4), Oracle Portal version : 10.1.2.0.2

Только запускать нужно ldapsearch который от ОС (/usr/bin/), с оракловым ldapsearch($OH/bin/) у меня не получилось, они немного разные , наверное для ораклового нужны какие-то другие ключи...
29 сен 08, 12:31    [6239472]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
аха, работает...осталось тока запихнуть в файл)
29 сен 08, 14:09    [6240232]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
Собственно
> user.ldif 
запихнет весь вывод в файл.

А вот это:
grep "cn=users,dc=domain,dc=com"

Отрежет, всякие лишние записи. Хотя у вас их может и так нет. У меня это тестовый портал, там чего ток нет ...
29 сен 08, 14:15    [6240268]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
все с этим решила.
Спасибо.

Нашла какой атрибут отвечает за блокироовку, на доно порпобовала
changetype: modify
replace: orclIsEnable
orclIsEnable: DISABLED

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

А есть пользоватлели, которые вообще не имею такой атрибут, тьогда же наверное понадобится
другой варинт??
add:attribute
attribute:orclIsEnable
orclIsEnable: DISABLED
 
29 сен 08, 14:21    [6240315]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
Хм... Странно. У меня у всех есть этот атрибут. У меня портал вместе в OCS... Если standalone может тогда, этого атрибута может не быть... Но, в таком случае его добавлять наверное нельзя. Нужно разбиратся почему его нет...

вот кстати, из доки, про то-же:

http://68.142.116.68/docs/cd/B25553_01/collab.1012/b25490/ch_users_groups.htm
Disabling Users in Bulk

You can create an LDIF file and use it to disable user accounts in bulk. Perform the following steps to bulk disable users:

1.

Create an LDIF file to disable users. Create one entry for each user to be disabled. Separate each entry with one blank line. Use the following format:

dn: cn=test.user,cn=users,dc=us,dc=oracle,dc=com
changetype: modify
replace: orclisenabled
orclisenabled: DISABLED

dn: cn=test2.user,cn=users,dc=us,dc=oracle,dc=com
changetype: modify
replace: orclisenabled
orclisenabled: DISABLED


This file will disable the users 'test user' and 'test2 user'.
2.

Use the ldapmodify command, referencing your LDIF file, to disable the users. Use the following syntax:

ldapmodify -h <hostname> -p <port> -D cn=orcladmin -w <password> -v -f <path to and name of file>

29 сен 08, 14:40    [6240462]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
у нас портал бел OCS.
На одном пользователе, у которго данного атрибта не было.
Я его создала и все получилось. И заблокировать и разблокировать обратно.

Я думаю, надо вытаскивать отдельно тех у которых есть данный атрибут и у которых нет.

Другой вопрос, что делать с юзерами с русскими лдогинами..ldapsearch что-то не хотит их в должном виде вытаскивать...

А также, не поняла, каким образом можно впихнуть после каждой надписи dn:... эти 2 строчки для замены атрибута
30 сен 08, 09:07    [6243498]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
big bug
Member

Откуда:
Сообщений: 110
Nataly.S
Другой вопрос, что делать с юзерами с русскими лдогинами..


Ух ты! А так бывает? Круто!! :) . Мне и в голову не приходило даже проверить... :)


Nataly.S
А также, не поняла, каким образом можно впихнуть после каждой надписи dn:... эти 2 строчки для замены атрибута


Ну, скриптиком же, как я выше писал...

#!/bin/sh
cat ./user.ldif | while read line // читаем построчно фалик в цикле, пременной line присваиваем значение каждой строчки
do
echo $line >> UserList.txt // Записываем line переменную (т.е. саму строку) во второй файлик
echo "changetype: modify" >> UserList.txt // Пишем во второй файлик что-то еще, что хотим
echo "replace: userpassword" >> UserList.txt // Пишем во второй файлик что-то еще, что хотим
echo "userpassword:: ljHxc7glfby7gq4o78gfaouigfasldf" >> UserList.txt // Пишем во второй файлик что-то еще, что хотим
echo  >> UserList.txt // Пишем во второй файлик что-то еще, что хотим (в данном случае просто пустую строку)
done // Завершение цикла. 

user.ldif содержит в себе надписи dn:... по одной на строку...
30 сен 08, 09:22    [6243568]     Ответить | Цитировать Сообщить модератору
 Re: Заблокировать всех пользователей (Oracle AS Portal 10g)  [new]
Nataly.S
Member

Откуда:
Сообщений: 242
ну вот например =)
dn:: Y2490NvV2ugLGNuPXVzZXJzLGRjPXY0OTAsZGM9Y29t
cn:: 0NvV2uHQ3d
sn:: 0NvV2uHQ3d
uid:: 0NvV2uHQ3d

блин, а не знаешь фильтр, чтоб не в один, а в несколько файлов записать всех юзеров?
не может он сразу в один - пишет
ldap_search: Sizelimit exceeded
30 сен 08, 11:30    [6244296]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить