Linux – Mount CIFS Network Drive with Write Permissions and Chown

chowncifslinuxmountpermissions

I have access to a cifs network drive. When I mount it under my OSX machine, I can read and write from and to it.

When I mount the drive in ubuntu, using:

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

I am not able to write to the network drive, but I can read from it.
I have checked the permissions and owner of the mount folder, they look like:

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

I cannot change the owner, because I get the error:

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

When I descend deeper into the network drive, and change the ownership there, I get the error that I have no permission to change the folderĀ“s owner.

What should I do to activate my write permission?

Best Answer

You are mounting the CIFS share as root (because you used sudo), so you cannot write as normal user. If your Linux Distribution and its kernel are recent enough that you could mount the network share as a normal user (but under a folder that the user own), you will have the proper credentials to write file (e.g. mount the shared folder somewhere under your home directory, like for instance $HOME/netshare/. Obviously, you would need to create the folder before mounting it).

An alternative is to specify the user and group ID that the mounted network share should used, this would allow that particular user and potentially group to write to the share. Add the following options to your mount: uid=<user>,gid=<group> and replace <user> and <group> respectively by your own user and default group, which you can find automatically with the id command.

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

If the server is sending ownership information, you may need to add the forceuid and forcegid options.

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