Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Samba смена пароля win акаунтом  (Прочитано 26961 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« : 17-07-2008 11:44 » 

Samba поднята как PDC
WinXP в домен введена
доменный пользователь создан
Пароль ему задан
Вход в домен происходит без проблем. Пользователь получает права обычного пользователя.
Но сменит пароль Пользователь не может - получает сообщение "Отсутствует разрешение на смену пароля"
test1# pdbedit -P "minimum password age"
Цитата
account policy "minimum password age" description: Minimal password age, in seconds (default: 0 => allow immediate password change)
account policy "minimum password age" value is: 0
account policy "reset count minutes" description: Reset time after lockout in minutes (default: 30)
account policy "reset count minutes" value is: 30
account policy "user must logon to change password" description: Force Users tologon for password change (default: 0 => off, 2 => on)
account policy "user must logon to change password" value is: 0
account policy "password history" description: Length of Password History Entries (default: 0 => off)
account policy "password history" value is: 0
account policy "lockout duration" description: Lockout duration in minutes (default: 30, -1 => forever)
account policy "lockout duration" value is: 30
account policy "min password length" description: Minimal password length (default: 5)
account policy "min password length" value is: 5
account policy "maximum password age" description: Maximum password age, in seconds (default: -1 => never expire passwords)
account policy "maximum password age" value is: 4294967295
Код: (Text) samba config
        workgroup = TESTDOMAIN
        netbios name = TESTSERVER
        passdb backend = tdbsam
        passwd program = /usr/bin/passwd %u
        passwd chat debug = Yes
        unix password sync = Yes
        log level = 3
        log file = /var/log/samba/%m.log
 ...
        logon path =
        domain logons = Yes
        os level = 33
        preferred master = Yes
        domain master = Yes
passwd program  менялось и на smbpasswd

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 17-07-2008 11:47 » 

Samba version 3.0.28
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 17-07-2008 12:45 » 

есть такая утилитка srvtools
так вот...
все галки у пользователя стоят правильно
причем реагирует на изменение галок
но! пароль сменить не может даже админ...
вот сцука... моск кипит
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #3 : 17-07-2008 12:50 » 

может поможет?

http://rus-linux.net/MyLDP/HOWTO-ru/Samba-PDC-HOWTO/
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 17-07-2008 13:09 » 

McZim, не поможет Улыбаюсь есть более современное описание Жаль , где-то накосячили с привилегиями
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #5 : 17-07-2008 13:10 » 

Sla, с правами на хом папки все в порядке? в smbuser пользователи присутсвуют? хз что еще, то что ты написал должно хватать Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 17-07-2008 13:23 » 

как я понимаю, смена пароля в самбе происходит под правами рута на никсовом сервере,
и как бы не должно быть каких-то проблем
Как бы, как бы
но "гадська нимэцька тварюка" сопротивляется

________________
кипит мой разум возбужденный
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #7 : 17-07-2008 13:39 » 

как я понимаю, смена пароля в самбе происходит под правами рута на никсовом сервере

вроде как не обязательно.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 17-07-2008 14:23 » 

t34-85-60,  с тебя пиво!
Получилось!!!

unix password sync = no

потом разберемся....
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 17-07-2008 14:26 » 

McZim,
Цитата
unix password sync (G)
This boolean parameter controls whether Samba attempts to synchronize the UNIX password with the SMB password when the encrypted SMB password in the smbpasswd file is changed. If this is set to yes the program specified in the passwd programparameter is called AS ROOT - to allow the new UNIX password to be set without access to the old UNIX password (as the SMB password change code has no access to the old password cleartext, only the new).

Default: unix password sync = no

Это я про рута...
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
t-34-85-60
Гость
« Ответ #10 : 18-07-2008 06:32 » new

Установка контроллера домена на Samba (ОС FREEBSD)

При написании использовал куски из других статей. Копирайты стоят внизу.

      Возникла необходимость поднять домен на виртуальной машине с  freebsd. В принципе поднятие на виртуалке ничем не отличается от поднятия на реальном сервере, поэтому заострять внимание на этом не буду.
    Ставим как обычно из портов
 
# usr/ports/net/samba3/make
# usr/ports/net/samba3/make install


Перед началом компиляции самба выдаст меню, в котором нужно включить необходимые вам опции.
После инсталляции прописываем в /etc/rc.conf  следующую строку:
samba_enable=”YES”
затем прописываем в файле /usr/local/etc/smb.conf настройки самбы.

Вот мой конфиг:
Код:
 [global]
dns proxy = No
Ldap ssl = No
workgroup = TESTDOMAIN
netbios name = testserver
os level = 33
server string = TEST SERVER
domain master = yes
domain logons = yes
local master = yes
encrypt passwords = yes
smb passwords = yes
smb passwd file = /usr/local/etc/samba/smbpasswd
preferred master = yes
log level = 1
log file = /var/log/samba/workstations/%m.log
max log size = 50
# Скрипт добавления пользователя
add user script = /usr/local/etc/samba/add_user_script.sh "%u"
# Скрипт удаления пользователя
delete user script = /usr/sbin/pw userdel "%u" -r
# Скрипт переименованя пользователя
# (следующие две строки - на самом деле одна. невлезает ..)
rename user script =
/usr/local/etc/samba/rename_user_script.sh "%uold" "%unew"
# Скрипт перезапуска самбы (Вообще, в man smb.conf, предлагается
# ребутить или класть всю машину. Перебор, по моему... Хотя -
# у меня это не работает. Такчто - пофиг.)
shutdown script = /usr/local/etc/samba/shutdown_script.sh
# Скрипт добавления новой группы
add group script = /usr/sbin/pw groupadd "%g"
# Скрипт удаления группы
delete group script = /usr/sbin/pw groupdel "%g"
# Скрипт добавления пользователя в группу
# (следующие две строки - на самом деле одна. невлезает ..)
add user to group script = /usr/local/etc/samba/add_user_to_group_script.sh%g" "%u"
# Скрипт установки первичной группы для пользователя
set primary group script = /usr/sbin/pw usermod "%u" -g "%g"
# Скрипт удаления пользователя из группы
# (следующие две строки - на самом деле одна. невлезает ..)
delete user from group script =
/usr/local/etc/samba/delete_user_from_group_script.sh "%g" "%u"
# Скрпит для добавления аккаунта компьютера
 add machine script = /usr/local/etc/samba/add_machine_script.sh "%u"



[printers]
comment = All printers
path = /var/spool/samba
printable = yes
browsable = no

[homes]
comment = Home Directories
read only = no
browsable = no

[netlogon]
path = /usr/home/samba/netlogon
guest ok = Yes
browsable = no
Writable = no

[Profiles]
Comment – Roaming Profile Share
Path = /usr/home/samba/profiles
Read only = no
Browsable = no
Create mask = 0600
Directory mask = 0700

Небольшое замечание. Сначала в конфиге прописал опцию
unix password sync = yes
из-за этого юзеры в винде не могли менять пароль. Писало, что нет прав. Коллективный разум выяснил на английском форуме чо все проблемы из-за этой включённой опции

Дальше прописываем скрипты:

# /usr/local/etc/samba/add_user_script.sh

Код:
#!/bin/sh

# скрипт добавления пользователей
/usr/sbin/pw useradd "$1" -d /usr/home/samba/profiles/"$1" \
                -s /sbin/nologin -m -g nt_users -c "$1"
# отладка
echo "added user '$1' in `date +%Y-%m-%d` `date +%H:%M:%S`" >> /tmp/`basename $0`.log

# /usr/local/etc/samba/rename_user_script.sh

Код:
#!/bin/sh
#-xv

# Старое имя пользователя
old_username="$1"
# Новое имя пользователя
new_username="$2"

# Достаём строку из /etc/master.passwd - есть ли такой юзер, и какие у него данные.
user_data=`grep "^${old_username}:" /etc/master.passwd` > /dev/null 2>&1

# Достаём имя пользователя
user_from_passwd="`echo ${user_data} | awk -F ':' '{print $1}'`" > /dev/null 2>&1

# Проверяем существование пользователя
if [ ${user_from_passwd} = ${old_username} ] > /dev/null 2>&1
then
#       echo "Есть ссучий юзер!"
        # Пользователь есть. Достаём поля из его строки данных.
        user_uid="`echo ${user_data} | awk -F ':' '{print $3}'`"
        user_gid="`echo ${user_data} | awk -F ':' '{print $4}'`"
        user_login_class="`echo ${user_data} | awk -F ':' '{print $5}'`"
        user_geos="`echo ${user_data} | awk -F ':' '{print $8}'`"
        user_home_dir="`echo ${user_data} | awk -F ':' '{print $9}'`"
        #echo "Данные пользователя"
        #echo "UID = ${user_uid}"
        #echo "GID = ${user_gid}"
        #echo "LoginClass = ${user_login_class}"
        #echo "INFO = ${user_geos}"
        #echo "HOME = ${user_home_dir}"
        # Проверяем, нет ли нового с таким же именем
        new_from_passwd="`echo ${user_data} | \
                                awk -F ':' '{print $1}'`" > /dev/null 2>&1
        if [ ${user_from_passwd} = ${new_username} ] > /dev/null 2>&1
        then
                #echo "Уже есть cсучий юзер!!"
                exit 1;
        else
                # Удаляем старого
                pw userdel ${old_username}
                # Заводим нового
                pw useradd "${new_username}" -d "${user_home_dir}" \
                -s /sbin/nologin -L "${user_login_class}" -g "${user_gid}" \
                -u "${user_uid}" -c "${user_geos}"
                # выходим
                #echo "Успешно переименован ${old_username} --> ${new_username}"
        fi
else
        echo "Ноу cсучий юзер!!"
        exit 1;
fi
# /usr/local/etc/samba/shutdown_script.sh

Код:
#!/bin/sh

# Перезапукаем самбу (в бакгроунде - обязательно!)
/usr/local/etc/rc.d/samba restart &

# /usr/local/etc/samba/delete_user_from_group_script.sh

Код:
#!/bin/sh

list_current_users="`pw groupshow $1 | awk -F ':' '{print $4}'`"
echo "Текущие пользователи: $list_current_users" >> \
/tmp/delete_user_from_group_script.sh.log

new_list_users="`echo ${list_current_users} | \
                awk -F $2 '{print $1$2 }' | tr -s ',,' ','`"

echo "Новые пользователи: $new_list_users" >> \
/tmp/delete_user_from_group_script.sh.log
echo "" >> /tmp/delete_user_from_group_script.sh.log


pw groupmod $1 -M $new_list_users

# /usr/local/etc/samba/add_machine_script.sh

Код:
#!/bin/sh

# скрипт добавления машины
/usr/sbin/pw useradd "$1" -d /usr/home/samba/profiles/nt_workstations \
        -s /sbin/nologin -m \
        -g nt_workstations -c "computer_account"

# отладка
echo "added komp '$1' in `date +%Y-%m-%d` `date +%H:%M:%S`" >> /tmp/`basename $0`.log

# /usr/local/etc/samba/add_user_to_group_script.sh

Код:
#!/bin/sh

# скрипт добавления пользователя в группу
list_current_users="`pw groupshow $1 | awk -F ':' '{print $4}'`"
echo $list_current_users
pw groupmod $1 -M $list_current_users,$2
 
После того как скрипты написаны, делаем их исполняемыми при помощи chmod:
# cd /usr/local/etc/samba/
# chmod u+x имя_скрипта
проверяем стали ли исполняемыми:
# ls –l

стартуем самбу.
# /usr/local/etc/rc.d/samba start
Проверяем.
# ps -ax | grep smb
должно быть что-то типа:
1810  ??  Ss     0:06.16 /usr/local/sbin/nmbd -D -s /usr/local/etc/smb.conf
 1816  ??  Is     0:00.33 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
 1818  ??  I      0:00.00 /usr/local/sbin/smbd -D -s /usr/local/etc/smb.conf
 3652  p0  S+     0:00.04 /bin/csh -c ps -ax | grep smb

Следующий шаг – создание групп пользователей. Создаём 3 группы:
# pw groupadd nt_workstation
# pw groupadd nt_admins
# pw groupadd nt_users


сопоставляем созданные группы с windows-группами при помощи утилиты net:
•  Гости:
# net groupmap add rid=514 ntgroup="Domain Guests" unixgroup=nobody
•  Пользователи:
# net groupmap add rid=513 ntgroup="Domain Users" unixgroup=users
•  Windows станции:
# net groupmap add rid=515 ntgroup="Domain Computers" unixgroup=nt_workstations
•  Администраторы:
# net groupmap add rid=512 ntgroup="Domain Admins" unixgroup=nt_admins
Число после rid= - это числовой идентификатор основных Windows групп.

Создадим пользователя "test", который будет администратором домена (первичная группа - nt_admins)
# adduser test
# pw groupmod nt_admins -m test


Добавляем пользвоателя test в самбу:
# smbpasswd -a test

Проверяем, вошёл ли пользователь в группу “Domain Admins”
# net rpc group members "Domain Admins" -U test
TESTDOMAIN\test


По умолчанию у группы Domain Admins нет никаких прав кроме кроме назначать и удалять привелегии другим. Дадим группе Domain Admins все права
# net rpc rights grant "Domain Admins" SeMachineAccountPrivilege
SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege
SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege –U test

Вводим сервер в домен:
# net rpc join -U test
Joined domain TESTDOMAIN

Проверяем:
# net rpc testjoin
Join to 'TESTDOMAIN' is OK

test1# net rpc info -U test
Password:
Domain Name: TESTDOMAIN
Domain SID: S-1-5-21-2743657024-3976055885-1262507069
Sequence number: 1216150908
Num users: 1
Num domain groups: 4
Num local groups: 0

 
Ввод в домен с Windows-машины:
1.   ПКМ на иконке "Мой компьютер", выбрать пункт "Свойства"
2.   Перейти на вкладку "Имя компьютера"
3.   Нажать кнопку "Изменить"
4.   Выбрать пункт "Является членом домена:"
5.   Ввести название домена (у меня TESTDOMAIN), кнопка "ОК"
6.   Ввести имя и пароль пользователя, который имеет право на добавление ПК в домен (в примере test)
7.   Перезагрузить Улыбаюсь
8.   В окне ввода имени пароля, нажать кнопку "Параметры" и выбрать домен (в примере TESTDOMAIN)
Добавляем в домен пользовательские машины:
# net rpc user add comp1$ -U test
# net rpc user add comp2$ -U test
# net rpc user add comp3$ -U test

Затем добавляем юзеров:
# net rpc user add user1 -U test
# net rpc user add user2 -U test
# net rpc user add user3 -U test


Следует учесть, что при вводе машины в домен следует добавлять в конце её имени знак $. При вводе пользователя ничего добавлять не надо.

Не забудьте включить добавленных пользователей в группу nt_users:
# pw groupmod nt_users -m user1
# net rpc group addmem "Domain Users" user3 -U test

 
Список комманд для управления доменом
Ниже собраны комманды используемые для управления доменом и получения о нем информации. Чтобы не вводить новые названия, оставил их из примера.

Управление
1.   Добавить/удалить сопоставление:
# net groupmap {add,delete} ntgroup="Domain Users " unixgroup=nt_users
2.   Добавить/удалить пользователя:
# net rpc user {add,delete} user1 -U test
3.   Добавить/удалить компьютер:
# net rpc user {add,delete} comp1$ -U test
4.   Добавить/убрать пользователя в доп. группу:
# net rpc group {addmem,delmem} "Domain Users" user1 -U test
5.   Сменить основную группу пользователя:
# usermod -g nt_users user3
6.   Установить пароль для пользователя:
# smbpasswd user1
7.   Ввести сервер в домен:
# net rpc join –U test
8.   Проверить на вход в домен:
# net rpc testjoin
9.   Добавить права определенной группе:
# net rpc rights grant "Domain Admins" SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege -U test
Информация
1.   Список сопоставлений:
# net groupmap list
2.   Список всех пользователей:
# net rpc user -U test
3.   Список всех групп:
# net rpc group -U test
4.   Список пользователей принадлежащих определенной группе:
# net rpc group members "Domain Users" -U test
5.   Список компьютеров (группа "Domain Computers"):
# net rpc group members "Domain Computers" –U test
6.   Группы, которым принадлежит определенный пользователь:
# net rpc user info user3 -U test
7.   Общая информация о домене:
   # net rpc info -U test
При написании использовал следующие статьи:
http://www.samba.org.ua/articles/?section=1&articleid=113&oc=1
http://www.lissyara.su/?id=1167 

Т.к. другие службы поднимать не нужно было, то я их не описывал. Но всё это есть по приведённым ссылкам

« Последнее редактирование: 18-07-2008 08:39 от t-34-85-60 » Записан
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 18-07-2008 08:16 » 

t-34-85-60, а где можно посмотреть информацию про rid?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 18-07-2008 12:23 » 

весь флуд удалил, нечего ему болтаться.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
t-34-85-60
Гость
« Ответ #13 : 18-07-2008 12:26 » 

нашёл по ридам:
Well-Known Entity RID
  Domain Administrator      500
  Domain Guest              501
  Domain KRBTGT            502
  Domain Admins             512
  Domain Users                 513
  Domain Guests               514
  Domain Computers             515
  Domain Controllers        516
  Domain Certificate Admins  517
  Domain Schema Admins     518
  Domain Enterprise Admins   519
  Domain Policy Admins     520
  Builtin Admins          544
  Builtin users            545
  Builtin Guests  546
  Builtin Power Users      547
  Builtin Account Operators  548
  Builtin System Operators      549
  Builtin Print Operators       550
  Builtin Backup Operators   551
  Builtin Replicator   552
  Builtin RAS Servers       553
« Последнее редактирование: 18-07-2008 12:33 от t-34-85-60 » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines