Portál AbcLinuxu, 6. května 2025 09:18

Dotaz: Samba nezamyka subory

17.6.2005 08:30 MarekD | skóre: 13
Samba nezamyka subory
Přečteno: 715×
Odpovědět | Admin
Neako mi nefunguje korektne praca so subormi na samba serveri. Ak so suborom pracuju win clienti, tak otvoreny subor je pre ostatnych zamknuty. Ale, ak sa do siete prihlasim s linuxovym clientom a otvorim konkretny subor cez smb protokol, tak nie je problem ho otvorit sucasne na viacerych linuxovych kilentoch sucasne a zapisovat don. Cize linuxovy klient mi nedokaze subor zamknut a je ho mozno viacnasobne otvorit na linuxovom cliente. Ak sa takyto subor pokusim zaroven otvorit vo win, tak pc ohlasi, ze subor je zamknuty. Skusal som tento problem na viacerich samba serveroch a na roznych linuxovych distribuciach. Pokusal som sa experimetovat s volbami oplocks a kernel oplocks, ale nepomohlo. Ak mate niekto riesenie na moj problem, prosim poradte. Mam vo firme asi 15 linuxovych klientov a az mi tento problem prepukne budem ich musiet nahradzat za win.

Potrebujem dosiahnut, aby ak niekto otvori neaky subor a pracuje s nim ( zapisuje don ) bol tento subor pre inych win a linux clientov zamknuty. Momentalne to funguje medzi sambou a win clientmi. Mam dojem, ze problem je v sposobe pripojenia zdielaneho disku na strane linux klienta. Pripojenie riesim priamo v /etc/fstab

//192.168.4.252/volume7 /volume07 smbfs auto,username=xxxx,password=xxxx,dmask=777,fmask=666 0 0

Ako server som testoval mandrake 9.2 samba 2.2.8 po ubgrade, ten isty problem som zaznamenal aj na gentoo64 samba 3.0.10. Clienti su rozny mandrake, knoppix, gentoo
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

17.6.2005 12:06 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Odpovědět | | Sbalit | Link | Blokovat | Admin
oplock je zalezitost cachovani na strane klienta. Se zamykanim souboru to nema prilis mnoho spolecneho.

Druha vec je, ze v POSIXu existuje povinne a doporucene zamykani. O zamknuti si musi pozadat aplikace, VFS se o to automaticky nestara.

Jinak to je implementovane ve windows jadre, kde soubor je zamknut pri jakemkoliv otevreni souboru (i readonly, coz dost stve).

Osobne nechapu duvod, proc by mel VFS soubory automaticky zamykat, kdyz pouze aplikace muze vedet, jestli ten zamek je nebo neni nutny.
17.6.2005 12:14 Duranik Marek
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Konkretne potrebujem zamikat subori ako *.xls a *.doc. Pouzivame openoffice. Z vasho listu som pochopil ze o zamknutie suboru by mala pozidat aplikacia. Neviete ako na to ?
17.6.2005 13:27 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Tady v google chachi jsem nasel tip.

Je-li promenna prostredi SAL_ENABLE_FILE_LOCKING (nachazi se i v soffice wrapperu zakomentovana) nastavena na hodnotu 1, bude soffice.bin provadet advisory locking. Ted jsem to zkousel a funguje to i pres sambu.

Seznam zamcenych souboru si na SMB serveru muzete overit prikazem smbstatus -v -B.
17.6.2005 13:34 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Prepacte ale neviem kde najdem "nachazi se i v soffice wrapperu zakomentovana". Napiste mi to prosim jednoduchsie(neaku cestu alebo subor).
17.6.2005 13:41 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Mam-li OOo nainstalovane v adresari /usr/local/OpenOffice.org1.1.4, pak soubor /usr/local/OpenOffice.org1.1.4/program/soffice je bashovy wrapper, ktery spousti binarku /usr/local/OpenOffice.org1.1.4/program/soffice.bin. A prave v tom wrapperu (ja to mam na radku 64 az 65) se nachazi zakomentovany kod, ktery prommenou SAL_ENABLE_FILE_LOCKING nastavuje.
17.6.2005 14:17 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
skusil som to odkometovat ale az dam smbsta.... tak ma takyto vypis: Obidva spojenia su RD-WR

Samba version 3.0.10

PID Username Group Machine

-------------------------------------------------------------------

23105 duranikm r30 192.168.4.14 (192.168.4.14)

23103 duranikm r30 192.168.6.10 (192.168.6.10)

Opened /var/cache/samba/connections.tdb

Service pid machine Connected at

-------------------------------------------------------

Volume03 23105 192.168.4.14 Fri Jun 17 15:04:07 2005

Volume03 23103 192.168.6.10 Fri Jun 17 15:03:49 2005

Locked files:

Pid DenyMode Access R/W Oplock Name

--------------------------------------------------------------

23105 DENY_NONE 0x3 RDWR NONE /volume03/pokus1000.xls Fri Jun 17 15:04:11 2005

23103 DENY_NONE 0x3 RDWR NONE /volume03/pokus1000.xls Fri Jun 17 15:03:52 2005
17.6.2005 14:56 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Tak to mate blbe nastaveny smb server. Nehral jste si parametry locking apod.? Veskerou konfiguraci serveru a klientu ohledne zamykani nechte defaultni. Mne to tak s verzi smbd 3.0.10 a jadrem 2.6.11.11 funguje.
17.6.2005 15:33 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
smb.conf mam defaultny, nastavil som len workgrub=xxxxx a zdielanie

[Volume03]

comment = Volume03

browseable = yes

writable = yes

path = /volume03

create mode = 0665

create mask = 0665

directory mode = 0775

s klientom linux gentoo sa hlasim cez fstab zapisom

//192.168.6.1/volume03 /volume10 smbfs auto,username=duranikm,password=atikk,dmask=0777,fmask=0666 0 0

na druhom klientovy mam len ineho uzivatela a heslo

aku distribuciu mate na servery, aku na klientovy. Ak mozete poslite zapis prihlasenia na server fstat alebo podobne
17.6.2005 17:55 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
neviem ako vam to funguje. nakompiloval som nove jadro kerne-2.6.11-gento-r11. dalej som zmazal konfiguraky s sambi 3.0.10 a natiahol tam novu sambu 3.0.14 + nove konfiguraky. no aj tak sa nic nezmenilo. subory mozem dalej veselo prepisovat. vychadza mi to uz len tak ze mam blbo tem zapis v fstab alebo neaka hodnota v jadre.
19.6.2005 22:36 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
23105 DENY_NONE 0x3 RDWR NONE /volume03/pokus1000.xls Fri Jun 17 15:04:11 2005

23103 DENY_NONE 0x3 RDWR NONE /volume03/pokus1000.xls Fri Jun 17 15:03:52 2005
Tohle neni normalni. smbd si udrzuje vlastni seznam zamku (kvuli oplocks apod.) a vam pise, ze pridelila zamek obema procesum. Odtrasujte si systemova volani aplikace (OOo), jestli pozadaji oba procesy o vytvoreni zamku. Ten druhy, by mel byt odmitnut.

Co se tyce distribuce, tak to by melo byt irelevantni, protoze jadro (tj. smb klient) i smbd (tj. server) jsou "vanilkovy" (nehlede na to, ze oba dva systemy maji s puvodni distribuci spolecnou snad jen glibc a gcc).
19.6.2005 22:48 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
"Odtrasujte si systemova volani aplikace (OOo)"

Neviem ako na to. Ako by ste hladal chybu. Skusal som uz aj novsi openoffice 2 . no problem je stale ten isty. subor nezamknuty. pokusal som sa pripajat z linuxoveho klienta aj cez smbmount ale nic sa nezmenilo. absolutne neviem co ma robit.
20.6.2005 11:50 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
strace -f soffice 2>/tmp/soffice.strace. Pak si v /tmp/soffice.strace najdete retezec obsahujici nazev vasecho pokusneho souboru. Funkce open() vrati deskriptor, OOo se pak pokousi zamknout soubor funkci fcntl64(). Pokud skonci chybou, zamknuti selhalo a OOo soubor znovuotevre jen pro cteni.
20.6.2005 13:57 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
strace -f soffice 2>/tmp/soffice.strace.

