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

Exe*_*n-G 18 partitioning samba ntfs share shared-folders

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

我已经把输出sudo blkidcat /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" 
Run Code Online (Sandbox Code Playgroud)

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 
Run Code Online (Sandbox Code Playgroud)

如何共享此文件夹?

Exe*_*n-G 17

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

首先,我必须授予自己对 的所有权/dev/sda4,并且必须授予groupothers阅读和执行权限。我通过更改/etc/fstab.

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

id $USER

这将给出如下输出:

UID=1000(myname) GID=1000(myname) groups=1000(myname),4(adm),24(cdrom), ...
Run Code Online (Sandbox Code Playgroud)

所以现在我知道 myuid和 mygid都是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
Run Code Online (Sandbox Code Playgroud)

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

说明:umask=0022设置目录的(d)权限的权限drwxr-xr-x,以确保用户(我)可以读,写和执行(rwx),而groupothers只能读取和执行(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
Run Code Online (Sandbox Code Playgroud)

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