Gå til innhold

Problemer med å opprette kataloger på samba share


Frodre

Anbefalte innlegg

Jeg er en Linux-nybegynner og driver og setter opp en Ubuntu server som erstatning for en Windows home server som tok kvelden. Endel knoting, men stort sett har det gått greit. Men nå har fått et problem som jeg ikke klarer å google meg frem til noe løsning på.

 

Jeg driver å setter opp Sick-Beard, og har et problem med at postprosesseringsskriptet feiler på grunn av at det ikke har tillatelser til å opprette kataloger. Dette er under et Samba-share som heter tv-shows. På grunn av at jeg bruker Greyhole så må alt gå via dette Samba-sharet som mounta lokalt på serveren.

 

Jeg klarer ikke å bli klok på hva som er problemet her. Tilgangen til Samba-sharene fungerer fint fra Windows-maskinene mine, og det er ikke noe problem å opprette en katalog via Windows. Men det er tydeligvis noe med rettigheter i Linux som jeg ikke har skjønt. Hvordan må jeg sette opp ting for å klare at Sick-Beard skriptet klarer å opprette en katalog på et lokalt mounta Samba-share?

 

Samba-sharet er konfiguert som følger:

 

 

[tv-shows]

path = /shares/TV-shows

public = yes

writable = yes

create mask = 0777

directory mask = 0777

force user = nobody

force group = nogroup

dfree command = /usr/bin/greyhole-dfree

vfs objects = greyhole

Lenke til kommentar
Videoannonse
Annonse

Den største forskjellen mellom et lokalt script som aksesserer et share vs. en ekstern Win-maskin, er at Windows-maskinen logger på med et brukernavn som (nesten garantert) ikke finnes på Linux-maskinen, og dermed mappes til nobody via Bad User-mappingen i Samba, mens Linux-scriptet faktisk kjører som en gyldig bruker.

 

Edit: Ser at du har "force user", så da er det den som mapper til nobody (ikke "Bad User"), men det skjer først etter autentisering.

 

Hvilken bruker eier "/shares/TV Shows", og hva er rettighetene på selve katalogen?

Endret av conundrum
Lenke til kommentar

Så vidt jeg har forstått greyhole, har du ikke direkte tilgang til katalogen filene ligger i, de er bare tilgjengelige gjennom greyhole. Greyhole er en semi-raid-løsning som sprer filer til ulike disker avhengig av om de skal ha nredundans eller ikke, men presenterer filene for brukeren gjennom en samba share.

 

Om det jeg sier over stemmer, tror jeg du må montere sambasharen lokalt filsystemet til filserveren før du får tilgang. Du kan i tilfelle bruke f.eks. cifs-mount.

Lenke til kommentar

Da vet jeg sannelig ikke, men jeg må innrømme at jeg ikke vet mye om bruk av vfs-moduler (som Greyhole) i Samba.

 

Hva med å sjekke loggfilen til samba, evt. kjøre smbd i debug-modus ("smbd -i -d 10" eller deromkring) og se hva som skjer når Sick-Beard prøver å lage en katalog?

Endret av conundrum
Lenke til kommentar

Så vidt jeg har forstått greyhole, har du ikke direkte tilgang til katalogen filene ligger i, de er bare tilgjengelige gjennom greyhole. Greyhole er en semi-raid-løsning som sprer filer til ulike disker avhengig av om de skal ha nredundans eller ikke, men presenterer filene for brukeren gjennom en samba share.

 

Om det jeg sier over stemmer, tror jeg du må montere sambasharen lokalt filsystemet til filserveren før du får tilgang. Du kan i tilfelle bruke f.eks. cifs-mount.

 

Det er nettopp dette jeg har gjort. Problemet er at hverken jeg eller Sick-Beard skriptet får opprettet kataloger der. Det vil si jeg får selvsagt opprette kataloger hvis jeg kjører sudo mkdir, mens hvis jeg går direkte på /shares/tv-shows fungerer det med bare mkdir.

Lenke til kommentar

Det høres ut som om du forsøker å skrive rett til mappene. Som sagt (også veldig mange ganger i greyhole-dokumentasjonen): Det skal du ikke gjøre. Sjekk denne linken.

 

Du skal aldri gjøre noe som helst direkte med filene som greyhole tar seg av, du skal gå KUN gjennom samba.

 

red: Usikker på om den fremgangsmåten er den beste,m jeg stoler ikke på folk som lager dokukmentasjon og unngår å nevne at de kun fungerer på en type distribusjoner (Debian-baserte i dette tilfellet). Men hovedgreien er uansett riktig: Du må montere samba-sharen lokalt.

Endret av NgZ
Lenke til kommentar

Det er nettopp dette jeg har gjort. Problemet er at hverken jeg eller Sick-Beard skriptet får opprettet kataloger der. Det vil si jeg får selvsagt opprette kataloger hvis jeg kjører sudo mkdir, mens hvis jeg går direkte på /shares/tv-shows fungerer det med bare mkdir.