ak to napisem presne tak (plus cesta k soffoce) tak dostamem hlasenie

proces PID=8104 runs in 32 bit mode.

Segmentation fault

subor v tmp vznikne ale ostane prazny
20.6.2005 14:14 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
tu je vypis z smbstatus. 21215 viaze win klienta. ostate dva maju zly typ zamky. su to lin klienti cez smb protokol. Ak win otvoril subor pokus4000.xls dostal zamku DENY_WRITE. lin klienti aj napriek tomu ze maju otvoreny jeden subor pokus5000.xls maju zamku DENY_NONE

Locked files:

Pid DenyMode Access R/W Oplock Name

--------------------------------------------------------------

21172 DENY_NONE 0x3 RDWR NONE /volume03/pokus5000.xls Mon Jun 20 15:05:56 2005

18711 DENY_NONE 0x3 RDWR NONE /volume03/pokus5000.xls Mon Jun 20 14:40:07 2005

21215 DENY_WRITE 0x2019f RDWR NONE /volume03/pokus4000.xls Mon Jun 20 15:04:55 2005
20.6.2005 15:33 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
S tim ti uz nepomuzu. Nastesti jsem ochuzen o problemy s prechodem na 64b architekturu. Vypada to na vadny strace nebo ptrace() kod v jadre.

Na testovani misto OOo zkus tenhle programek. Jako parametr se mu zadava jmeno souboru, ktery ma zamknout:

#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>

extern int errno;

int main(int argc, char **argv) {

    int fd;
    struct flock lock;
    int i;
    
    if (argc < 2) {
        fprintf(stderr, "Chybi jmeno souboru, ktery mam zamknout\n");
        exit(1);
    }

    if (-1 == (fd=open(argv[1], O_RDWR))) {
        fprintf(stderr, "Nemohu otevrit soubor %s: %s\n", argv[1],
             strerror(errno)); 
        exit(2);
    }
   
    lock.l_type=F_WRLCK;
    lock.l_whence=SEEK_SET;
    lock.l_start=0;
    lock.l_len=0;
    if (-1==fcntl(fd, F_SETLK, &lock)) {
      fprintf(stderr, "Nemohu zamknout soubor pro zapis: %s\n",
          strerror(errno));
      close(fd);
      exit(3);
    } else {
      printf("Soubor jsem zamknul.\n");
    }
    
    printf("Pro pokracovani zmackni enter...");    
    getc(stdin);
    
    printf("\nZaviram soubor.\n");
    
    close(fd);
    return(0);
}


20.6.2005 15:46 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Zacnem to znova vsetko testovat na 32bit, klienta aj server
22.6.2005 14:39 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
vedel by som si predstavyt aj vas (zaplateny) dialkovy zasah. moje tel.:00421566670119 Duranikm Marek
21.6.2005 14:19 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Nemohli by ste podrobnejsie napisat:

Aku distribuciu linuxu pouzivate na danom serveri, jadro a sambu

Co je na klientovy

Vlozit do spravy pasaz smb.comf kde zdielate disk

a sposob ako sa pripajate z klienta na server (zapis)

aku verziu openoffice mate.

Mozno mi chyba neaka volba v kermeli ohladom zamykania
22.6.2005 12:15 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Server je postaveny ze SuSE-8.1, glibc je ze SuSE-9.1, jadro vanilla 2.6.12, vanilla samba-3.0.10, smb.conf:
[global]                                                                     
workgroup = PRIVAT                                                              
netbios name = ROUTER
unix charset = UTF8
display charset = UTF8
unix extensions = yes
encrypt passwords = yes
client plaintext auth = no
browseable = yes

