Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 samba 3.0.28   Alex Ivanov   23 Jan 2008 13:59:26 
 samba 3.0.28   Alex Ivanov   23 Jan 2008 14:11:29 
 Re: samba 3.0.28   mitrohin a.s.   24 Jan 2008 17:38:11 
Архивное /ru.unix.bsd/4473918843847.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional