无法在 Ubuntu 上更改外部硬盘的权限/所有权/组

无法在 Ubuntu 上更改外部硬盘的权限/所有权/组

我的 Linux 机器上连接着一个外部硬盘。我想设置一个 Web 服务器来访问硬盘上的文件,但是硬盘上所有文件和目录的权限都属于rwx所有者,也就是我的本地登录名,而组就是组root

我需要 apache 用户可读的文件,我试图将所有文件设置为chmod a+rwx -R *,但这没有任何作用(没有错误,只是没有效果。)我尝试将使用组更改chgrp为我的用户组,但这也不起作用,即使我以 身份运行所有这些命令,它也会给我错误,说我缺乏权限sudo

这个硬盘怎么了??? sudo chmod a+rwx *应该可以处理任何事,对吗?

答案1

首先检查它使用的文件系统类型df -T

系统@p:~$ df -T
文件系统类型 1K 块已使用可用使用率% 已安装于
ext3 ext3 19222656 1050948 17195164 6% /
tmpfs tmpfs 1684988 0 1684988 0%/lib/init/rw
udev tmpfs 10240 64 10176 1%/dev
tmpfs tmpfs 1684988 0 1684988 0%/dev/shm

/mnt/external例如,如果它安装在上面,您将在最右边的列中看到它。您可以在第二列中看到文件系统类型。如果它是 NTFS,您将需要NTFS-3G(可能已经安装,如果没有,sudo apt-get install ntfs-configgksu ntfs-config)。Linux 已经支持 FAT 读写,尽管他们不支持权限

如果您希望将 NTFS 分区的所有权分配给特定用户/组,请在挂载开关中指定:

mount -o uid=用户名,gid=组名 /dev/sdc /path/to/mount

如果按照上面的建议更改为 ext3,则可以使用chown

chown -R user *
chown -R user .

答案2

正如 Kim 所说,您只能在 Unix 文件系统上获得 Unix 权限和所有权。ext3 是一个不错的选择。

如果您必须使用此驱动器而不重新格式化,则可以使用mount命令选项来指定所有者、组和/或读/写权限。这些选项会影响驱动器上的所有文件(有关如何确定 FSTYPE 的信息,请参阅 John T 的回答):

# list files as owned by X, use numerical UID as found in /etc/passwd
$ mount -t <FSTYPE> -o uid=X /dev/?? /path/to/mount/point

# list files as owned by group Y, use numerical GID found in /etc/passwd
$ mount -t <FSTYPE> -o gid=Y /dev/?? /path/to/mount/point

# list files as accessible per umask 
#   (022 gives rwx permissions to owner, r-x permissions to everyone else)
$ mount -t <FSTYPE> -o umask=022 /dev/?? /path/to/mount/point

# combine all of the above:
$ mount -t <FSTYPE> -o uid=X,gid=Y,umask=022 /dev/?? /path/to/mount/point

答案3

我这样做了并且有效:

sudo umount /dev/sda3 /media/windows1
sudo umount /dev/sda5 /media/windows2

进而

sudo mount -o rwx /dev/sda3 /media/windows1
sudo mount -o rwx /dev/sda5 /media/windows2

请注意,我正在使用 Ubuntu 11.10,并且是我sda3的 Windows 。C:sda5G:

答案4

它可能被格式化为 FAT,不支持文件权限。请改用 ext3。

相关内容