[privat]                                                                     
path = /mnt/pub                                                     
comment = Data storage
read only = no
user = privat 
browseable = yes
create mask = 0770
force create mode = 0660
directory mask = 0770
force directory mode = 0770
Klient je SuSE-9.1, jadro vanila 2.6.12, vanilla samba-3.0.10, smb.conf:
[global]
        workgroup = PRIVAT
        os level = 2
        time server = yes
        unix charset = UTF8
        display charset = UTF8
        unix extensions = yes
        encrypt passwords = yes
        log level = 1
        syslog = 0
        printing = CUPS
        printcap name = CUPS
        socket options = SO_KEEPALIVE IPTOS_LOWDELAY TCP_NODELAY
        wins support = no
Klient pripojuje smb export pres automounter jako
routersmb       -fstype=smbfs,user,rw,username=privat,password=XXX,uid=502,gid=100,fmask=0770        ://router/privat
OOo-1.1.4

Jestli chcete, muzu vam mailem poslat configuracni soubory obou jader.
22.6.2005 12:32 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
No toto je zaujimave. vobec som nevedel ze je potrebne nastavit aj klienta smb.conf. mate tam pre mna zaujimave volby "unix extensions = yes" a nepoznal som ani ten sposob pripojenia zdielania. len mi nie je jase co je to "export pres automounter", ak je to mozne tak to vysvetlite. idem to ce vyskusat.
22.6.2005 13:11 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
V smb.conf si muzete nastavit deafultni Workgroupu a apod. Ja ho mam nastevny kvuli tomu, ze obcas pres smb ze stanice neco exportuju (to jsem uz neukazoval, protoze to neni podstatne).

Automounter je z casti userspace a z casti kernel space zalezitost, ktera vam umozni automaticky pripojovat a odpojovat FS (automount(8), autofs(5)) podle toho, jestli nejaky proces chce soubor z automountouvaneho adresare nebo neche.
22.6.2005 13:27 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
v gente som nasiel program "autofs". po instalacii sa objavil /etc/autofs/ a tu 3 subory.

neviem ako to konfigurovat, je to pre mna nove, ako to mate kofigurovane Vy
22.6.2005 12:38 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
este otazka, na tom kliente editujete smb.conf. je tam potrebne spustat aj demona alebo nie.
22.6.2005 13:12 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Neni.
22.6.2005 13:05 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
nerozumiem aj tomu zapisu
routersmb       -fstype=smbfs,user,rw,username=privat,password=XXX,uid=502,gid=100,fmask=0770        ://router/privat
co je routersmb a kde zapisujete miesto pripojenia
22.6.2005 13:16 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
To je zapis z konfigurace automounteru. routersmb je nazev adresare, do ktereho se automaticky pripojuje smb://router/privat. V zasade je to ekvivalntni prikazu mount -t smbfs -o user,rw,username=privat,password=XXX,uid=502,gid=100,fmask=0770 //router/privat routersmb
22.6.2005 14:16 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
No mam dojem ze som to spravil presna ako Vy. no nic nove sa neudialo. Ak mozet poslite configuraky jadra, smb.conf. Tu sambu som compiloval zo zdrojakov. co ak tam ma bit neaka volba. dalej som cital ze ten openoffice ma aj neaku sietovu instalaciu setup -n ale to plati asi len pre win. ako to je s uid gid ma tam byt hodnota zo strany servera ?
17.6.2005 13:35 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Jeste trochu upresneni (vynatek z fcntl(2)):
Mandatory locking
       (Non-POSIX.)   The  above record locks may be either advi-
       sory or mandatory, and are advisory by default.   To  make
       use  of mandatory locks, mandatory locking must be enabled
       (using the "-o mand" option to mount(8)) for the file sys-
       tem  containing  the  file to be locked and enabled on the
       file itself (by disabling group execute permission on  the
       file and enabling the set-GID permission bit).

       Advisory  locks  are  not  enforced  and  are  useful only
       between  cooperating  processes.   Mandatory   locks   are
       enforced for all processes.
20.6.2005 08:22 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tu je vypis ak subor otvoril prvy win klient. Druhy ho otvoril linux klient cez smb protokol.

Pid DenyMode Access R/W Oplock Name

--------------------------------------------------------------

17942 DENY_WRITE 0x2019f RDWR NONE /volume03/pokus2000.xls Mon Jun 20 09:14:31 2005

Samba dala dalsiemu subor uz len na citanie.

