使用 root 可以毫无问题地挂载另一个 Linux 共享。
root@crunchbang:/mnt# mkdir javalib
root@crunchbang:/mnt# mount -t cifs //10.1.3.7/javalib ./javalib -o username=guest
root 可以读取/写入共享目录,没有问题。
root@crunchbang:/mnt# ll
drwxrwx--- 9 500 users 0 Apr 13 17:59 javalib
root@crunchbang:/mnt# cd javalib
root@crunchbang:/mnt/javalib#
当尝试访问另一个用户下的目录时,即使该用户是“用户”组的一部分,它的权限也会被拒绝。
shawn@crunchbang:/mnt# cd javalib
bash: cd: javalib: Permission denied
答案1
正如评论之一中提到的,尝试使用以下选项安装共享:
-o uid=500,gid=users,nounix
或者
-o uid=500,gid=users,rw
或者这样做是为了避免与 CIFS POSIX 扩展有关的混淆,如中所述另一个答案在这里。
-o username=guest,defaults,noperm
根据您的系统, Linux 中systemd
和的引入udev
改变了文件系统再次挂载的方式。但是,我不确定 CIFS/Samba 共享如何受此影响。
答案2
根据马克·科恩的答案,您需要某种更改权限操作。
但 simplesudo chmod 777 javalib
会因另一个权限被拒绝而崩溃。您需要添加挂载选项-o username=guest,dir_mode=777,file_mode=666
以使目录对每个人都可执行。
如果此方法没有帮助,那么您可能需要添加选项,例如-o uid=$(whoami)
.
答案3
我也有这个问题,唯一对我有用的是:
sudo mkdir /mnt/logs
sudo mount.cifs //192.168.10.10/directory\ name/ /mnt/logs/ -o user=remote\ user\ name,rw,vers=1.0,dir_mode=0777,file_mode=0666,nounix
只需更换
192.168.10.10
通过远程计算机的IPdirectory\ name
通过远程目录绝对路径remote\ user\ name
通过用于身份验证的远程用户帐户vers=1.0
smb
由远程计算机上实现的协议版本决定
运行此命令后,它将提示您remote\ user\ name
输入密码。
只是不要忘记安装:sudo apt-get install cifs-utils
如果您对此命令行有任何问题,例如一些疯狂错误,例如:
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
您可以运行它来查看错误是什么
$ tail /var/log/kern.log
May 8 16:09:06 user-pc kernel: [265246.010808] No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
May 8 16:09:06 evandro-pc kernel: [265246.012935] CIFS VFS: cifs_mount failed w/return code = -22
在这种情况下,如果您在 Google 上搜索,您会看到错误是我运行命令时未指定参数vers=1.0
。
参考: