|
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
|