Jeg har muligens misforstått noe. Er "/shares/tv-hows" katalogen som deles ut, eller mount point for samba-sharet?

 

Det jeg mente å spørre om isted, var hvilke rettigheter som er satt på katalogen som er mount point, og hvem som eier den.

Lenke til kommentar

Det høres ut som om du forsøker å skrive rett til mappene. Som sagt (også veldig mange ganger i greyhole-dokumentasjonen): Det skal du ikke gjøre. Sjekk denne linken.

 

Du skal aldri gjøre noe som helst direkte med filene som greyhole tar seg av, du skal gå KUN gjennom samba.

 

Nei, jeg skriver ikke direkte til mappene. Jeg har fått satt opp Greyhole fint og det fungerer som det skal. Den eneste grunnen til at jeg nevnte Greyhole er nettop fordi alt må gjøres gjennom Samba-sharene. Og der blir det noe rart med rettighetene som gjør at jeg ikke får opprettet kataloger lokalt uten root-rettigheter,

Lenke til kommentar

red: Den var til conundrum:

Du skal IKKE styre med de "ekte" mountpointene og underkatalogene når man bruker greyhole. Greyhole skal ta seg av alt, og man skal kunne styre og herje med filer og mapper gjennom greyhole (altså samba).

Endret av NgZ
Lenke til kommentar

Du skal IKKE styre med de "ekte" mountpointene og underkatalogene når man bruker greyhole.

Strengt tatt er det vel akkurat det man skal. :) Altså, lage en katalog som skal fungere som mount point og koble det opp mot samba-sharet, og ikke prøve å lage filer i katalogen som det refereres til i samba-konfigurasjonen (/shares/TV-shows i dette tilfellet).

 

Så spørsmålet til Frodre blir da: Hvilken katalog har du brukt til å koble opp samba-sharet?

Lenke til kommentar

Strengt tatt er det vel akkurat det man skal. :) Altså, lage en katalog som skal fungere som mount point og koble det opp mot samba-sharet, og ikke prøve å lage filer i katalogen som det refereres til i samba-konfigurasjonen (/shares/TV-shows i dette tilfellet).

 

Så spørsmålet til Frodre blir da: Hvilken katalog har du brukt til å koble opp samba-sharet?

/shares/TV-shows er selvfølgelig det "ekte" mmountpointet. Det er jo der diskene er montert. :p

 

Men ja, spørsmålet er hvordan samba-sharen er montert lokalt.

 

Hvilken torrentklient bruker du, forresten? Om den kjører lokalt og ikke via samba-share-mounten kan den ha sneket seg unna force user-settingen til samba og laget krøll. Du burde jo i tilfelle ha merket det på Windows og, har du sjekket at du har tilgang til å opprette kataloger og filer på akkurat samme sted som der greybeard feiler? Legg gjerne ut feilmeldingen fra Sick-Beard.

 

Kjøres forresten Sick-Beard som din bruker? Om, konfigurasjonsscriptet kjøres som rot, kan det hende det byr på problemer. Jeg husker ikke med cifs-mount i farten, men jeg vet at sshfs må mountes med en egen option for å tillate tilgang til andre brukere. (-o allow others elns.)

 

Du må i hvert fall poste feilmeldingen fra Sick-Beard og kommandolinjen du bruker for å mounte samba-sharen.

 

Det kan hende du har glemt å sette uid=user_name,gid=users user_name skal være lik brukernavnet ditt når jeg tenker meg om, siden du ikke får tilgang, men root får. Hjelper ikke om mountpointet i utgangspunktet har 777-rettigheter når du mounter en samba share alltid, fordi samba er "smart" og kan bruke rettighetene på den underliggende mappen. (altså /shares/TV-shows, som sannsynligvis er eid av root.) uid=user_name og gid=users overstyrer overstyringen til samba så du kan bli eier samba-share-mountpointet igjen. :p

Endret av NgZ
Lenke til kommentar

Du skal IKKE styre med de "ekte" mountpointene og underkatalogene når man bruker greyhole.

Strengt tatt er det vel akkurat det man skal. :) Altså, lage en katalog som skal fungere som mount point og koble det opp mot samba-sharet, og ikke prøve å lage filer i katalogen som det refereres til i samba-konfigurasjonen (/shares/TV-shows i dette tilfellet).

 

Så spørsmålet til Frodre blir da: Hvilken katalog har du brukt til å koble opp samba-sharet?

 

Samba-sharene er mappet opp under /mnt/samba. Altså /mnt/samba/tv-shows i dette tilfelle. Der er rettighetene drwxr-xr-x med root som eier. Jeg har prøvd å kjøre chmod og chmod på mount me -R og det endrer rettigeheter og eier på /mnt og /mnt/samba, men ikke på noen av underkatalogene.

 

