linux - 为什么 mount.cifs 不使用我的凭证文件?
问题描述
我有一个脚本需要将 Windows 共享挂载到 Linux 机器上,运行脚本,然后卸载它。尽管遵循 mount.cifs 的手册页,该命令仍无法识别凭证文件。
我确保存在文件共享包:
sudo yum install samba-client samba-common cifs-utils
网络共享将挂载到的已创建驱动器
sudo mkdir /share/
创建凭证文件
sudo vim /root/.cifs
.cifs 文件内容
username=uname
password=pword
创建了我的 .sh 文件
sudo vim /usr/bin/scritp.sh
script.sh 内容
#!bin/bash
mount.cifs //ipaddress/share /share/ -o credentials=/root/.cifs
<script which makes use of the share>
umount /share/
使脚本可执行
sudo chmod u+x /usr/bin/script.sh
测试脚本
cd /usr/bin
sudo ./script.sh
尽管指定了凭据文件,但仍然提示我输入 root 用户的密码(连接到没有“root”用户的 Windows 共享)运行脚本的输出:
Password for root@//ipaddress/share:
谁能弄清楚我做错了什么?它似乎与我读过的所有文档一致。
解决方案
出于某种原因,将脚本修改为以下内容有效:
mount -t cifs -o credentials=/root/.cifs //ipaddress/share /share/
cd /share/
./script.sh
umount /share/
不知道为什么,因为 mount -t cifs 只是调用 mount.cifs,但如果你遇到同样的问题,我最终就是这样解决的。
推荐阅读
- regex - LoadXml - 根级别的数据无效。第 1 行,位置 1
- postgresql - 从返回多列的函数中选择
- r - 从文本字符串中获取字符串的唯一计数
- dynamics-crm - Teams 与 Microsoft Dynamics CRM 365 的集成
- php - php 获取总和数组,但有“通知”未定义的偏移量:0
- bash - rsync 将内容从 joe@remote:/foo/bar/baz 复制到 b 而不创建 b/foo/bar/a
- python - 如何将 Google Cloud Firestore 本地模拟器用于 python 和测试目的
- css - CSS段落从下到上
- javascript - 如何取消重音符号的onkeydown
- c++ - 如果与以前没有不同,则谷歌记录单个输出