jonny Skrevet 30. juli 2014 Del Skrevet 30. juli 2014 Jeg bruker Ubuntu 14.04, og ønsker å montere diverse Samba/CIFS shares når jeg logger inn på maskinen, slik at disse alltid er tilgjengelig (f.eks på /media/<brukernavn>/<maskinnavn>/<share-navn>). Samba-passord og -brukernavn avhenger av hvilken bruker som logger inn, så jeg kan ikke ordne dette i /etc/fstab, tror jeg. Jeg ønsker heller ikke å måtte skrive inn passord ved montering (f.eks. fordi bruk av 'mount' krever 'sudo' e.l.), alt skal gå helt automatisk. Dette er svært enkelt å få til i Windows, da kan man bare si at en Samba-share skal få en stasjonsbokstav ved innlogging, så trenger man aldri tenke på dette lenger - jeg ønsker den samme funksjonaliteten i Ubuntu. Lenke til kommentar
kpolberg Skrevet 30. juli 2014 Del Skrevet 30. juli 2014 (endret) f you want to mount share files using samba but you don’t want to put the username or password on fstab file, you could use an external file, this is useful if you want to increase a little security since fstab usually is world readable. Using /etc/fstab # insecure and common usage # Add to fstab //share/dir /mnt/myshare cifs username=user,password=pass # more secure usage mkdir /path/securedir chmod 0700 /path/securedir chown root /path/securedir # Add to fstab //share/dir /mt/myshare cifs credentials=/path/securedir/fileshare cat /path/securedir/fileshare username=yourusername password=youpass Kilde: http://anothersysadmin.wordpress.com/2007/12/17/howto-mount-samba-shares-in-fstab-using-a-credential-file/ Endret 30. juli 2014 av kpolberg Lenke til kommentar
jonny Skrevet 30. juli 2014 Forfatter Del Skrevet 30. juli 2014 Problemet er at Samba brukernavn/passord avhenger av hvem som logger inn :-) Med forslaget ditt vil alle brukere logge inn med samme brukernavn og passord, det er ikke det jeg ønsker. Foreløpig har jeg det slik i /etc/fstab: # CIFS shares //192.168.0.5/home /media/jupiter/home cifs credentials=/tmp/smbcreds,user,noauto 0 0 //192.168.0.5/music /media/jupiter/music cifs credentials=/tmp/smbcreds,user,noauto 0 0 //192.168.0.5/photo /media/jupiter/photo cifs credentials=/tmp/smbcreds,user,noauto 0 0 //192.168.0.5/scratch /media/jupiter/scratch cifs credentials=/tmp/smbcreds,user,noauto 0 0 //192.168.0.5/setup /media/jupiter/setup cifs credentials=/tmp/smbcreds,user,noauto 0 0 //192.168.0.5/video /media/jupiter/video cifs credentials=/tmp/smbcreds,user,noauto 0 0 Så har jeg lagt inn følgende i ~/.profile: cp ~/smbcreds /tmp shares="home music photo scratch setup video" for dir in $shares; do mount /media/jupiter/$dir done Og i ~/.bash_logout: rm /tmp/smbcreds shares="home music photo scratch setup video" for dir in $shares; do umount /media/jupiter/$dir done ~/smbcreds inneholder Samba brukernavn og passord, og har permissions 0600 og bruker/brukergruppe satt til brukeren og brukerens egne gruppe. Det ser foreløpig ut som det virker, men sikkert noen skjær i sjøen her... Lenke til kommentar
Occi Skrevet 30. juli 2014 Del Skrevet 30. juli 2014 Kanskje du finner det du trenger i autofs? Er en stund siden jeg tuklet med dette så kan hende at det ikke er helt hva du er ute etter men du får ta en titt. Lenke til kommentar
kpolberg Skrevet 30. juli 2014 Del Skrevet 30. juli 2014 Problemet er at Samba brukernavn/passord avhenger av hvem som logger inn :-) ...snip Aiai, se der ja. Gjelder å lese førsteposten litt nøyere Lenke til kommentar
Crowly Skrevet 30. juli 2014 Del Skrevet 30. juli 2014 Mulig dette kan hjelp det litt på veien. fstab //192.168.0.5/video /media/jupiter/video cifs user,users,noauto 0 0 Fikk kjørt denne som vanlig bruker i terminalen uten å bli spurt om passord mount.cifs //192.168.0.5/video /media/jupiter/video -o user=$USER,password=$PASSWD du kan droppe -o user=$USER,password=$PASSWD da $USER og $PASSWD er standard variablene for de feltene, se http://manpages.ubuntu.com/manpages/lucid/en/man8/mount.cifs.8.htmlEr ikke sikker på om $PASSWD har en verdi til å begynne med, så det må muligens settes. Testet kun i terminalen og da etter å ha satt verdien med export PASSWD=mittpassord Lenke til kommentar
jonny Skrevet 30. juli 2014 Forfatter Del Skrevet 30. juli 2014 Det fungerer, Crowly, men jeg tror jeg foretrekker å ha passordet i en fil framfor i en miljøvariabel... Lenke til kommentar
Crowly Skrevet 30. juli 2014 Del Skrevet 30. juli 2014 Sett verdien, mount og så tøm variabelen, så finnes passordet kun i en kort periode. Lenke til kommentar
jonny Skrevet 30. juli 2014 Forfatter Del Skrevet 30. juli 2014 Jeg laget et par skript som ligger et bruker-uavhengig sted, som hver bruker kan kalle for å montere/demontere samba shares. Skriptet som monterer ser slik ut: cp ~/smbcreds /tmp mntbase=/media server=jupiter shares="home music photo scratch setup video" for dir in $shares; do mount $mntbase/$server/$dir done rm /tmp/smbcreds Jeg kunne selvfølgelig brukt en variabel slik Crowly skriver, men må da ha et skript som setter denne før og fjerner den etter at skriptet over er kalt (evt. gjøre det i det skriptet som kaller skriptet over, men da må dette skriptet ha veldig begrensede bruker-rettigheter også), synes det ble greiere med en fil med brukernavn/passord. Denne fila bør da kun kunne leses av brukeren som eier den, selvfølgelig. Disse skriptene bør kalles når brukeren logger inn og ut vha. det grafiske brukergrensesnittet. Så lenge det er kun en bruker som er logget inn på den måten (altså bruker X), bør dette fungere. Jeg er imidlertid usikker på hvor jeg bør kalle disse skriptene, nå gjør jeg det i ~/.profile og ~/.bash_logout, som jeg mistenker blir feil. Lenke til kommentar
oj88 Skrevet 31. juli 2014 Del Skrevet 31. juli 2014 (endret) Jeg laget et par skript som ligger et bruker-uavhengig sted, som hver bruker kan kalle for å montere/demontere samba shares. Skriptet som monterer ser slik ut: cp ~/smbcreds /tmp mntbase=/media server=jupiter shares="home music photo scratch setup video" for dir in $shares; do mount $mntbase/$server/$dir done rm /tmp/smbcreds Jeg kunne selvfølgelig brukt en variabel slik Crowly skriver, men må da ha et skript som setter denne før og fjerner den etter at skriptet over er kalt (evt. gjøre det i det skriptet som kaller skriptet over, men da må dette skriptet ha veldig begrensede bruker-rettigheter også), synes det ble greiere med en fil med brukernavn/passord. Denne fila bør da kun kunne leses av brukeren som eier den, selvfølgelig. Disse skriptene bør kalles når brukeren logger inn og ut vha. det grafiske brukergrensesnittet. Så lenge det er kun en bruker som er logget inn på den måten (altså bruker X), bør dette fungere. Jeg er imidlertid usikker på hvor jeg bør kalle disse skriptene, nå gjør jeg det i ~/.profile og ~/.bash_logout, som jeg mistenker blir feil. Dersom du kun ønsker at scriptet skal kjøre ved innlogging i X, må du sjekke om DISPLAY-variabelen er satt, ellers vil det også kjøre ved SSH-tilkoblinger, eller login-shell i terminal. Den vanlige måten å kjøre programmer/kommandoer på når man logger inn i X er derimot via .desktop-filer. Ubuntu har i programmenyen et program kalt "Startup Applications" (gnome-session-properties). Her kan du legge inn kommandoer som skal kjøre ved innlogging. Dette lager en .desktop-fil og legger den i ~/.config/autostart. Du vil ha den gjeldene for alle brukere, så da legger du den i /etc/xdg/autostart i stedet. Du kan bare lage filen selv i /etc/xdg/autostart uten å bruke det grafiske verktøyet og så flytte. Filen må ha .desktop-endelse. [Desktop Entry] Type=Application Name=NavnPåScript Exec=kommando Her er kommando path til scriptet ditt (evt bare navnet på scriptet om det ligger i PATH, som /usr/local/bin). Kjøring av script ved utlogging kan gjøres via innloggingsmanager. Ubuntu bruker LightDM. Se her for hvordan kjøre script ved utlogging: https://wiki.ubuntu.com/LightDM#Adding_System_Hooks Endret 31. juli 2014 av oj88 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå