CIFS paylaşımını nasıl yüklerim?

56

Ubuntu 11.10 kullanıyorum ve bir freenas sunucusunu monte etmeye çalışıyorum. Şanssız olarak cifs ve nfs içinde paylaşım yapacak sunucu ayarlamam var.

smbmount //192.168.1.### /mnt/

dosyasını denedim

Ubuntu için yeni değilim, ancak bir güç kullanıcısı yakınında değilim, bu yüzden varsa bir GUI seçeneğini tercih ederim.

11.10'da nasıl cifs paylaşımını nasıl yüklerim?

    
sordu KYLE 03.02.2012 07:58

8 cevap

69

Samba paylaşımlarını yüklemek için bir gui olan ve indirme için yazılım merkezinde bulunan pyNeighborhood var.

Nasıl kurulacağı ve kullanılacağı konusunda burada bulunan iyi bir makale var.

İlk önce cif araçlarını yükleyin

sudo apt-get install cifs-utils

Alternatif olarak, temel terminal komutu:

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

Bağlantınızı Nautilus'ta görmek isterseniz, önce / media / USERNAME / içinde bir alt klasör oluşturmak iyi olacaktır:

mkdir /media/paul/cifsShare

Ayrıca, şifreye mount komutunda rastlanabilir (örneğin, dosya / klasör modlarını gösterir):

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

Bu durumda, montaj anında şifre (aslında 2 parola için) istenir.

Nasıl yapılacağına ve nasıl bağlanacağına ilişkin Samba dokümantasyonuna göz atın. start up vb.

    
verilen cevap map7 03.02.2012 08:33
9

map7'nin söylediği gibi, ancak sürücüdeki bir dosyayı her değiştirdiğinizde root izinlerini kullanmak istemiyorsanız, bir kullanıcı klasörüne bağlanmanız ve gid ve uid'in ayarlandığından emin olmanız gerekir. kullanıcı adınıza.

Onları ayarlayan komut:

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

mnt klasörünün ~/mnt/share yerine /mnt/share dizininde oluşturulduğunu unutmayın.

Ayrıca, kabuğun geçmişinde potansiyel olarak saklanan komutta olmasını değil, sizi istemesini istiyorsanız parola = PASSWD'yi dışarıda bırakabilirsiniz:

mount -t cifs -o username=USERNAME,uid=$USER,gid=$USER //192.168.1.88/shares ~/mnt/share
    
verilen cevap binamenator 21.12.2016 15:37
4

1) Samba paylaşımım Caja'da (ubuntu 16.04 „explorer“) gösteriliyor

smb://thinkpad/ddrive/

Bu iyi bir lithmus testi, bağlantı / yol sorunu yok.

( caveat : Eğer caja tarafından windows makinenizden parola bilgilerinin sorulması istenirse, Domain'i WORKGROUP'dan makinenin ismine, yani 'thinkpad' ye çevirmek isteyebilirsiniz. sürücünüzün yerel giriş kimlik bilgileri yapmalıdır.)

2) Eğer işe yarıyorsa, şu komut geliyor:

sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
  • Önceden emin olun, / mnt / ddrive boş bir dizin olarak var.
  • Üstelik üstelik, kullanıcı adından sonra doğrudan ,password=supersecret (boşluk bırakmaz) da eklersiniz, ancak komut girdiğinizde de sorulmasını bekleyebilirsiniz.
verilen cevap Frank Nocke 10.11.2016 16:50
3

Köklerin her zaman cifs bağlantılarını yapmak için gerekli olduğu iddiasına katılmıyorum. Bu doğrudur, CLI smbmount için her zaman gereklidir, ancak nautilus gibi bir dosya yöneticisi bir cifs paylaşımını gerçekleştirme yeteneğine sahiptir ve kök olması gerekli değildir.

Gnome kullanmıyorum, ama hala Nautilus yüklü. Masaüstünü ele geçirmeyi denemek için bunu bir terminalde çalıştırın

$ nautilus --no-desktop &

Ubuntu 16.04'te, soldaki ağaç menüsünde "Sunucuya Bağlan" altta bulunur. Bunu tıklayın, öneri "smb: //foo.example.com" yazın. smb "cifs" için eski bir kelimedir ve sunucunuzu koyar ve başlangıçta smb: // ile paylaşırsanız, bağlantı çalışır! Söz veriyorum. Paylaşımınız adlandırılmış bir şeyse, "smb: //foo.example.com/myshare" şeklinde bir eğik çizgiden sonra gereklidir.

Diğer dosya yöneticilerini aynı şekilde kullandım. Protokolün "smb: //" olması gerekiyor.

    
verilen cevap pauljohn32 15.07.2016 04:59
3
  1. Tüm bu ayrıntıları / etc / fstab içine koyabilirsiniz, böylece sistem açılışında dizinlere sahip olabilirsiniz. Windows veya SMB sunucusu IP adresindeyse 192.168.1.1

    /etc/fstab
    //192.168.1.1/SharedFolder/    /mnt/linux_smb   cifs    username=winuser,password=TopSecret   0    0
    
  2. Linux bağlantı noktası olarak dizin oluştur

    mkdir /mnt/linux_smb
    chmod 755  /mnt/linux_smb
    
  3. İlk kez bunu manuel olarak yükleyin

    mount -a
    
  4. Olağan hatalar

    tarafından bulunabilir.
    dmesg | tail 
    
verilen cevap Amit Vujic 15.09.2017 14:36
2
  1. CIF / SMB sürümlerinin Linux ve Windows arasında uyumlu olmadığında çözülmesi gereken belirli bir sorun var ve çok sinir bozucu. Bu durumda, "vers = 2.1" ifadesini ekleyerek fstab satırında küçük chnage yapabilirsiniz

    Yani, Windows veya SMB sunucusu IP adresindeyse 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. 2, 3 ve 4 numaralı adımlar önceki yanıtlarda olduğu gibi kalır.

verilen cevap Amit Vujic 01.11.2017 13:30
1

CIFS dosya sistemini komut satırından monte etmek ve bir test dosyası oluşturmak / silmek için küçük bir betik (bunun Fedora olmasına rağmen) oluşturdum. Bazı kullanım olabilir:

#!/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
    
verilen cevap David Tonhofer 04.12.2017 16:43
0

Farklı montaj yöntemlerinin nasıl çalıştığı, ancak dikkate almak isteyebileceğiniz bir şey var

Kimlik bilgilerinizi doğrudan / etc / fstab içine girmek istemiyorsanız, bunun yerine bir mount seçeneği kullanabilirsiniz: / Burada kimlik bilgileri = / senin / yol / .credentials

bu içermelidir adı = msusername şifre = mspassword

Dosyayı kaydedin ve seçim düzenleyicinizden çıkın.

izinler olarak değiştirilmelidir chmod 600

Şifrelenmiş bir ana dizininiz varsa ve bağlayıcınızın önyüklemede olmasını istiyorsanız, dosyayı ana dizininizin dışına yerleştirdiğinizden emin olun. / etc / or / media / içinde uygun ve kolayca unutulmaz bir yer olabilir.

    
verilen cevap amon san 29.04.2018 16:47

Etiketlerdeki diğer soruları oku