|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex Ivanov 2:5020/400 23 Jan 2008 13:59:26 To : All Subject : samba 3.0.28 --------------------------------------------------------------------------------
Hi All.
Hаткнулся на такую траблу.
Есть самосборная самба 3.0.28 + патчи из портов, passwd backend - tdbsam.
При попытке сделать экспорт tdb в smbpasswd у многих пользователей вылезала
такая ошибка:
xxx@smb$ pdbedit -e smbpasswd:/home/xxx/samba3/backup_tlb/s0-1.smb s0-1$
build_sam_pass: Failing attempt to store user with non-uid based user RID.
Importing account for s0-1$...failed
Соответственно экспорт не получаетсо.
Гуглевание ничего конкретного не дало.
Почесав одно место, родил такой грубый хак (сильно токо не бейте):
- --- passdb/pdb_smbpasswd.c Wed Jan 23 10:36:43 2008
+++ passdb/pdb_smbpasswd.c.orig Thu Nov 15 06:15:04 2007
@@ -1212,7 +1212,7 @@
}
smb_pw->smb_userid=passwd->pw_uid;
TALLOC_FREE(passwd);
- } else if (true) {
+ } else if (algorithmic_pdb_rid_is_user(rid)) {
smb_pw->smb_userid=algorithmic_pdb_user_rid_to_uid(rid);
} else {
DEBUG(0,("build_sam_pass: Failing attempt to store user with non-uid
based
user RID. \n"));
Все сразу экспортнуло.
Соответственно возникли вопросы к компетентным сабмоводам:
Что собственно проверяет функция algorithmic_pdb_rid_is_user? Я что-то нихрена
не понял.
Функция собственно вот:
BOOL algorithmic_pdb_rid_is_user(uint32 rid)
{
if ( rid_is_well_known(rid) ) {
/*
* The only well known user RIDs are DOMAIN_USER_RID_ADMIN
* and DOMAIN_USER_RID_GUEST.
*/
if(rid == DOMAIN_USER_RID_ADMIN || rid == DOMAIN_USER_RID_GUEST)
return True;
} else if((rid & RID_TYPE_MASK) == USER_RID_TYPE) {
return True;
}
return False;
}
Т.е. получаеццо (т.к. RID_TYPE_MASK=1 и USER_RID_TYPE=0) что если юзер не
админ, и не гость - проверяем четность RID??? O_o
Или я что-то напутал...
В общем вопросы такие, может кто подскажет:
1. Что собственно проверяет algorithmic_pdb_rid_is_user ?
2. Имеет смысл пересобирать smbd и nmbd с этим хаком, или таки попытаться
вылечить algorithmic_pdb_rid_is_user? как я понял, эта функция один хрен
больше нигде не используется
3. Может ли это иметь отношение к другим проблемам самбы, например
невозможность смены пароля некоторым юзерам? Там вроде тоже на RID ругаеццо...
--- ifmail v.2.15dev5.4
* Origin: FidoNet Online - http://www.fido-online.com (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/4473918843847.html, оценка из 5, голосов 10
|