Autofs ile CIFS paylaşımını bağlama


12

RHEL 5.5 çalıştıran bir sistemim var ve kullanarak bir Windows paylaşımını bir sunucuya bağlamaya çalışıyorum autofs. (Ağın başlangıçta hazır olmaması nedeniyle, kullanmak istemiyorum fstab.) Paylaşımları manuel olarak bağlayabiliyorum, ancak autofsonları monte etmiyorum.

Birlikte çalıştığım dosyalar şunlardır:

Sonunda, /etc/auto.mastervar:

## Mount this test share:
/test    /etc/auto.test    --timeout=60

İçinde /etc/auto.test:

test    -fstype=cifs,username=testuser,domain=domain.com,password=password ://server/test

Sonra autofshizmeti yeniden başlatın .

Ancak, bu işe yaramaz. ls-ing dizinde herhangi bir sonuç döndürmez. Web'deki tüm bu kılavuzları takip ettim ve ya onları anlamıyorum ya da onlar.just.don't.work.

Teşekkür ederim


Günlüklerde bir şey alıyor musunuz?
c1tadel1

Günlükler nerede? Ben /var/log/messagesboşuna denedim ve syslog dosyası yok.
Phanto

Doğru yere bakıyorsunuz. Hata ayıklama iletilerini biraz artırmak ve dmesg'i denemek için "echo 1> / proc / fs / cifs / cifsFYI" komutunu deneyin.
c1tadel1

/proc/fs/cifs/Dizine sahip değilim , bu yüzden komutu çalıştıramıyorum. Ben de mkdir cifskök olarak bile yapamam . Hizmet çalışıyor, ama ciddiye neden sadece çalışmıyor bilmiyorum. RH desteğine başvurmam gerekebilir.
Phanto

Proc konumunu unutun. Modülü taktınız mı? Bunu çalıştırın. ls -al / lib / modülleri / uname -r/ çekirdek / fs / cifs görmelisiniz cifs.ko
c1tadel1

Yanıtlar:


9

Zaten bir /etc/auto.smb olmalıdır, bunu kullanın ve /etc/auto.master dizinine şu satırı ekleyin:

/cifs   /etc/auto.smb --timeout=60

Artık tüm cifs paylaşımları / cifs altında görünecek:

ls /cifs/<server>

mevcut tüm paylaşımları gösterecektir. Belirli modlara bağlanmak için /etc/auto.smb dosyasına bazı seçenekler koymak isteyebilirsiniz. Orada bir yerde buldum ve tam olarak bunu yapmak için değiştirilmiş bir auto.smb var:

#!/bin/bash
# $Id: auto.smb,v 1.3 2005/04/05 13:02:09 raven Exp $
# This file must be executable to work! chmod 755!

key="$1"
credfile="/etc/auto.smb.$key"

opts="-fstype=cifs,file_mode=0644,dir_mode=0755,uid=eng,gid=eng"
smbclientopts=""

for P in /bin /sbin /usr/bin /usr/sbin
do
    if [ -x $P/smbclient ]
    then
        SMBCLIENT=$P/smbclient
        break
    fi
done

[ -x $SMBCLIENT ] || exit 1

if [ -e "$credfile" ]
then
    opts=$opts",credentials=$credfile"
    smbclientopts="-A "$credfile
else
    smbclientopts="-N"
fi

$SMBCLIENT $smbclientopts -gNL $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
    BEGIN   { ORS=""; first=1 }
    /Disk/  {
              if (first)
                  print opts; first=0
              dir = $2
              loc = $2
              # Enclose mount dir and location in quotes
              # Double quote "$" in location as it is special
              gsub(/\$$/, "\\$", loc);
              print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
            }
    END     { if (!first) print "\n"; else exit 1 }
'

Bu istediğinizi yapar. Kendim kullandım.


Teşekkür ederim. Bu konuyu tamamen unuttum. Aslında Red hat desteğiyle iletişime geçtim ve bahsettiğiniz seçimlerde bahsettiğiniz seçenekler işe yarıyor. Anahtar, auto.mischerhangi bir nedenle bilgi yerleştirmekti . Komik, çünkü artık bunu yapmamız bile gerekmiyor.
Phanto,

Bu yararlıdır, ancak maalesef sorunun asıl amacı olan montaj noktalarını özelleştiremiyorum (ve buraya öğrenmek için geldim)
Carlos Rendon

İlginç bir gelişme olarak, bunu bir EMC cihazıyla (emin olmayan modül) kullanmak, -N'yi smbclient hattından çıkarmamı gerektirdi. Bu sorunla bugün karşılaştık.
LSD

Ayrıca, kimlik bilgileri dosyasında eşittir işaretleri arasında boşluk olmamalıdır. Bunu öğrenene kadar bu bir sürü hataya neden oldu. İki farklı belge farklı şeyler söyledi.
LSD

8

Bütün sabahımı aynı sorunu ayıklayarak geçirdiğimden beri. Yukarıda neler olduğunu açıklayayım.

/etc/auto.master

## Mount this test share:
/test    /etc/auto.test    --timeout=60

Bu, /testokunan ayrıntılar için bir şey monte etmek istediğim anlamına gelir/etc/auto.test

