it-swarm.dev

Jak připojím sdílenou složku CIFS?

Používám Ubuntu 11.10 a pokouším se připojit server freenas. Mám server nastavený na sdílení cifs a nfs bez štěstí.

Zkusil jsem smbmount //192.168.1.### /mnt/

Nejsem na Ubuntu nováček, ale nejsem nikde poblíž mocného uživatele, takže bych raději použil GUI, pokud je k dispozici.

Jak připojím cifs sdílení v 11.10?

68
KYLE

Existuje pyNe Neighborhood , což je GUI pro připojování samba sdílených položek a dostupné v softwarovém centru ke stažení.

Existuje dobrý článek nachází se zde o tom, jak jej nastavit a používat.

Nejprve nainstalujte utilitky CIF

Sudo apt-get install cifs-utils

Alternativně je základní příkaz terminálu:

mount -t cifs -o username=USERNAME,password=PASSWD //192.168.1.88/shares /mnt/share

Pokud byste chtěli vidět svůj mount v Nautilu, bylo by dobré nejprve vytvořit podsložku například v/media/USERNAME /:

mkdir /media/paul/cifsShare

heslo může být ommited například v příkazu mount (bude také demonstrovat režimy souborů/složek):

Sudo mount -t cifs //nas-server/cifsShare /media/paul/cifsShare -o username=paulOnNAS,iocharset=utf8,file_mode=0777,dir_mode=0777,soft,user,noperm

v tomto případě budete požádáni o heslo (ve skutečnosti pro 2 hesla) v okamžiku připojení.

Přečtěte si Samba dokumentaci zde jak to udělat a správně ji nastavit tak, aby se připojilo při spuštění atd.

97
map7

Je to, jak řekl map7, ale pokud nechcete používat rootová oprávnění pokaždé, když změníte soubor na disku, musíte se připojit k uživatelské složce a ujistit se, že gid a uid jsou nastaveny na vaše uživatelské jméno .

Příkaz, kterým je nastavíte:

mount -t cifs -o username=USERNAME,password=PASSWD,uid=$USER,gid=$USER //192.168.1.88/shares ~/mnt/share

Všimněte si, že složka mnt byla vytvořena v ~/mnt/share namísto /mnt/share.

Můžete také vynechat heslo = PASSWD, pokud chcete, aby vás vyzvalo místo toho, abyste jej měli v příkazu, který je potenciálně uložen v historii Shell:

mount -t cifs -o username=USERNAME,uid=$USER,gid=$USER //192.168.1.88/shares ~/mnt/share
13
binamenator

1) Moje sdílení samby se zobrazuje v Caja (Ubuntu 16.04 „Explorer“) jako

smb://thinkpad/ddrive/

Jedná se o dobrý test s povolením, neexistují žádné problémy s připojením/cestou.

(pozornění: Pokud vás caja zeptá na pověření hesla z vašeho počítače se systémem Windows, možná budete chtít přepnout doménu z WORKGROUP na název počítače, tj. 'thinkpad'. Potom skutečně místní přihlašovací pověření vašeho disku by měl udělat.)

2) Pokud to funguje, přichází příkaz:

Sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
  • Předtím se ujistěte, že/mnt/ddrive existuje jako prázdný adresář.
  • Můžete také za studena přidat ,password=supersecret přímo (bez mezery) za username =, ale můžete také čekat na výzvu, když zadáte příkaz.
5
Frank Nocke

Nesouhlasím s tvrzením, že kořen je vždy nutný k tomu, aby připojení CIF fungovala. Je pravda, že je vždy nutné pro CLI smbmount, ale správce souborů, jako je například nautilus, má schopnost připojit sdílenou složku CIF a není nutné být root.

Nepoužívám Gnome, ale stále mám nainstalovaný Nautilus. Spustit v terminálu, aby se zabránilo pokusit se převzít plochu

$ nautilus --no-desktop &

