Как мне установить общий ресурс CIFS?

Я использую Ubuntu 11.10 и пытаюсь смонтировать сервер freenas. У меня есть сервер для совместного использования в cifs и nfs без удачи.

Я пробовал smbmount //192.168.1.### /mnt/

Я не новичок в Ubuntu, но далеко не опытный пользователь, поэтому я бы предпочел вариант с графическим интерфейсом, если он доступен.

Как мне установить ресурс cifs в 11.10?

70
задан 9 August 2017 в 01:52

8 ответов

Существует pyNeighborhood , который представляет собой графический интерфейс для монтирования общих ресурсов самбы и доступен для загрузки в центре программного обеспечения.

Хорошая статья находится здесь о том, как его настроить и использовать.

Сначала установите cifs utils

sudo apt-get install cifs-utils

В качестве альтернативы, основная команда терминала:

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

Если вы хотите увидеть свое монтирование в Nautilus, было бы хорошо создать подпапку сначала в / media / 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 паролей) в момент монтирования.

Прочтите документацию Samba здесь о том, как это сделать, и правильно настройте ее для монтирования при запуске и т. д. [119 4962]

101
ответ дан 9 August 2017 в 01:52

Энэ нь map7-ийн хэлснээр, гэхдээ та файлыг драйвер дээрээ өөрчлөх болгонд root зөвшөөрлийг ашиглахыг хүсэхгүй байгаа бол хэрэглэгчийн хавтас руу холбоод, 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
15
ответ дан 9 August 2017 в 01:52

1) Моя общая папка samba отображается в Caja («проводник» ubuntu 16.04) как

smb://thinkpad/ddrive/

Это хороший лакмусовый тест, нет проблем с подключением / путём.

( caveat : Если вас спросят у caja о парольных учетных данных с вашего Windows-компьютера, вы можете переключить домен с WORKGROUP на имя машины, то есть «thinkpad». Тогда подойдут действительно локальные учетные данные вашего диска.)

2) Если это сработает, вот команда:

sudo mount -t cifs -o username=frank //thinkpad/ddrive /mnt/ddrive
  • Убедитесь заранее, что / mnt / ddrive существует как пустой каталог.
  • Вы также можете добавить , пароль = supersecret непосредственно (без пробела) после username =, но вы также можете дождаться запроса при вводе команды.
5
ответ дан 9 August 2017 в 01:52
  1. Существует конкретная проблема, которую очень сложно решить, когда версии CIF / SMB несовместимы между Linux и Windows. В этом случае вы можете просто внести незначительные изменения в строку fstab, добавив "vers = 2.1"

    Итак, если Windows или SMB-сервер находится на IP-адресе 192.168.1.1

     / etc / fstab
    
     //192.168.1.1/SharedFolder/ / mnt / linux_smb cifs vers = 2.1, имя пользователя = winuser, пароль = TopSecret 0 0
     
  2. Шаги 2, 3 и 4 остаются такими же, как и в предыдущем ответе.

3
ответ дан 9 August 2017 в 01:52

Я не согласен с утверждением, что корень всегда необходим для того, чтобы cifs соединения проходили. Это правда, это всегда необходимо для CLI smbmount, но файловый менеджер, такой как nautilus, имеет возможность монтировать разделяемый ресурс cifs и не обязательно быть root.

Я не использую Gnome, но у меня все еще установлен Nautilus. Запустите его в терминале, чтобы предотвратить его попытку захвата рабочего стола

$ nautilus --no-desktop &

В Ubuntu 16.04 в нижней части левого дерева находится меню "Connect to Server" (Подключиться к серверу). Щелкните по этому пункту, предложение типа "smb://foo.example.com". smb - это старое слово для "cifs", и если вы вставите в свой сервер и поделитесь с smb:// в начале, соединение действительно работает! Я обещаю. Если Ваш ресурс имеет имя, оно требуется после косой черты "smb://foo.example.com/myshare".

Я использовал другие файловые менеджеры таким же образом. Протокол должен быть "smb://".

3
ответ дан 9 August 2017 в 01:52
  1. Вы можете поместить все эти детали в / etc / fstab, чтобы вы могли монтировать каталоги при запуске системы. Если Windows или SMB-сервер находится на IP-адресе 192.168.1.1

     / etc / fstab
     //192.168.1.1/SharedFolder/ / mnt / linux_smb cifs имя пользователя = winuser, пароль = TopSecret 0 0
     
  2. Создать каталог как точку монтирования linux

     mkdir / mnt / linux_smb
    chmod 755 / mnt / linux_smb
     
  3. Впервые смонтируйте это вручную

     mount -a
     
  4. Возможные ошибки можно найти в

     dmesg |  хвост
     
3
ответ дан 9 August 2017 в 01:52

исчерпаны сведения о том, как работают различные методы монтажа, но есть кое-что, что вы можете рассмотреть

если вы не хотите вводить свои учетные данные непосредственно в / etc / fstab, вы можете вместо этого использовать параметр монтирования: credentials = / your / path / here / .credentials

это должно содержать имя пользователя = msusername пароль = mspassword

Сохраните файл и выйдите из редактора выбора.

разрешения должны быть изменены на chmod 600

, если у вас есть зашифрованный домашний каталог и вы хотите, чтобы ваше монтирование работало при загрузке, убедитесь, что файл находится за пределами вашего домашнего каталога. в / etc / или / media / может быть подходящим и легко запоминающимся местом.

1
ответ дан 9 August 2017 в 01:52

Я собрал небольшой скрипт (он предназначен для Fedora), чтобы смонтировать файловую систему 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
ответ дан 9 August 2017 в 01:52

Другие вопросы по тегам:

Похожие вопросы: