Гори CIFS поділяються з автофайлами


12

У мене працює система RHEL 5.5, і я намагаюся встановити спільний доступ до Windows на сервері за допомогою autofs. (Через те, що мережа не готова до запуску, я не хочу використовувати fstab.) Я можу монтувати спільні папки вручну, але autofsпросто не монтую їх.

Ось файли, з якими я працюю:

Наприкінці /etc/auto.master, я маю:

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

У /etc/auto.testмене є:

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

Потім перезапускаю autofsслужбу.

Однак це не працює. ls-введення каталогу не дає жодних результатів. Я дотримувався всіх цих посібників в Інтернеті, і я або їх не розумію, або вони.just.don't.work.

Дякую


Ви щось отримуєте в журналах?
c1tadel1

Де колоди? Я намагався /var/log/messagesбезрезультатно, і немає файлу syslog.
Phanto

Ви шукаєте в потрібному місці. Спробуйте "echo 1> / proc / fs / cifs / cifsFYI", щоб трохи збільшити повідомлення про налагодження і спробувати dmesg.
c1tadel1

У мене немає /proc/fs/cifs/каталогу, тому я не можу запустити команду. Я також не можу mkdir cifs, навіть як root. Служба працює, але я серйозно не знаю, чому це просто не працює. Можливо, мені доведеться зв’язатися із службою підтримки RH.
Phanto

Забудьте про розташування Pro. У вас навіть встановлений модуль? Виконати це. ls -al / lib / uname -rmodule / / kernel / fs / cifs ви повинні побачити cifs.ko
c1tadel1

Відповіді:


9

Уже має бути /etc/auto.smb, використовуйте це та додайте наступний рядок до /etc/auto.master:

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

Тепер усі акції cifs відображатимуться під / cifs:

ls /cifs/<server>

покаже всі наявні акції. Ви можете поставити деякі параметри в /etc/auto.smb для монтажу з певними режимами. У мене є auto.smb, який я десь там знайшов і змінив, щоб зробити саме це:

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

Це зробить те, що ви хочете. Я сам користувався цим.


Дякую. Я повністю забув про це питання. Я фактично зв’язався з підтримкою Red hat, і варіанти, які ви згадуєте в обраних вами варіантах, працюють. Ключовим моментом було розміщення інформації auto.miscз будь-якої причини. Це смішно, адже нам навіть цього більше не потрібно робити.
Phanto

Це корисно, але, на жаль, я не можу налаштувати точки кріплення, що було початковою метою питання (і що я прийшов сюди, щоб дізнатися)
Carlos Rendon

Як цікавий розвиток, використання цього пристрою з пристроєм ЕМС (не впевнений модуль) вимагало від мене видалити -N з лінії smbclient. Зустріли цю проблему сьогодні.
lsd

Також у файлі облікових даних не повинно бути пробілів між знаками рівності. Це спричинило купу помилок, поки я не з’ясував це. Два різних документації говорили про різні речі.
lsd

8

Оскільки я просто провів цілий ранок, налагоджуючи цю саму проблему. Дозвольте пояснити, що сталося вище.

/etc/auto.master

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

Це означає, що я хочу щось встановити на /testта для прочитаних деталей/etc/auto.test

/etc/auto.test

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

Це означає, що як підпапка того, що було вказано в auto.master, будь ласка, встановіть тест із наступною інформацією. (тобто кріплення буде таким,/test/test як правильно вказано slm).

Це означає, що ls /test/testбуде відображено вміст//server/test

Щоб досягти початкової мети / test -> // сервер / тест, вам потрібно наступне:

/etc/auto.master

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

Пару інших приміток. Наступні параметри кріплення я вважаю корисними.

rw - змонтуйте його для читання / запису

noserverino - видаляє повідомлення про помилку про підтримку номера inode

credentials=[credential file]- це дозволяє створити окремий файл з обліковими записами в них. Він має такий формат:

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

EDIT - 17.06.2013 13.28 GMT GMT-8

slm у коментарях вказав, що встановлення до кореня файлової системи може бути небезпечним. lsd в коментарях пропонує вирішення питання, яке полягає у створенні симпосилання з кореня файлової системи до іншого місця, де ви зможете встановити, що не перетинатиметься з чимось загальним. Наприклад, якщо ви хотіли, щоб / тест був монтом, то ви насправді змонтуєте матеріал до / net / the_test_mount, а потім створили б посилання / тест, який вказує на / net / the_test_mount


3
Це небезпечно в тому сенсі, що якби хтось додав usr або etc, наприклад, до /etc/auto.test, що ці кріплення фактично перекривали б ці каталоги в системі. Зрозуміло, що це малоймовірно, але, як правило, монтажі не виконуються на кореневому рівні.
slm

Чи є кращий спосіб забезпечити кореневу версію за допомогою autofs? Якщо так, будь ласка, оновіть свою відповідь або залиште коментар, і я можу оновити свою.
Карлос Рендон

1
Скажімо, монтажі переходять у / net, скажімо, і мають символічні посилання від / test до / net / server / test (чи будь-що інше). Тепер, коли ви CD / net та ls чи що завгодно, він буде монтуватися.
lsd

4

Я щойно робив це на вікні CentOS 5.6, і я думаю, що частина вашої проблеми може бути з вашим файлом auto.test. У його теперішній формі ви створюватимете точку монтажу / тестування, а потім єдину масу тесту під нею, тобто / test / test. Також ви можете додати перемикач --ghost до рядка auto.master так:

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

Перемикач --ghost створює заглушки точок монтажу, навіть якщо певна частка не монтується активно.

Погляньте на цю сторінку Вікі та поради щодо вікі CentOS щодо способів монтажу акцій SMB / CIFS.

Поради щодо монтажу

  • Windows Share = \ mysmb \ share1
  • Unix Dir. = / тест / dir1

ідея №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

ідея №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/&

Дякую за вашу відповідь Будь ласка, дивіться мій коментар до lsd.
Phanto

1
Боже мій ... - привид повинен бути типовим. Я на fedora / rhel / centos, вона читає карту, але коли я заходжу всередину папки, нічого там немає ... У мене тоді була шалена ідея робити, cd "sharename"і вона чарівно увійшла до папки, яка lsкаже, що не існує ... arrgh
Рей Фосс

-1

Якщо ви використовуєте cifs, рекомендується також використовувати _netdevпараметр.

_netdev це тому, що файлова система знаходиться на пристрої, який потребує доступу до мережі, це використовується для того, щоб система не намагалася змонтувати ці файлові системи, поки мережа не була включена в хост-системі.


1
Виправлено кілька форматних та орфографічних помилок. Вам, мабуть, слід вказати, як і куди поставити цей параметр, використовуючи конфігурацію з питання також як приклад.
Лев
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.