V Ubuntu 16.04 má na levé postranní stromové nabídce možnost Připojit se k serveru. Klikněte na tento návrh a napište „smb: //foo.example.com“. smb je staré slovo pro „cifs“, a pokud vložíte server a sdílíte s smb: // na začátku, připojení funguje! Slibuji. Pokud je sdílená složka pojmenovaná věc, je vyžadována po lomítku „smb: //foo.example.com/myshare“.

Stejným způsobem jsem použil jiné správce souborů. Protokol musí být "smb: //".

3
pauljohn32
  1. Existuje konkrétní problém, který je velmi frustrující vyřešit, když verze CIF/SMB nejsou kompatibilní mezi Linuxem a Windows. V takovém případě můžete v fstabové řádce udělat jen drobné přidávání "vers = 2,1"

    Pokud tedy Windows nebo SMB server je na IP adrese 192.168.1.1

    /etc/fstab
    
    //192.168.1.1/SharedFolder/   /mnt/linux_smb   cifs   vers=2.1,username=winuser,password=TopSecret   0    0
    
  2. Kroky 2, 3 a 4 zůstávají stejné jako v předchozí odpovědi.

3
Amit Vujic
  1. Všechny tyto údaje můžete vložit do/etc/fstab, abyste měli při spuštění systému připojené adresáře. Pokud jsou okna nebo SMB server je na IP adrese 192.168.1.1

    /etc/fstab
    //192.168.1.1/SharedFolder/    /mnt/linux_smb   cifs    username=winuser,password=TopSecret   0    0
    
  2. Vytvořit adresář jako linux bod připojení

    mkdir /mnt/linux_smb
    chmod 755  /mnt/linux_smb
    
  3. Poprvé to připojte ručně

    mount -a
    
  4. Případné chyby najdete na

    dmesg | tail 
    
3
Amit Vujic

Dal jsem dohromady malý skript (je to však určeno pro Fedoru), aby se připojil souborový systém CIFS z příkazového řádku a vytvořil/odstranil testovací soubor. Může být užitečný:

#!/bin/bash
# Passes https://www.shellcheck.net/

set -o nounset

# See 
#   https://wiki.samba.org/index.php/Mounting_samba_shares_from_a_unix_client
#   https://access.redhat.com/solutions/448263
# and also
#   https://serverfault.com/questions/309429/mount-cifs-credentials-file-has-special-character

# One needs to run "yum install cifs-utils" to have the kernel module, man page
# and other stuff.

rpm --query cifs-utils > /dev/null

if [[ $? != 0 ]]; then
   echo "Package cifs-utils is not installed -- exiting" >&2
   exit 1
else 
   ver=$(rpm --query cifs-utils)
   echo "Package $ver exists ... good!" >&2
fi

# Where to find credentials? Use the "credential file" approach, which
# we call "authfile". Example content (w/o the leading #) below.
# Make sure there are no spaces around '=' (this is different than
# for "smbclient" which can deal with spaces around '='.)
# ----8<------8<----------------
# username=prisoner
# password=KAR120C
# domain=VILLAGE
# ----8<------8<----------------
# Trailing empty lines will lead to (harmless) error messages
# "Credential formatted incorrectly: (null)"

authfile='/etc/smb.passwd' # Make sure read permissions are restricted!!

# Server to contact.
# In the UNC path, we will use DNS name instead of the (more correct?)
# NetBIOS name.
# mount.cifs manpage says: "To mount using the cifs client, a tcp name
# (rather than netbios name) must be specified for the server."

server_dns=thedome.example.com

# The name of the connecting client, just to be sure (probably useless)

client_nbs=$(hostname --short | tr '[:lower:]' '[:upper]')

if [[ -z $client_nbs ]]; then
  client_nbs=UNKNOWN
fi

# Connect to a certain service (which is a fileservice)
# and then switch to the given directory.
# Instead of appending $directory to form the complete UNC
# (Uniform Naming Convention) path, one could also use the option 
# "prefixpath".
# If there is no need to mount a subdirectory of the service,
# the UNC would just be unc="//$server_dns/$service_name"

service_name='information'
directory='PERSONALDATA'

unc="//$server_dns/$service_name/$directory"

# Finally, we will mount the CIFS filesystem here (the
# permissions on that node are not directly of interest)

mntpoint=/mnt/portal

if [[ ! -d "$mntpoint" ]]; then
   mkdir "$mntpoint"
   if [[ $? != 0 ]]; then
      echo "Could not create mountpoint '$mntpoint' -- exiting" >&2
      exit 1
   fi
fi

# Only this user will be able to access the mounted CIFS filesystem

user=number6
group=number6

# Try to mount this so that only user "number6" can access it

mount -t cifs \
   "$unc" \
   "$mntpoint" \
   --read-write \
   --verbose \
   -o "credentials=$authfile,uid=$user,gid=$group,netbiosname=$client_nbs,file_mode=0660,dir_mode=0770"

res=$?

if [[ $res != 0 ]]; then
   echo "Mount failed!" >&2
   echo "Return code $res; more info may be in kernel log or daemon log" >&2
   echo "Try 'journalctl SYSLOG_FACILITY=0' or 'journalctl SYSLOG_FACILITY=3'" >&2
   echo "...exiting" >&2
   exit 1
fi

# Check permissions on the mount point

stat=$(stat --format="group=%G user=%U access=%A" "$mntpoint")
soll="group=$group user=$user access=drwxrwx---"

if [[ $stat != "$soll" ]]; then
   echo "Incorrect permissions on root of '$mntpoint'" >&2
   echo "Expected: $soll" >&2
   echo "Obtained: $stat" >&2
   echo "...exiting" >&2
   umount "$mntpoint"
   exit 1
fi

# CD to the mountpoint to be sure

cd "$mntpoint"

if [[ $? != 0 ]]; then
  echo "Could not cd to '$mntpoint'" >&2
  exit 1
fi

# CD to directory TEST which must exist (change as appropriate)

newcd="$mntpoint/TEST"

if [[ ! -d "$newcd" ]]; then
   echo "Directory '$newcd' not found - can't test!" >&2
   echo "...exiting" >&2
   exit 1
fi

cd "$newcd"

if [[ $? != 0 ]]; then
  echo "Could not cd to '$newcd'" >&2
  exit 1
fi

# Create a file and check the permissions

testfile=$(mktemp --tmpdir="$newcd")

if [[ $? != 0 ]]; then
   echo "Could not create temporary file in '$newcd'" >&2
   exit 1
fi

stat=$(stat --format="group=%G user=%U access=%A" "$testfile")
soll="group=$group user=$user access=-rw-rw----"

if [[ $stat != "$soll" ]]; then
   echo "Incorrect permissions on temporary file '$testfile'" >&2
   echo "Expected: $soll" >&2
   echo "Obtained: $stat" >&2
   echo "...exiting" >&2
   exit 1
fi

/bin/rm "$testfile"

echo "Mounted '$unc' on '$mntpoint'" >&2
1
David Tonhofer

jak byly různé způsoby montáže vyčerpány, ale je tu něco, co byste mohli chtít zvážit

pokud nechcete zadat své přihlašovací údaje přímo do/etc/fstab, můžete místo toho použít volbu mount: credentials =/your/path/here/.credentials

toto by mělo obsahovat username = msusername password = mspassword

Uložte soubor a ukončete editor výběru.

oprávnění by měla být změněna na chmod 600

pokud máte zašifrovaný domovský adresář a chcete, aby byl váš připojovací systém spuštěn, nezapomeňte umístit soubor mimo svůj domovský adresář. na/etc/nebo/media/může být vhodné a snadno zapamatovatelné místo.

1
amon san