我可以访问 cifs 网络驱动器。当我将它安装在我的 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
当我深入网络驱动器并更改那里的所有权时,我收到错误消息,指出我无权更改文件夹的所有者。
我应该怎么做才能激活我的写权限?
答案1
您正在以 root 身份挂载 CIFS 共享(因为您使用了sudo
),因此您无法以普通用户身份进行写入。如果您的 Linux 发行版及其内核足够新,您可以作为普通用户安装网络共享(但在用户拥有的文件夹下),您将拥有写入文件的正确凭据(例如,将共享文件夹安装在您的计算机下的某个位置)。主目录,例如 显然$HOME/netshare/
,您需要在安装之前创建该文件夹)。
另一种方法是指定已安装的网络共享应使用的用户和组 ID,这将允许特定用户和潜在的组写入共享。添加以下内容您的坐骑选项:并将和分别uid=<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
如果服务器正在发送所有权信息,您可能需要添加forceuid
和forcegid
选项。
sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g),forceuid,forcegid, //server-address/folder /mount/path/on/ubuntu
答案2
我成功测试了以下命令:
sudo mount -t cifs -o username=[username],password=[password],uid=1001,gid=1001 //172.16.148.2/dfsgob01 /home/ususario/Documentos/benz-win
答案3
解决此问题的一种方法(如果您可以接受安全风险)是使用 CIFSnoperm
允许的选项全部用户可以读取和写入 CIFS 挂载。
我还没有测试过这个命令,但我相信这会起作用:
sudo mount \
-t cifs \
-o noperm \
//server-address/folder \
/mount/path/on/ubuntu
(您也可以通过文件添加此选项fstab
)