मैं CIFS शेयर कैसे माउंट करूं?


64

मैं Ubuntu 11.10 का उपयोग कर रहा हूं, और एक freenas सर्वर को माउंट करने की कोशिश कर रहा हूं। मेरे पास कोई भाग्य के साथ cif और nfs में साझा करने के लिए सर्वर सेट है ।

मैंने कोशिश की है smbmount //192.168.1.### /mnt/

मैं उबंटू के लिए नया नहीं हूं, लेकिन एक बिजली उपयोगकर्ता के पास कहीं नहीं हूं, इसलिए मैं उपलब्ध होने पर एक जीयूआई विकल्प पसंद करूंगा।

मैं 11.10 में सीआईएफ शेयर कैसे माउंट कर सकता हूं ?

जवाबों:


88

वहाँ pyNeighborhood है जो बढ़ते सांबा शेयरों और डाउनलोड के लिए सॉफ़्टवेयर केंद्र में उपलब्ध है।

यहाँ एक अच्छा लेख है कि इसे कैसे स्थापित किया जाए और इसका उपयोग कैसे किया जाए।

सबसे पहले cifs के बर्तनों को स्थापित करें

sudo apt-get install cifs-utils

वैकल्पिक रूप से, मूल टर्मिनल कमांड है:

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

यदि आप नौटिलस में अपने माउंट को देखना चाहते हैं, तो उदाहरण के लिए पहले / मीडिया / USERNAME / में एक सबफ़ोल्डर बनाना अच्छा होगा:

mkdir /media/paul/cifsShare

उदाहरण के लिए, माउंट कमांड में पासवर्ड भी डाला जा सकता है (फ़ाइल / फ़ोल्डर मोड भी प्रदर्शित करेगा):

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

इस मामले में आपको बढ़ते समय पर पासवर्ड (वास्तव में 2 पासवर्ड के लिए) के लिए कहा जाएगा।

सांबा प्रलेखन के माध्यम से यहां पढ़ें कि यह कैसे करना है और इसे स्टार्ट अप आदि पर माउंट करने के लिए सही तरीके से सेट करें।


2
वहाँ 1 के बिना सांबा शेयर माउंट करने का एक तरीका है) हार्ड पासवर्ड और 2 कोडिंग) रूट होने के लिए?
mcExchange

1
@mcExchange रूट की आवश्यकता है और आप क्रेडेंशियल्स को बचाने के लिए smb क्रेडेंशियल फ़ाइल का उपयोग कर सकते हैं
adampki

4
यह भी सुनिश्चित करें कि आपने cifs-utilsस्थापित किया है sudo apt-get install cifs-utils:। अधिक जानकारी के लिए इस ubuntu सहायता डॉक्टर महान है।
मार्को पशकोव

1
pyNeighborhood मुझे सेगमेंटेशन दोष देता है जब ubuntu 14 ssh में शुरू हुआ
Pavel Niedoba

1
@MarcoPashkov cifs-utilsमुझे क्या मिला और जा रहा है। इसमें से कोई भी अन्यथा काम नहीं करेगा। इसे सीधे उत्तर में शामिल किया जाना चाहिए।
रुबिनोरेल्स

13

यह जैसा कि Map7 ने कहा है, लेकिन अगर आप ड्राइव पर फ़ाइल बदलने पर हर बार रूट अनुमतियों का उपयोग नहीं करना चाहते हैं, तो आपको एक उपयोगकर्ता फ़ोल्डर में माउंट करना होगा, और सुनिश्चित करें कि आपके उपयोगकर्ता नाम पर gid और uid सेट हैं ।

उन्हें सेटिंग कमांड:

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

ध्यान दें कि इसके बजाय mntफ़ोल्डर बनाया गया था ।~/mnt/share/mnt/share

इसके अलावा, आप पासवर्ड = PASSWD छोड़ सकते हैं यदि आप चाहते हैं कि यह आपके आदेश में होने के बजाय आपको संकेत दे, जो संभवतः आपके शेल के इतिहास में संग्रहीत है:

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

1
कुछ उदाहरणों के साथ और अधिक पूर्ण उत्तर दें, और मैं ऊपर आऊँगा :)
तूफान

5

1) काजा में मेरा सांबा हिस्सा दिखाता है (ubuntu 16.04 “एक्सप्लोरर“) के रूप में

smb://thinkpad/ddrive/

यह एक अच्छा लिथमस परीक्षण है, कोई कनेक्शन / पथ मुद्दे नहीं हैं।

( चेतावनी : यदि आप अपनी विंडोज़ मशीन से पासवर्ड क्रेडेंशियल के बारे में काजा से पूछते हैं, तो आप डोमेन को WORKGROUP से मशीन के नाम पर स्विच करना चाहते हैं, अर्थात 'थिंकपैड'। तब आपके ड्राइव का सही मायने में स्थानीय लॉगिन क्रेडेंशियल करना चाहिए।)

2) अगर वह काम करता है, तो यहां आदेश आता है:

sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
  • सुनिश्चित करें कि पहले से ही खाली निर्देशिका के रूप में / mnt / ddrive मौजूद है।
  • आप ठंड में ,password=supersecretउपयोगकर्ता नाम = के बाद एक सीधे (कोई स्थान) नहीं जोड़ते हैं , लेकिन जब आप कमांड दर्ज करते हैं, तो आपको संकेत दिए जाने का इंतजार कर सकते हैं।

2
मुझे यह पता लगाने में थोड़ा समय लगा, जहां मैं smb में टाइप कर सकता हूं: // .... निमो / लिनक्स मिंट 18 में पथ, लेकिन वास्तव में यह काफी सरल है: यदि पथ इनपुट बॉक्स दिखाई नहीं देता है, तो इसे सक्षम करें। मेनू देखें।
पेडि टी।

3

मैं इस दावे से असहमत हूं कि सीआईएफ कनेक्शन को बनाने के लिए रूट हमेशा आवश्यक होता है। यह सच है, यह हमेशा सीएलआई smbmount के लिए आवश्यक है, लेकिन एक फ़ाइल प्रबंधक जैसे कि नॉटिलस में एक सीआईएफएस शेयर को माउंट करने की क्षमता है और रूट होना आवश्यक नहीं है।

मैं Gnome का उपयोग नहीं करता, लेकिन मेरे पास अभी भी Nautilus स्थापित है। इसे डेस्कटॉप पर ले जाने की कोशिश को रोकने के लिए एक टर्मिनल में चलाएं

$ nautilus --no-desktop &

Ubuntu 16.04 में, बाईं ओर के पेड़ के मेनू में नीचे "सर्वर से कनेक्ट" है। उस पर क्लिक करें, यह सुझाव "smb: //foo.example.com" है। smb "cif" के लिए पुराना शब्द है, और यदि आप अपने सर्वर में डालते हैं और smb के साथ साझा करते हैं: // शुरुआत में, कनेक्शन काम करता है! मे वादा करता हु। यदि आपका हिस्सा एक नामित चीज़ है, तो स्लैश के बाद यह आवश्यक है, "smb: //foo.example.com/myshare"।

मैंने उसी तरह अन्य फ़ाइल प्रबंधकों का उपयोग किया है। प्रोटोकॉल "smb: //" होना चाहिए।


3
  1. आप उन सभी विवरणों को / etc / fstab में डाल सकते हैं ताकि आप सिस्टम स्टार्टअप पर मुहिम शुरू कर सकें। अगर विंडोज़ या एसएमबी सर्वर आईपी एड्रेस 192.168.1.1 पर है

    /etc/fstab
    //192.168.1.1/SharedFolder/    /mnt/linux_smb   cifs    username=winuser,password=TopSecret   0    0
    
  2. लिनक्स माउंट बिंदु के रूप में निर्देशिका बनाएं

    mkdir /mnt/linux_smb
    chmod 755  /mnt/linux_smb
    
  3. पहली बार इसे मैन्युअल रूप से माउंट करें

    mount -a
    
  4. अंततः त्रुटियों को पाया जा सकता है

    dmesg | tail 
    

3
  1. जब CIF / SMB के संस्करण लिनक्स और विंडोज के बीच संगत नहीं होते हैं, तो विशिष्ट समस्या संभव और बहुत निराशा होती है। उस स्थिति में आप बस fstab लाइन में मामूली छंद बना सकते हैं "श्लोक = 2.1"

    इसलिए, यदि विंडोज या एसएमबी सर्वर आईपी पते पर 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 और 4 पिछले उत्तर की तरह ही है।


1

मैंने कमांड लाइन से CIFS फाइल सिस्टम को माउंट करने और टेस्ट फाइल बनाने / हटाने के लिए थोड़ी स्क्रिप्ट (यह फेडोरा के लिए है) को एक साथ रखा। कुछ काम का हो सकता है:

#!/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

अलग-अलग बढ़ते तरीके कैसे काम करते हैं, यह समाप्त हो गया है, लेकिन कुछ ऐसा है जिस पर आप विचार कर सकते हैं

यदि आप सीधे / etc / fstab में अपनी साख दर्ज नहीं करना चाहते हैं, तो आप इसके बजाय एक माउंट विकल्प का उपयोग कर सकते हैं: क्रेडेंशियल्स = / अपने / पथ / यहाँ /। क्रेडेंशियल।

इसमें उपयोगकर्ता नाम = msusername पासवर्ड = mspassword होना चाहिए

फ़ाइल सहेजें और अपनी पसंद के संपादक से बाहर निकलें।

अनुमतियाँ chmod 600 में परिवर्तित की जानी चाहिए

यदि आपके पास एक एन्क्रिप्टेड होम डायरेक्टरी है और चाहते हैं कि आपका माउंट बूट पर बना रहे, तो सुनिश्चित करें कि फाइल को अपने होम डायरेक्टरी के बाहर रखें। में / आदि / या / मीडिया / एक उपयुक्त और आसानी से यादगार जगह हो सकती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.