Я использую OpenSuSE 12.1 с общими домами через LDAP и NFS. ldap хранит карты. Моя проблема в том, что я не могу монтировать общие папки при загрузке. Это работает только при ручном перезапуске службы autofs. На CentOS 6.3 такой проблемы нет.
Мой /etc/nsswitch.conf
:
passwd: files sss
group: files sss
hosts: files mdns4_minimal [NOTFOUND=return] dns
networks: files dns
services: files
protocols: files
rpc: files
ethers: files
netmasks: files
netgroup: files nis
publickey: files
bootparams: files
automount: files ldap
aliases: files
Мой /etc/openldap/ldap.conf
:
SIZELIMIT 20
TIMELIMIT 15
#DEREF never
TLS_REQCERT demand
uri ldap://10.0.0.1
base dc=domain,dc=com
Мой /etc/sssd/sssd.conf
:
[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam
domains = domain.com
[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3
[pam]
reconnection_retries = 3
[domain/domain.com]
id_provider = ldap
auth_provider = ldap
min_id = 500
max_id = 30000
ldap_schema = rfc2307
ldap_uri = ldaps://ldap-ms.local, ldaps://ldap-sl.local, ldap://ldap
ldap_search_base = dc=domain,dc=com
ldap_user_search_base = ou=People,dc=domain,dc=com
ldap_group_search_base = ou=Group,dc=domain,dc=com
ldap_tls_cacert = /etc/pki/CA/certs/domain-cacert.pem
ldap_tls_reqcert = hard
cache_credentials = true
enumerate = True
Мой /etc/sysconfig/autofs
:
MASTER_MAP_NAME="auto.master"
TIMEOUT=300
BROWSE_MODE="yes"
MAP_OBJECT_CLASS="automountMap"
ENTRY_OBJECT_CLASS="automount"
MAP_ATTRIBUTE="ou"
ENTRY_ATTRIBUTE="cn"
VALUE_ATTRIBUTE="automountInformation"
USE_MISC_DEVICE="yes"
Я что-то пропустил?
решение1
Этот вопрос был поднят сообществом, и он довольно старый.
За эти годы произошло много всего, Майкл упомянул одно решение — использование fstab. И изначальной проблемой, скорее всего, был do due execution-order во время загрузки. Сеть могла быть не готова, какая-то служба могла не запуститься и т. д.
Есть еще одно решение, если вы используете systemd (сомневаюсь, что автор публикации использовал его в то время, но если вы попали сюда через поиск, а это так), вот еще одно решение, использующее функцию автоматического монтирования systemd.
[Unit]
Description=Network mapping
After=network.target
[Mount]
What=10.0.0.1:/share/stuff
Where=/mnt/remote_share
Type=nfs
Options=_netdev,auto
[Install]
WantedBy=multi-user.target
Единственный недостаток этого в том, что вам нужно быть осторожным с тем, как вы называете скрипт обслуживания. Лучше всего это описатьздесь, но tl;dr-версия заключается в том, что файл службы должен быть назван в соответствии с путем, который он будет монтировать. И все прямые слеши в указанном пути должны быть заменены на -
имя файла службы для работы автоматического монтирования. Вышеприведенный пример /mnt/remote_share would be a service-file called
mnt-remote_share.mount`
Есть кучапараметрычтобы пойти с этим.
Если systemd вам не по душе, есть также много нового материала наавтофссторона, которая делает довольно хорошую работу(все это немного сложновато на мой вкус).
Если вместо этого вы хотите использовать запись fstab, но при этом использовать функцию автоматического перехвата systemd, вот как может выглядеть ваш fstab:
10.0.0.1:/share/stuff /mnt/remote_share nfs noauto,x-systemd.automount,x-systemd.device-timeout=10,timeo=14,x-systemd.idle-timeout=1min 0 0
А если ни один из этих вариантов не сработает, есть решение с использованием чистого fstab:
10.0.0.1:/share/stuff /mnt/remote_share nfs defaults,soft,rsize=32768,wsize=32768,timeo=900,retrans=5,_netdev 0 0
Я дам несколько ссылок на хорошую документацию по этой теме (не забывайте, что это другая ОС. Но на момент написания этой статьи их Wiki была одной из лучших на рынке):
решение2
Почему бы просто не добавить места монтирования в ваш fstab?
Вы также можете использовать sshfs. Настройте ssh для использования аутентификации с открытым ключом.
На сервере:
sudo apt-get install openssh-server
Измените или добавьте ServerKeyBits 2048 в /etc/ssh/sshd_config
На клиенте
ssh-keygen -t rsa -b 2048
ssh-copy-id с клиентского компьютера на сервер. Используйте свой пароль для вашего пользователя на серверной машине для входа в систему.
Измените /etc/ssh/sshd_config: PasswordAuthentication no, UsePAM no.
Я также использую другие настройки для защиты ssh, но для этого примера они не нужны.
Если вы находитесь за пределами своей локальной сети, настройте обновление dyndns или noip и настройте переадресацию портов на маршрутизаторе, чтобы порт 23 или любой другой порт, который вы решите использовать для сокрытия службы, перенаправлялся на IP-адрес сервера. Если вам нужна помощь с этим, просто спросите.
Затем:
sshfs USER@SERVERADDRESS:/mnt/DRIVELOCATION /PATH/TO/MOUNT/DRIVE/TO
Я установил эту команду в качестве запуска в главном меню для некоторых дисков и для других в fstab.
Я знаю, что это работает, потому что я использую эту же настройку плюс hardening каждый день.
Таким образом вы можете избавиться от необходимости в autofs и его требуемых накладных расходах.