/etc/auto.test

test    -fstype=cifs,username=testuser,domain=domain.com,password=password ://server/test

Bu, auto.master dosyasında belirtilenlerin bir alt klasörü anlamına gelir, lütfen testi aşağıdaki bilgilerle birleştirin. (örn . montaj parçası/test/test doğru şekilde gösterildiği gibi slm olacaktır ).

Bu ls /test/test, içindekilerin//server/test

/ Test -> // server / test'in asıl hedefini gerçekleştirmek için aşağıdakileri yapmak istersiniz:

/etc/auto.master

## Mount this test share:
/    /etc/auto.test    --timeout=60

Birkaç not daha. Aşağıdaki bağlama seçeneklerini kullanışlı buldum.

rw - okuma / yazma montajı

noserverino - inode numarası desteği ile ilgili hata mesajını kaldırır

credentials=[credential file]- bu, içinde kimlik bilgileri olan ayrı bir dosya oluşturmanıza olanak tanır. Aşağıdaki biçime sahiptir:

username=[windows username, domain can be included as well]
password=[windows password]

DÜZENLEME - 2013-06-17 13:28 GMT-8

yorumlarda slm dosya sisteminin köküne montaj tehlikeli olabileceğini belirtti. yorumlarda lsd, dosya sisteminin kökünden, ortak bir şeyle örtüşmeyecek şekilde bağlayacağınız farklı bir yere bir sembolik bağlantı oluşturmak için bir geçici çözüm önerir. Örneğin, / testin bir mount olmasını istiyorsanız, aslında / net / the_test_mount'a bir şeyler bağlarsınız ve / net / the_test_mount'a işaret eden bir symlink / test oluşturursunuz.


3
Bu, eğer birisi /etc/auto.test dizinine usr veya etc ekleyecekse, bu bağların sistemdeki dizinleri etkin bir şekilde geçersiz kılacağı açısından tehlikelidir. Verilen bu pek olası değildir, ancak genel olarak bağlar kök düzeyinde yapılmaz.
slm

Autofs kullanarak bir kök bağlama sağlamanın daha iyi bir yolu var mı? Eğer öyleyse lütfen cevabınızı güncelleyin veya bir yorum bırakın, ben de benimkini güncelleyebilirim.
Carlos Rendon

1
Bağların / net, söyle ve / test ile / net / server / test (ya da her neyse) arasında sembolik bağlantıları olmasını sağlayın. Şimdi ne zaman cd / net ve ls ya da her neyse, o monte edecek.
LSD

4

Bunu sadece bir CentOS 5.6 kutusunda yaptım ve sorunun bir kısmının auto.test dosyanızla ilgili olabileceğini düşünüyorum. Şu anki formunda bir / test bağlama noktası ve ardından altında tek bir test çağı oluşturacaksınız, örneğin / test / test. Ayrıca --ghost anahtarını auto.master satırınıza şu şekilde eklemek isteyebilirsiniz:

/test    /etc/auto.test    --timeout=60 --ghost

--Ghost anahtarı, belirli bir paylaşım etkin olarak bağlanmamış olsa bile bağlama noktaları saplamaları oluşturur.

SMB / CIFS paylaşımlarını bağlama yolları hakkında bu CentOS wiki İpuçları ve Püf Noktaları sayfasına göz atın .

Montaj ipuçları

  • Windows Paylaşımı = \ mysmb \ share1
  • Unix Dir. = / test / dir1

fikir # 1

 # /etc/auto.master
/test                 /etc/auto.test --timeout=600 --ghost

# /etc/auto.test
dir1         -fstype=cifs,rw,noperm,netbiosname=${HOST},credentials=/etc/creds.txt ://mysmb/test/dir1
dir2         -fstype=cifs,rw,noperm,netbiosname=${HOST},credentials=/etc/creds.txt ://mysmb/test/dir2

fikir # 2

 # /etc/auto.master
/test                 /etc/auto.test --timeout=600 --ghost

# /etc/auto.test
*            -fstype=cifs,rw,noperm,netbiosname=${HOST},credentials=/etc/creds.txt ://mysmb/test/&

Cevabın için teşekkürler. Lsd için lütfen yorumuma bakın.
Phanto,

1
Tanrım ... - hayalet varsayılan olmalı. Fedora / rhel / centos'dayım, haritayı okuyor, ancak klasörün içine girdiğimde hiçbir şey yok ... Sonra çılgınca bir fikrim vardı cd "sharename"ve sihirli lsolmayan mevcut olan klasöre girdi ... arrgh
Ray Foss

-1

Eğer cif kullanıyorsanız, _netdevparametrenin kullanılması da önerilir .

_netdev çünkü dosya sistemi ağ erişimi gerektiren bir cihazda bulunur, bu sistem ağın ana sistemde etkinleştirilene kadar bu dosya sistemlerini monte etmeye çalışmasını önlemek için kullanılır.


1
Birkaç biçim ve yazım hatası düzeltildi. Muhtemelen sorudaki yapılandırmayı örnek olarak kullanarak bu parametreyi nasıl ve nereye koyacağınıza dikkat çekmelisiniz.
Leo,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.