安装 Windows 共享的正确方法

pet*_*hor 21 permissions windows fstab mount

我通过将以下行添加到我的 Ubuntu 11.10 系统中,将 Windows 共享安装到了/etc/fstab

//serveraddr/sharedfolder /mnt/foldername/ smbfs credentials=/home/myname/.smbpasswd 0 0

使用这里教程

但是权限有问题。挂载文件夹的所有者是root. 我不能在挂载点创建任何文件夹或文件,因为我没有成为根。即使我无法通过以下方式将所有权更改为我的默认用户

sudo chown -R myname .

我用谷歌搜索,发现这可能源于 Windows 文件格式 (fat32/ntfs) 无法保存所有权的事实。但是当我通过 samba 连接到相同的位置时

smb://serveraddr/sharedfolder

通过提供我的凭据,我有权在不是 root 的情况下进行写入。

我怎样才能让我写入已安装的文件夹?

Bru*_*ira 30

不要使用smbfs,新协议的名称是cifs包的一部分cifs-tools(如果您还没有安装,请安装它。

而是在您的 fstab

//server/share /mnt/mountname cifs username=server_user,password=user_password,iocharset=utf8,file_mode=0777,dir_mode=07??77 0 0
Run Code Online (Sandbox Code Playgroud)

在哪里

server = your server that you are trying to access
share = mapped share on that server
/mnt/mountname = any folder that you created with sudo /mnt/<folder_name>
username = the name of the user on that server that can access the mount
password = the password for that user
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用 进行测试sudo mount -a,如果您没有遇到任何故障,您可以安全地重新启动以找到您的共享安装在/mnt/<folder_name>.

要使用凭证文件而不是usernamepassword参数,fstab您可以使用这两行创建一个文件,以便您的用户名和密码不会在 fstab 中明确显示

sudo nano /etc/cifspwd

将这些行添加到文件中

username=<username on server>
password=<password for that username>
Run Code Online (Sandbox Code Playgroud)

按 ctrl+x 键,并在询问时按y保存文件。

用它来保护它

sudo chmod 600 /etc/cifspwd

使用此行而不是前一行

//server/share /mnt/mountname cifs credentials=/etc/cifspwd,iocharset=utf8,file_mode=0777,dir_mode=07??77 0 0
Run Code Online (Sandbox Code Playgroud)

在此之后,重新启动将是安全的,您应该挂载并保护您的详细信息。

  • 我认为值得注意的是,在 Ubuntu 12.10 中,“mode”不是一个有效参数。相反,我不得不使用“file_mode”。另外,我不确定我是否完全同意 0777 的一般权限。如果您只是为自己安装私有共享,我认为类似“file_mode=0660,dir_mode=0770”的内容会更合适。 (2认同)