Может ли кто-нибудь любезно объяснить, почему я получаю эту ошибку «Отказано в доступе»? Я лично являюсь пользователем g и, как показывает ls, у меня есть права на чтение и запись как для источника, так и для пункта назначения. У меня система slackware 14, а записываемое устройство - моя читалка, ntfs-3g file system .

У меня есть другие файловые системы NTFS, флэш-накопители, внешние жесткие диски и т.д., На которые я могу писать как пользователь. Нет заметной разницы в настройке разрешений для любого из них. Будучи ntfs, все они принадлежат корню группы root. Эта проблема возникает только с этим читателем (хотя я могу писать в него как root). Поэтому я считаю, что проблема связана с этим устройством, но я понятия не имею, что это может быть.

~ $ cp /home/g/MyBooks/Wyndham-TheMidwichCuckoos.txt /500gb/database/media/  
cp: cannot create regular file '/500gb/database/media/Wyndham-TheMidwichCuckoos.txt': Permission denied  
~ $ ls -l /home/g/MyBooks/Wyndham-TheMidwichCuckoos.txt                         
-rw-r--r-- 1 g users 380183 Aug 10 11:04 /home/g/MyBooks/Wyndham-TheMidwichCuckoos.txt  
~ $ ls -l /500gb/database/  
total 32  
drwxr-xr-x 2 root root 8192 Aug 10 11:23 cache/  
drwxr-xr-x 3 root root 8192 Aug  5 13:26 layout/  
drwxr-xr-x 2 root root 8192 Aug  9 14:07 media/  
drwxr-xr-x 2 root root 8192 Aug  5 17:28 sync/  
~ $

Ereader является fat32, я предполагал, что это NTFS,
$ mount
/dev/sda3 on / тип ext2 (rw)
proc on / proc тип proc (rw)
sysfs on / sys type sysfs (rw)
/dev/sda4 on / home type ext2 (rw)
tmpfs on /dev/ shm type tmpfs (rw)
/dev/sda1 on / winxp type fuseblk (rw, allow_other, blksize = 4096, default_permissions)
/dev/ sdb on / 500gb типа vfat (rw)
/dev/ sdd1 on / 3tb типа fuseblk (rw, allow_other, blksize = 4096)
~ $ cp /home/g/MyBooks/Wyndham-TheMidwichCuckoos.txt / 3tb
~ $ cp /home/g/MyBooks/Wyndham-TheMidwichCuckoos.txt / 500 ГБ
cp: не может создать обычный файл '/500gb/Wyndham-TheMidwichCuckoos.txt': разрешение отклонено
~ $

Я не могу изменить разрешения для этого читателя, ни как root, ни как пользователь
Как root, похоже, работает, но ничего не меняется
/home/g # chmod 777 -R /500gb /база данных
/home/g # ls -l /500gb /database
всего 32
drwxr-xr-x 2 root root 8192 10 августа 11:23 кеш
drwxr-xr-x 3 root root 8192 5 августа, 13:26 макет
drwxr-xr-x 2 root root 8192 9 августа, 14:07 медиа
drwxr-xr-x 2 root root 8192 5 августа, 17:28 синхронизация

Как пользователь, chmod отклоняется таким образом
~ $ chmod 777 -R /500gb /база данных
chmod: изменение прав доступа к /500gb /database: операция не разрешена
chmod: изменение разрешений для «/500gb /database /cache»: операция не разрешена
chmod: изменение разрешений для '/500gb/database/cache/cacheExt.xml': операция не разрешена
chmod: изменение разрешений для '/500gb/database/cache/media.xml': операция не разрешена
chmod: изменение разрешений для '/500gb/database/cache/cacheExtSchema_1.1.xsb': операция не разрешена
chmod: изменение прав доступа к /500gb /database /media: операция не разрешена
chmod: изменение прав доступа для '/500gb/database/media/Stevenson-TreasureIsland.txt': операция не разрешена
chmod: изменение прав доступа для '/500gb/database/media/Rendell-WolftotheSlaughter.txt': операция не разрешена

Этот процесс помог мне, благодаря Мирославу Коскару
/home/g # mount | grep sdb
/home/g # mount /dev /sdb -o uid = 1000, gid = 100 /500gb
/home/g # mount | grep sdb
/dev /sdb on /500gb типа vfat (rw, uid = 1000, gid = 100)
/home/g # ls -l /500gb /database
всего 32
drwxr-xr-x 2 g пользователи 8192 10 августа 11:23 кеш
drwxr-xr-x 3 г пользователей 8192 5 августа, 13:26 макет
drwxr-xr-x 2 г пользователей 8192 10 августа 12:51 СМИ
drwxr-xr-x 2 g пользователи 8192 5 августа, 17:28 синхронизация
/home/g #
~ $ cp /home/g/MyBooks/Wyndham-TheMidwichCuckoos.txt /500gb /database /media
~ $

2 ответа2

1

Мне кажется, что права доступа установлены неправильно.

  1. вы пользователь g и можете прочитать файл = OK

  2. но вы не можете создать файл в месте назначения, потому что media каталога не доступен для записи, это может сделать только root

Так что либо скопируйте с root либо измените разрешения для цели, чтобы у вас было разрешение на запись в media каталог.


Как указывалось выше, невозможно изменить права доступа или владельца для смонтированной файловой системы NTFS. В этом случае есть возможность использовать правильные параметры монтирования. Выдержка из man mount

uid = значение, gid = значение и umask = значение

Установите права доступа к файлу в файловой системе. Значение umask дано в восьмеричном виде. По умолчанию файлы принадлежат пользователю root и не могут быть прочитаны кем-либо еще.


Пример: (для /dev/sdc1 с файловой системой FAT32)

Убедитесь, что устройство не установлено (следующее должно вернуться без вывода)

$ mount | grep sdc1

Смонтируйте устройство с набором опций uid и gid

$ sudo mount /dev/sdc1 -o uid=1000,gid=1000 /mnt

Проверьте точку монтирования

$ mount | grep sdc1

/dev/sdc1 on /mnt type vfat (rw,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
0

Каталог media принадлежит пользователю root (с группой root) и находится в режиме 755, поэтому он доступен для записи только его владельцу (root).  Вы пытаетесь создать файл в этом каталоге (не перезаписываете существующий файл?) который рассматривается как модификация каталога.  И вы не работаете как root .  Наверное, поэтому у вас нет разрешения.

Либо chown к себе каталог media (либо выполните команду chmod чтобы вы могли записать в него), либо запустите cp под su или sudo .

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