如何在Cygwin中挂载域内SMB共享?权限问题求解
在Cygwin中挂载SMB共享并解决权限拒绝问题
问题根源
通过SSH连接的Cygwin会话不会继承Windows系统中已挂载的网络驱动器(比如Z盘),所以看不到这些映射盘。而Cygwin自带的mount命令仅实现了基础功能,无法直接指定uid、gid等SMB挂载必需的权限参数,导致简单挂载后出现权限拒绝错误。
解决方案
方法1:先通过Windows命令映射共享,再挂载到Cygwin
在Cygwin终端中调用Windows的
net use命令建立网络映射:net use X: \\your-server\your-share /user:your-username your-password替换
X:为你想要的盘符,your-server/your-share为目标共享的地址,your-username/your-password为共享的访问凭据。如果不想明文输密码,可以省略your-password,终端会提示输入。使用Cygwin的
mount命令将映射盘挂载到Cygwin目录,同时指定uid和gid(先通过id命令查看自己的uid和gid值):# 查看当前用户的uid和gid id # 挂载到指定目录,替换uid/gid为实际数值 mount -t drvfs X: /mnt/your-share -o uid=1000,gid=50
方法2:直接用Cygwin的smbfs挂载共享
确保你已经安装了Cygwin的smbfs包(安装时在包列表中勾选),然后直接挂载:
mount -t smbfs //your-username:your-password@your-server/your-share /mnt/your-share -o uid=1000,gid=50
建议省略密码以避免明文泄露,终端会弹出输入提示。
关键说明
指定uid和gid是解决权限拒绝的核心——Cygwin需要将SMB共享的文件权限映射到当前Cygwin用户的身份,否则会因权限不匹配无法访问。
内容的提问来源于stack exchange,提问作者mauricev
相关产品推荐
相关产品推荐