Ak subor otvory lin klient a potom este dalsi lin klinet, samab subor nezamkne.
20.6.2005 10:27 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkusil bych místo smbfs použít cifsfs
20.6.2005 10:40 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Vo fstab pouzivam zapis :

//192.168.4.252/volume7 /volume07 smbfs auto,username=xxxx,password=xxxx,dmask=777,fmask=666 0 0

Ak namiesto smbfs napisem cifs alebo cifsfs tak nedojde k spojeniu so sambou. Jadro klienta je nakompilovane s podporou cifs.
20.6.2005 16:52 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Na to lze odpovedet jen jednim zpusobem: RTFM
20.6.2005 18:01 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
asi sa mi podaril ten cifs. zamka je sice zase deny_none ale v opcloku sa objavilo exclusive
21.6.2005 07:45 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Takze podarilo sa mi primontovat disk pomocou cifs. Ale vela sa nezmenilo. Druh zamky sa nezmenil ostava stale deny_none. Nove je len to ze sa v casti oplock objavil zaznam exclusive. No ak sa pokusim subor otvorit znova tak to je umoznene a zanam zmizne. Dalej u cifs je potrebne mat nastavene uid gid zhodne na klientovy aj serveri. Takze ani s cifs som sa nikam nedostal.
21.6.2005 17:06 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Poprosil som o pomoc dve firmy (platena sluzba). Tieto po niekolko hodinovom prezerani mojich pocitacou usudili ze problem je na strane openoffice. Nedokaze vraj poziadat o zamknutie suboru. takze nieje mozne stymto programom pracovat na sieti. Mam potvrdene ze tento problem je aj v komercnej verzii suse (hoci som to sam neskusal). Mam obavy ze ak sa nestane neaky zazrak tak dojde v nasej firme k rychlej likvidacii linuxov (asi 15 klientov) a win predajcovia budu ma radost. Myslim ze na tento problem narazia aj ostatne podniky a nebudu moct vazne nasadit linux aj na klientov.
22.6.2005 11:57 petr_p
Rozbalit Rozbalit vše Re: Samba nezamyka subory
A zkouseli jste ten program, co jsem sem daval. Je to nejjednodussi advisory locking, co muze byt. Pochybuji, ze "je to chyba OOo", kdyz mne to jede.
23.11.2005 20:37 MarekD | skóre: 13
Rozbalit Rozbalit vše Re: Samba nezamyka subory
Odpovědět | | Sbalit | Link | Blokovat | Admin
Skusal som pripojit pod lin klienta (vycital som to v podobnej disk. http://www.abclinuxu.cz/forum/show/85207):

mount -t smbfs -o rw,username=tenky_klient,password=tenky_klient,fmask=0770,dmask=0770,uid=501,gid=501 //localhost/USERS /smb/share-Park

v kombinacii :

SAL_ENABLE_FILE_LOCKING=1

export SAL_ENABLE_FILE_LOCKING

A po tomto pripojeni mi zacalo korektne zamykanie medzi win a lin klientami (xls a doc). a subor otvoril lin-client a potom win-klient tak win ho mal na citanie a ked to bolo naopak tak tiez to bolo ok. uvidim ako sa to zachova ak tam vbehne dalsi lin-klient

zatial som to testoval medzi jednym win a lin klientom. zacnem to testovat plosne.
24.11.2005 12:01 Stanislav Motyčka | skóre: 9 | Revúca
Rozbalit Rozbalit vše Re: Samba nezamyka subory
tak gratulujem, ze Ti to riesenie pomohlo.

toho casu som si s tym lamal hlavu aj ja.

S pozdravom

tenky_klient (:-))
24.11.2005 12:06 Stanislav Motyčka | skóre: 9 | Revúca
Rozbalit Rozbalit vše Re: Samba nezamyka subory
este cosi->

mne to ide zatial bez problemov (v sieti su windowsaci a 3 tenki klienti)... tak snaad Ti to pojde.

takto to mam rozrobene uz nejaky ten mesiac, bez nutnosti nejakeho zasadneho zasahu.

S.M.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.