挂载CIF网络驱动器:写入权限和权限


99

我可以访问CIF网络驱动器。将其安装在OSX机器下时,就可以对其进行读写操作。

当我在ubuntu中安装驱动器时,请使用:

sudo mount -t cifs -o username=${USER},password=${PASSWORD} //server-address/folder /mount/path/on/ubuntu

我无法写入网络驱动器,但可以读取它。我已经检查了安装文件夹的权限和所有者,它们看起来像:

4.0K drwxr-xr-x  4 root root    0 Nov 12  2010 Mounted_folder

我无法更改所有者,因为出现错误:

chown: changing ownership of `/Volumes/Mounted_folder': Not a directory

当我深入网络驱动器并在那里更改所有权时,出现错误消息,我无权更改文件夹的所有者。

我应该怎么做才能激活我的写权限?


文件系统是否列在/ etc / fstab中?如果是这样,该条目有哪些选择?
珍妮·D

3
您也可以使用noperm我对这个问题的回答中所述的mount选项:unix.stackexchange.com/a/375523/16287。这将为所有用户提供对CIFS安装的读写访问权限。
丹尼尔(Daniel)

Answers:


137

您正在以root用户身份挂载CIFS共享(因为您已使用sudo),因此您不能以普通用户身份进行写操作。如果您的Linux发行版及其内核足够新,可以将网络共享安装为普通用户(但在用户拥有的文件夹下),则您将具有正确的凭据来写入文件(例如,将共享文件夹安装在您的目录下) home目录,例如$HOME/netshare/。显然,您需要在挂载之前创建文件夹)。

另一种选择是指定安装的网络共享应使用的用户和组ID,这将允许该特定用户和潜在的组写入共享。将以下选项添加到mountuid=<user>,gid=<group>并分别用您自己的用户和默认组替换<user><group>,您可以使用id命令自动找到它们。

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g) //server-address/folder /mount/path/on/ubuntu

如果服务器正在发送所有权信息,则可能需要添加forceuidforcegid选项。

sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g),forceuid,forcegid, //server-address/folder /mount/path/on/ubuntu

它为我工作!但是我们应该补充一点,如果共享文件夹位于具有登录域的PC上,则应该添加该选项domain。这样的事情:sudo mount -t cifs -o username=${USER},password=${PASSWORD},dom=${DOMAIN}, uid=<user>,gid=<group> //server-address/folder /mount/path/on/ubuntu实际上,域可以进入“用户名”选项,但是请记住,您必须使用/而不是`, like username = DOMAIN / user.name`。
若昂里斯本

对,那是正确的。:-)可能需要通过“ domain =“选项或用户名来指定域或工作组(对于旧版Windows)。有时甚至需要指定要使用的加密方案或CIFS版本。但是所有这些都不是这个问题的一部分,因此我将其放在一边。:-)
惠更斯岛2014年

2
这正是我所需要的。我在/ etc / fstab中有一个条目,可以在启动时自动挂载网络驱动器。我无法写入安装文件,因此我添加了uid = <myUserID>来添加如下内容://192.168.1.7/public /colmustang cifs username=<uname>,password=<upassword>,uid=<myUserID> 0 0
James

5
@ 71GA username是用于身份验证的远程登录名。该uid是你想睡觉的所有文件/文件夹的本地用户ID。因此,用户名与uid分离,用户名是远程用户登录名,而uid是您的本地用户ID。请注意,如果您的服务器是Samba,并且在客户端和服务器上都使用LDAP或其他集中式帐户,则可能是同一件事:-)。
惠更斯(Huygens)

1
@Tak好问题。查看编辑后的答案。
吉尔斯'18

20

我成功测试了以下命令:

sudo mount -t cifs -o username=[username],password=[password],uid=1001,gid=1001 //172.16.148.2/dfsgob01 /home/ususario/Documentos/benz-win

19
使用“标识-u <用户名>”和“ID -g <用户>获得UID和GID分别。
NVD

3
请注意,您可以按照man mount.cifs
jstricker

2
为了避免在命令旁边写密码,只需在通话过程中省略password选项-提示符将要求您输入密码,以便可以在看不见的地方键入密码。
conceptdeluxe
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.