Ubuntu 13.10/W7 双启动
我在单独的 NTFS 分区 Data 上有一个很大的照片文件夹 My Pictures,我可以从 Windows 和 Ubuntu 访问它。我想让这个文件夹以只读方式从我妻子的 Ubuntu 用户帐户访问。我尝试使用 Nautilus 更改权限,但它不允许我这样做。网上关于文件夹共享的建议层出不穷,但我找不到任何适用的建议,似乎一切都假设文件夹必须位于主目录中。有没有相对简单的方法来实现这一点?
答案1
1.添加两个用户到同一组。
为了使两个用户能够以相同的权限访问该文件夹,您需要将他们添加到同一个用户组。
找出您的用户所属的群组。
实现此目的的最简单方法是将第二个用户添加到您自己的用户组。因此,您必须找出您自己的组。它通常与您的用户名同名。您可以在以您的用户身份登录后在 shell 中键入以下内容来找到它:
groups
输出应该是这样的:
<somegroupname> adm cdrom sudo dip plugdev lpadmin sambashare
第一个条目是
<somegroupname>
您的主要组,默认情况下是用户组。将第二个用户添加到组。
要将第二个用户添加到您的用户组,请在以以下身份登录时输入
root
:usermod -a -G <group> <user>
如果没有错误,则不会有输出。
查找 UID 和 GID您的用户和群组。
您需要使用 sed 命令来查看挂载分区的所有者用户和所有者组,并根据其 ID 进行识别。输入以下命令来查找用户 ID:
id -u
以您的用户身份登录。通过执行以下代码查找组 ID:
id -g
以您的用户身份登录。
2. 确保分区已安装正确的umask满足您的需求。
确定umask(维基百科有一个非常详细的解释,如果你有兴趣的话)是合适的。
简而言之,umask 是通常的 unix 的反向掩码文件系统权限,它们基本上分为
read
、write
和execute
,简而言之r
、w
和x
。它们在文件系统级别上由r=4
、w=2
和的八进制值表示x=1
。如果您想要组合权限,只需添加值即可,例如 的值6
(看起来像“rw-
”)将允许用户读取和写入文件。系统上每个文件或目录都有三组权限,第一组权限与文件所有者用户有关,第二组权限与所有者组有关,第三组权限与所有其他用户有关。如果您输入
ls -l
,您可以通过如下输出查看文件夹中每个文件的权限:-rw-r----- 1 david coworkers 241232 Apr 10 21:17 test.txt
上面一行中的权限将分为第一个
-
,即引用文件类型的位(即directory
或link
),rw-
和r--
,---
这将允许用户david
读取和写入文件并允许组中的任何人coworkers
读取它,而其他任何人都不允许对该文件进行任何操作。考虑到这一点,您会得出结论,您主要想要设置与组有关的 umask 部分,因为您将您的妻子添加到了您的组中,因此可以通过管理组的权限来管理你们两个人的权限。
正如我所说,umask 是权限的反向掩码 - 这意味着您取数字
8
并减去要应用的权限值,分别为user
、group
和others
,即5
和read
。这些是大多数 Linux 发行版为和execute
设置的默认权限- 使用此 umask 创建的文件最终以 -permissions 结尾,目录以 结尾。group
others
4
5
基本上,您想授予您和妻子对所有文件的完全访问权限,因此我建议使用类似
002
或 的umask003
。找出您需要配置/检查的分区。
您可以执行许多命令来找出需要检查并配置的分区或设备。 或 的输出
df
应该blkid
可以fdisk -l
帮助您找到正确的分区或设备。我通常使用df -h
输出内容如下
Filesystem Size Used Avail Use% Mounted on /dev/sda2 8,0G 6,5G 1,2G 85% / /dev/sda3 233G 137G 96G 59% /mnt/data
和
blkid -t TYPE=ntfs
其结果如下:
/dev/sda3: UUID="B474E96674E92BB4" TYPE="ntfs"
编辑您的
/etc/fstab
文件。以 root 身份登录后,使用编辑器打开 fstab 文件,如下所示
vim /etc/fstab
并找到有关 ntfs 分区的行,该行由
UUID
、设备名称(即/dev/sda3
)和/或挂载点(即/mnt/data
)标识。将其更改为以下内容(使用您之前收集的信息):# <file system> <mount point> <type> <options> <dump> <pass> /dev/sda3 /mnt/data ntfs uid=1000,gid=1000,umask=0003 0 0
或者
# <file system> <mount point> <type> <options> <dump> <pass> UUID="B474E96674E92BB4" /mnt/data ntfs uid=1000,gid=1000,umask=0003 0 0
通过设备名称或 UUID 来定义分区。
注意不要删除已经设置的选项,当然,此分区的选项部分中不应有任何重复项。
重新启动您的电脑。
如果我没记错的话,这将是唯一的选择,因为 unix 权限不会永久保存到 NTFS 结构中,但系统只会在安装时记住它们。因此,使用 和 设置所有者、组和权限可能chown
不会长期有帮助,但只会在设备再次卸载之前有帮助 - 最迟会在您下次关闭 PC 时。chgrp
chmod
[编辑以确保完整性]
作为我的第一条评论表明,可能一个方法将 unix 权限保存到 ntfs 文件系统,但我无法验证这一点,因为我自己没有尝试过。我个人使用上面描述的方法。
答案2
你可以像这样更改权限
sudo chmod -R 754 /mypictures
chmod 命令设置文件或文件夹的权限。
chmod 命令使用三位数代码作为参数和文件或文件夹位置。
在示例中,
7 – 所有者(当前用户)
5 – 组(由所有者设置)
4 – 其他任何人
基本概念:
执行为 1、写入为 2 且读取为 4。
这些基本权限的总和构成了权限的组合:
0 – 没有权限,此人无法读取、写入或执行
1 – 仅执行
2 – 只写
3 – 仅执行和写入 (1 + 2)
4 – 只读
5 – 执行且只读(1 + 4)
6 – 只写和只读 (2 + 4)
7 – 执行、写入和读取(1 + 2 + 4)