我正在使用 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
这个问题被社区提出了,而且已经很老了。
这些年来发生了很多事情,Michael 提到了一个解决方案,即使用 fstab。最初的问题很可能是在启动时按执行顺序执行的。网络可能尚未准备好,某些服务可能尚未启动等。
如果你正在运行 systemd,还有另一种解决方案(我怀疑 OP 当时是否这样做了,但如果你通过搜索最终到达这里,你确实这么做了),这是使用 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
如果这些都不起作用,还有 pure-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 中其他驱动器主菜单上的启动器。
我知道它有效,因为我每天都使用相同的设置加上强化。
这样您就可以摆脱对 autofs 的需要及其所需的开销。