11

У меня есть внешний жесткий диск, подключенный к моей коробке Linux. Я хотел настроить веб-сервер для доступа к файлам на нем, но разрешение для всех файлов и каталогов на диске является rwx для владельца, который является моим локальным логином, а группа является root группой.

Мне нужны файлы, читаемые пользователем apache, я пытался установить для всех файлов значение chmod a+rwx -R * , но это ничего не делает (не дает ошибок, просто не дает никакого эффекта). Я попытался изменить группу с помощью chgrp на мою группу пользователей, но это тоже не сработает, это выдает мне ошибки, на которые у меня нет разрешения, даже когда я запускаю все эти команды как sudo !

Что случилось с этим жестким диском ??? sudo chmod a+rwx * должно работать на чем угодно, верно?

5 ответов5

18

Сначала проверьте тип используемой файловой системы с помощью df -T:

sys@p:~$ df -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
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-config то gksu ntfs-config). В Linux уже есть поддержка FAT для чтения и записи, хотя они не поддерживают разрешения.

Если вы хотите, чтобы раздел NTFS, подключенный с правами собственности, был применен к конкретному пользователю / группе, укажите его в параметрах монтирования:

mount -o uid=username,gid=groupname /dev/sdc /path/to/mount

Если вы переключитесь на ext3, как предложено выше, вы можете использовать chown:

chown -R user *
chown -R user .
3

Как сказала Ким, вы получите только разрешения и владение Unix для файловой системы Unix. Ext3 хороший кандидат.

Если вы должны использовать этот диск без переформатирования, вы можете сделать это с помощью опций команды mount которые определяют владельца, группу и / или разрешения на чтение / запись. Эти параметры влияют на все файлы на диске (см. Ответ Джона Т о том, как определить FSTYPE):

# 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
2

Вероятно, он отформатирован как FAT, который не поддерживает права доступа к файлам. Вместо этого используйте ext3.

2

Я сделал это, и это сработало:

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: sda5 - G:

1

Итак, у меня было немного времени, так как у меня были резервные копии с нескольких машин на одном диске. Мне пришлось установить утилиты hdfsplus (hfsprogs), затем смонтировать диск и, наконец, сменить владельца соответствующих папок, используя имя пользователя и группы.

Примечание: вы можете перечислить точки монтирования и устройства, просто набрав mount на терминале.

Первый:

sudo apt-get install hfsprogs

Затем отключите диск, если он уже был подключен:

sudo umount /media/user/mount_point

(Re) Установите диск, используя следующие аргументы:

sudo mount -t hfsplus -o force,rw /dev/sdb# /media/user/mount_point

Перейдите в каталог, содержащий проблемные папки. Затем сделайте:

chmod -R your_user_group:your_user_name ./target_directory

Надеюсь, это поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .