如何通过网络共享 NTFS 分区上的文件夹?

如何通过网络共享 NTFS 分区上的文件夹?

我在使用 Ubuntu 11.10,我想通过/dev/sda4网络共享自动挂载的 NTFS 分区 ( ) 上的文件夹。此网络的目的是在计算机之间共享文件,它主要包含 Windows 计算机。我/dev/sda4在 Windows 7 和 Ubuntu 上都使用此分区。使用 Nautilus,我右键单击目录,然后单击“共享选项”,然后选中三个复选框。但是,当我尝试应用设置时,它显示“无法更改文件夹“foldername”的权限”。

sudo blkid我把和的输出放在cat /etc/fstab下面。

sudo blkid

/dev/sda2: LABEL="Windows" UUID="481319C261268D8D" TYPE="ntfs" 
/dev/sda3: UUID="23dac5e8-aae7-43ac-964c-c8a5a033b0d7" TYPE="ext4" 
/dev/sda4: LABEL="Data" UUID="00F1B269675B86AE" TYPE="ntfs" 
/dev/sda5: UUID="6de8b757-f17e-4e36-935c-a3fd6012c628" TYPE="ext4" 
/dev/sda6: UUID="d504bae2-fad6-4f6a-b489-7719ad0fe3b3" TYPE="swap" 

cat /etc/fstab

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda3 during installation
UUID=23dac5e8-aae7-43ac-964c-c8a5a033b0d7 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda6 during installation
UUID=d504bae2-fad6-4f6a-b489-7719ad0fe3b3 none            swap    sw              0       0
/dev/sda4 /media/Data ntfs defaults,umask=007,gid=46 0 0 

我如何共享该文件夹?

答案1

经过一番搜索,我自己找到了解决方案:

首先,我必须授予我对 的所有权/dev/sda4,并且必须授予group读取others和执行权限。我通过更改 中的分区条目来实现这一点/etc/fstab

要做到这一点,我必须知道我的uidgid。所以我做的第一件事是在终端中输入以下命令:

id $USER

这将产生如下输出:

UID=1000(myname) GID=1000(myname) groups=1000(myname),4(adm),24(cdrom), ...

所以现在我知道我的uid和我的gid都是1000

您是否已经知道 NTFS 分区的名称?如果不知道,请在终端中输入此命令:

sudo blkid

并在一张纸上写下 NTFS 分区。

现在,为了更改权限,我/etc/fstab使用nano文本编辑器进行编辑。因此,您必须在终端中输入的下一个命令是:

sudo nano /etc/fstab

一直往下走并输入以下行:

/dev/sda4 /media/Data ntfs defaults,umask=0022,uid=YourUIDHere,gid=YourGIDHere 0 0

(您应该/dev/sda4用之前记下的 NTFS 分区来替换)。

解释:umask=0022将目录的(d)权限权限设置为drwxr-xr-x,以确保用户(我)可以读取、写入和执行(rwx),而和group只能others读取和执行(r-x)目录,这正是我想要的。

之后,我可以勾选这三个复选框而不会出现任何错误,并且该文件夹将通过网络共享。由于我不确定重新启动后共享设置是否会保留,因此我取消选中了复选框并添加了几行/etc/samba/smb.conf。我这样做了:

在终端中,我输入sudo nano /etc/samba/smb.conf

我向下滚动到最后一行,并将以下内容粘贴在那里:

[MyShare]
    comment = My Share
    path = /media/Data/FolderToBeShared
    browseable = yes
    guest ok = yes
    read only = yes
    create mask = 0755

我保存了文件,然后重新启动。现在可以通过网络访问该文件夹了。

答案2

只需将 ntfs 目录挂载为:

-o uid=current_user,gid=current_usergroup

获取 Exeleration-G 指向的当前用户和当前用户组:

id MyUserName

答案3

我能想到的最简单的解决方案是使用指向 NTFS 分区的符号链接。

我的做法是:

  • 在您的 Ubuntu 分区上创建一个可以共享的文件夹。
  • 将 Windows 分区上的文件夹链接到此文件夹内:
    ln -s /path/to/folder/on/ntfs /path/to/new/location/linkname
  • 将您创建的父文件夹设置为通过网络共享,根据需要选择任何额外选项(例如,允许访客等)。
  • 在权限选项卡中单击“将权限应用于封闭文件”。当然,并不是每个权限都会被应用,但读取权限应该足够了。

我自己还没有测试过这个,但如果我理解正确,它应该能够工作。

相关内容