Kan problemet her ligge i hvordan sharene blir mounta opp? Jeg fulgte en oppskrift fra Greyhole sidene, https://github.com/gboudreau/Greyhole/wiki/MountSharesLocally og Jeg kjører et skript som heter mount_shares_locally for å gjøre dette. Linjen for selve mountinga er:

 

/sbin/mount.cifs "//127.0.0.1/$d" "$d" -o sec=none credentials=/home/${username}/.smb_credentials,uid=${uid},gid=${gid},file_mode=0660,dir_mode=0770,nobrl,hard,_netdev,iocharset=utf8,noserverino

 

Jeg måtte gjøre en liten endring i forhold til originalskriptet. Opprinnelig fikk jeg bare feilmeldinger når jeg kjørte skriptet og googlet meg frem til at en løsning var å sette inn sec=none.

Lenke til kommentar

Strengt tatt er det vel akkurat det man skal. :) Altså, lage en katalog som skal fungere som mount point og koble det opp mot samba-sharet, og ikke prøve å lage filer i katalogen som det refereres til i samba-konfigurasjonen (/shares/TV-shows i dette tilfellet).

 

Så spørsmålet til Frodre blir da: Hvilken katalog har du brukt til å koble opp samba-sharet?

/shares/TV-shows er selvfølgelig det "ekte" mmountpointet. Det er jo der diskene er montert.

 

Men ja, spørsmålet er hvordan samba-sharen er montert lokalt.

 

Hvilken torrentklient bruker du, forresten? Om den kjører lokalt og ikke via samba-share-mounten kan den ha sneket seg unna force user-settingen til samba og laget krøll. Du burde jo i tilfelle ha merket det på Windows og, har du sjekket at du har tilgang til å opprette kataloger og filer på akkurat samme sted som der greybeard feiler? Legg gjerne ut feilmeldingen fra Sick-Beard.

 

Kjøres forresten Sick-Beard som din bruker? Om, konfigurasjonsscriptet kjøres som rot, kan det hende det byr på problemer. Jeg husker ikke med cifs-mount i farten, men jeg vet at sshfs må mountes med en egen option for å tillate tilgang til andre brukere. (-o allow others elns.)

 

 

Jeg kjører Sabnzbd+ som usenet-klient. Den kjører og lagrer lokalt, men postprosessering-skriptet til Sick-Beard flytter filene over til Samba-sharet. Noe som går helt greit så lenge katalogene finner fra før. Men hvis det mangler en katalog så feiler skriptet.

 

Feilemeldingen gir ikke så veldig mye informasjon kun;

 

Unable to create the episode's destination folder: /mnt/samba/tv-shows/Harry's Law/Season 02

 

Ingen problemer med å opprette kataloger på akkurat samme sted i Windoes der Sick-Bears feiler. Sick-Beard kjører som min bruker.

Lenke til kommentar

Kan problemet her ligge i hvordan sharene blir mounta opp? Jeg fulgte en oppskrift fra Greyhole sidene, https://github.com/gboudreau/Greyhole/wiki/MountSharesLocally og Jeg kjører et skript som heter mount_shares_locally for å gjøre dette. Linjen for selve mountinga er:

 

/sbin/mount.cifs "//127.0.0.1/$d" "$d" -o sec=none credentials=/home/${username}/.smb_credentials,uid=${uid},gid=${gid},file_mode=0660,dir_mode=0770,nobrl,hard,_netdev,iocharset=utf8,noserverino

 

Jeg måtte gjøre en liten endring i forhold til originalskriptet. Opprinnelig fikk jeg bare feilmeldinger når jeg kjørte skriptet og googlet meg frem til at en løsning var å sette inn sec=none.

"sec=none" gjør at du ender opp med å koble opp en "null user"-sesjon, altså uten brukernavn og passord. Det kan definitivt være problemet.

Lenke til kommentar

Kjører du scriptet som root? Se svaret mitt over, forresten.

 

Om du kjører den kommandoen der som root, vil samba sette eier av mountpointet som root, og du (eller Sick-Beard) vil ikke ha tilgang. Samba overstyrer rettighetene til mountpointet.

 

Sjekk greyhole-oppskriftens punkt 2: Edit /etc/init.d/mount_shares_locally, and replace your_username with the username you'd like to mount the shares. Det stpår riktignok ikke your_username noe sted, så jeg regner med det er "username="gb" du skal endre til username="dittbrukernavn" Har du gjort det?

 

Hva er rettighetene på undermappene du ikke får chmodet?

 

Jeg ser scriptet prøver å sette dem til file_mode=0660,dir_mode=0770 for TV-shows-mappen i hvert fall. Det skal holde så lenge den blir montert med din bruker og "users" (eller gruppen til din bruker) som gruppeeier. Hvem eier katalogen? din_bruker_users eller root:root?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...