У меня есть сценарий, который мне нужно выполнить на разделе NTFS. Разрешение скрипта установлено в 600.
Я попытался изменить разрешения, запустив chmod 755 script.sh, который не сообщает об ошибке или что-то еще, - но он также не изменяет разрешения на файл:
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
$ chmod 755 script.sh
$ stat script.sh
File: `script.sh'
Size: 297070 Blocks: 584 IO Block: 4096 regular file
Device: 811h/2065d Inode: 35515 Links: 1
Access: (0600/-rw-------) Uid: ( 1000/ xxxxxx) Gid: ( 1000/ xxxxxx)
Access: 2010-09-30 14:05:16.041621000 -0700
Modify: 2010-09-30 14:05:05.070157000 -0700
Change: 2010-09-30 14:05:05.070475000 -0700
Как вы можете видеть, он остается неизменным.
Режим определяется настройками монтирования раздела (вы не можете изменить его с помощью chmod).
Для '755' для файлов и '777' в каталогах вы использовали бы что-то вроде
sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever
Режим определяется настройками монтирования раздела (вы не можете изменить его с помощью chmod).
Для '755' для файлов и '777' в каталогах вы использовали бы что-то вроде
sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000 /dev/whatever /mnt/whatever
Есть вопрос, связанный с USB для устройств USB. Этот ответ обеспечивает уродливый взлом, если вы хотите автоматически подключать каждое устройство USB с разрешениями на выполнение.
В дополнение к установке fmask и / или dmask в ответе htorque выше, если вы хотите выполнить сценарии на диске, мне также нужно было установить параметр монтирования «exec».
Итак, пример будет:
sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000,exec /dev/whatever /mnt/whatever
Все шаги:
Установить ntfs-3g:sudo apt-get install -y ntfs-3g
Отменить раздел NTFS: sudo umount /mnt/windows
Использовать ntfs-3g.usermap для создания вашего файла UserMapping: sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFS
или sudo ntfs-3g.usermap /dev/sdb1
добавить файл UserMapping: mount -a
sudo mkdir /mnt/windows/.NTFS-3G
sudo mv UserMapping /mnt/windows/.NTFS-3G/
Обновить файл fstab: sudo vim /etc/fstab
Обновить строку монтирования: создать резервную копию текущей линии монтирования! Дублируйте строку и прокомментируйте ее, добавив сначала #. Изменить следующее: UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0 К следующему: UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0 (Используйте ntfs-3g и только параметр default). Он должен выглядеть примерно так: #UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0 UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0 Наконец, перемонтируйте с помощью fstab: sudo umount /mnt/windows
sudo mount -a
[ ! d1] Сделайте это один раз для каждого раздела NTFS!
Я проверяю его с помощью Сделайте это один раз для каждого раздела NTFS, есть! , и разрешения влияют на ОС Windows! Я меняю права на свой домашний каталог на Windows, и когда я снова использовал Windows, я мог видеть, что пользователь был сломан!
Вы всегда можете явно вызвать интерпретатор сценария, и в этом случае разрешения на выполнение не требуются. Если сценарий использует bash, как это можно проверить, просмотрев первую строку скрипта, просто запустите
bash script.sh
Обратите внимание, что сценарий вызывает другие скрипты или двоичные файлы в одном разделе, это не будет Работа. Также обратите внимание, что стратегия не работает с двоичными файлами, а не с текстовыми файлами сценариев, написанными в Bash Script, Perl, Python и т. Д.
Для разделов NTFS используйте опцию permissions в fstab.
Сначала отключите раздел ntfs.
Определите свой UUID раздела с помощью blkid
sudo blkid
Затем отредактируйте /etc/fstab
# Graphical
gksu gedit /etc/fstab
# Command line
sudo -e /etc/fstab
И добавьте или отредактируйте строку для раздела ntfs
# change the "UUID" to your partition UUID
UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,permissions 0 0
Сделайте точку монтирования (если необходимо)
sudo mkdir /media/windows
Теперь смонтируйте раздел
mount /media/windows
Параметры, которые я дал вам, auto, будут автоматически монтировать раздел при загрузке, а users позволяет пользователям монтировать и umount.
Затем вы можете использовать chown и chmod в разделе ntfs.
В отличие от большинства людей, NTFS является файловой системой, совместимой с POSIX¹, и возможно использование разрешений для NTFS.
Чтобы включить это, вам нужен «файл сопоставления пользователя» или просто укажите параметр permissions при установке (если не требуется совместимость с Windows). Это отображает пользователей Linux в вашей системе с идентификаторами пользователей, такими как NTFS / Windows, которые используют их внутри.
См. Справочную страницу ntfs-3g для получения некоторой информации и некоторых примеров. Если вам нужна дополнительная информация, ознакомьтесь с дополнительной документацией о правах собственности и разрешениях ntfs-3g.
(Обратите внимание, что это не работает в файловых системах FAT.)
¹ Да, это также может хранить имена файлов, которые действительны в linux / unix, но не под Windows, поддерживает символические ссылки и amp; hardlinks и т. д.
В Linux режим NTFS (и FAT32) определяется настройками монтирования раздела. Вы не можете изменить его с помощью chmod.
опции монтирования sdb1, изменить в соответствии с буквой диска и номером раздела в вашем случае. Общий синтаксис - sdxn, где x - буква диска, а n - номер раздела, как показано, например, sudo lsblk -f
sdb1 [ ! d10] Отключите раздел NTFS. sudo umount /dev/sdxn # general syntax
sudo umount /dev/sdb1 # modify to match your case
Создайте настраиваемую точку монтирования (только если вы хотите новую точку монтирования), например, с помощью sudo mkdir -p /mnt/sd1
Проверьте номер uid вашего идентификатора пользователя (обычно это 1000, иногда 1001 или 1002 ...) grep ^"$USER" /etc/group
, и используйте это номер, если вы хотите захватить право собственности (по умолчанию root).
Установите раздел NTFS
, чтобы соответствовать букве диска и номеру раздела в вашем случае (без разрешения на выполнение для файлов, без доступа к «другим») ),
sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdxn /mnt/sd1 # general syntax
sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdb1 /mnt/sd1 # modify to match your case
Отключите раздел NTFS. sudo umount /dev/sdxn # general syntax
sudo umount /dev/sdb1 # modify to match your case
Пример 2 (с разрешениями на выполнение для файлов, без доступа для «других»),
sudo mount -o rw,user,uid=1000,umask=007,exec /dev/sdxn /mnt/sd1 # general syntax
sudo mount -o rw,user,uid=1000,umask=007,exec /dev/sdb1 /mnt/sd1 # modify to match your case
Отключите раздел NTFS. [ ! d14] /mnt/sd1/this-script
, и вы также можете запускать исполняемые программы из этого места (не рекомендуется).
В этом случае вы можете запустить скрипт this-script с помощью
sudo mount -o rw,users,umask=000,exec /dev/sdxn /mnt/sd1 # general
sudo mount -o rw,users,umask=000,exec /dev/sdb1 /mnt/sd1 # modify to match your case
Старый поток, я знаю, но по-прежнему актуальный и пропущенный конкретный пример использования, составленный из разных предложений на других форумах / потоках и протестированных на Ubuntu GNOME 13.04, где мне нужен внешний диск для хранения библиотеки Steam ...
Если раздел NTFS находится на внешнем USB-накопителе, например, что означает, что раздел монтируется «на лету» при подключении, то вы можете использовать следующий метод для создания разделов udev mount ntfs с выполнением прав.
Откройте окно терминала и выполните:
$ sudo nano /etc/udev/rules.d/90-usb-disks.rules
Затем вставьте эту строку в то, что должно быть пустым / новым файлом (если нет, то выйдите из nano и переиздайте команду но начиная с имени файла с более высоким номером, например, 91 -...):
ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs-3g"
Затем сохраните и закройте. Отключите диск, а затем выполните в терминале:
$ sudo service udev restart
Затем подключите диск и наслаждайтесь:)
Есть вопрос, связанный с USB для устройств USB. Этот ответ обеспечивает уродливый взлом, если вы хотите автоматически подключать каждое устройство USB с разрешениями на выполнение.
В дополнение к установке fmask и / или dmask в ответе htorque выше, если вы хотите выполнить сценарии на диске, мне также нужно было установить параметр монтирования «exec».
Итак, пример будет:
sudo mount -t ntfs -o rw,auto,user,fmask=0022,dmask=0000,exec /dev/whatever /mnt/whatever
Все шаги:
Установить ntfs-3g:sudo apt-get install -y ntfs-3g
Отменить раздел NTFS: sudo umount /mnt/windows
Использовать ntfs-3g.usermap для создания вашего файла UserMapping: sudo ntfs-3g.usermap /dev/disk/by-label/MY-NTFS
или sudo ntfs-3g.usermap /dev/sdb1
добавить файл UserMapping: mount -a
sudo mkdir /mnt/windows/.NTFS-3G
sudo mv UserMapping /mnt/windows/.NTFS-3G/
Обновить файл fstab: sudo vim /etc/fstab
Обновить строку монтирования: создать резервную копию текущей линии монтирования! Дублируйте строку и прокомментируйте ее, добавив сначала #. Изменить следующее: UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0 К следующему: UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0 (Используйте ntfs-3g и только параметр default). Он должен выглядеть примерно так: #UUID=34A0456DA04536A0 /mnt/windows ntfs defaults,uid=1000,gid=1000 0 0 UUID=34A0456DA04536A0 /mnt/windows ntfs-3g defaults 0 0 Наконец, перемонтируйте с помощью fstab: sudo umount /mnt/windows
sudo mount -a
[ ! d1] Сделайте это один раз для каждого раздела NTFS!
Я проверяю его с помощью Сделайте это один раз для каждого раздела NTFS, есть! , и разрешения влияют на ОС Windows! Я меняю права на свой домашний каталог на Windows, и когда я снова использовал Windows, я мог видеть, что пользователь был сломан!
Вы всегда можете явно вызвать интерпретатор сценария, и в этом случае разрешения на выполнение не требуются. Если сценарий использует bash, как это можно проверить, просмотрев первую строку скрипта, просто запустите
bash script.sh
Обратите внимание, что сценарий вызывает другие скрипты или двоичные файлы в одном разделе, это не будет Работа. Также обратите внимание, что стратегия не работает с двоичными файлами, а не с текстовыми файлами сценариев, написанными в Bash Script, Perl, Python и т. Д.
Для разделов NTFS используйте опцию permissions в fstab.
Сначала отключите раздел ntfs.
Определите свой UUID раздела с помощью blkid
sudo blkid
Затем отредактируйте /etc/fstab
# Graphical
gksu gedit /etc/fstab
# Command line
sudo -e /etc/fstab
И добавьте или отредактируйте строку для раздела ntfs
# change the "UUID" to your partition UUID
UUID=12102C02102CEB83 /media/windows ntfs-3g auto,users,permissions 0 0
Сделайте точку монтирования (если необходимо)
sudo mkdir /media/windows
Теперь смонтируйте раздел
mount /media/windows
Параметры, которые я дал вам, auto, будут автоматически монтировать раздел при загрузке, а users позволяет пользователям монтировать и umount.
Затем вы можете использовать chown и chmod в разделе ntfs.
В отличие от большинства людей, NTFS является файловой системой, совместимой с POSIX¹, и возможно использование разрешений для NTFS.
Чтобы включить это, вам нужен «файл сопоставления пользователя» или просто укажите параметр permissions при установке (если не требуется совместимость с Windows). Это отображает пользователей Linux в вашей системе с идентификаторами пользователей, такими как NTFS / Windows, которые используют их внутри.
См. Справочную страницу ntfs-3g для получения некоторой информации и некоторых примеров. Если вам нужна дополнительная информация, ознакомьтесь с дополнительной документацией о правах собственности и разрешениях ntfs-3g.
(Обратите внимание, что это не работает в файловых системах FAT.)
¹ Да, это также может хранить имена файлов, которые действительны в linux / unix, но не под Windows, поддерживает символические ссылки и amp; hardlinks и т. д.
В Linux режим NTFS (и FAT32) определяется настройками монтирования раздела. Вы не можете изменить его с помощью chmod.
опции монтирования sdb1, изменить в соответствии с буквой диска и номером раздела в вашем случае. Общий синтаксис - sdxn, где x - буква диска, а n - номер раздела, как показано, например, sudo lsblk -f
sdb1 [ ! d10] Отключите раздел NTFS. sudo umount /dev/sdxn # general syntax
sudo umount /dev/sdb1 # modify to match your case
Создайте настраиваемую точку монтирования (только если вы хотите новую точку монтирования), например, с помощью sudo mkdir -p /mnt/sd1
Проверьте номер uid вашего идентификатора пользователя (обычно это 1000, иногда 1001 или 1002 ...) grep ^"$USER" /etc/group
, и используйте это номер, если вы хотите захватить право собственности (по умолчанию root).
Установите раздел NTFS
, чтобы соответствовать букве диска и номеру раздела в вашем случае (без разрешения на выполнение для файлов, без доступа к «другим») ),
sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdxn /mnt/sd1 # general syntax
sudo mount -o rw,user,uid=1000,dmask=007,fmask=117 /dev/sdb1 /mnt/sd1 # modify to match your case
Отключите раздел NTFS. sudo umount /dev/sdxn # general syntax
sudo umount /dev/sdb1 # modify to match your case
Пример 2 (с разрешениями на выполнение для файлов, без доступа для «других»),
sudo mount -o rw,user,uid=1000,umask=007,exec /dev/sdxn /mnt/sd1 # general syntax
sudo mount -o rw,user,uid=1000,umask=007,exec /dev/sdb1 /mnt/sd1 # modify to match your case
Отключите раздел NTFS. [ ! d14] /mnt/sd1/this-script
, и вы также можете запускать исполняемые программы из этого места (не рекомендуется).
В этом случае вы можете запустить скрипт this-script с помощью
sudo mount -o rw,users,umask=000,exec /dev/sdxn /mnt/sd1 # general
sudo mount -o rw,users,umask=000,exec /dev/sdb1 /mnt/sd1 # modify to match your case
Старый поток, я знаю, но по-прежнему актуальный и пропущенный конкретный пример использования, составленный из разных предложений на других форумах / потоках и протестированных на Ubuntu GNOME 13.04, где мне нужен внешний диск для хранения библиотеки Steam ...
Если раздел NTFS находится на внешнем USB-накопителе, например, что означает, что раздел монтируется «на лету» при подключении, то вы можете использовать следующий метод для создания разделов udev mount ntfs с выполнением прав.
Откройте окно терминала и выполните:
$ sudo nano /etc/udev/rules.d/90-usb-disks.rules
Затем вставьте эту строку в то, что должно быть пустым / новым файлом (если нет, то выйдите из nano и переиздайте команду но начиная с имени файла с более высоким номером, например, 91 -...):
ENV{ID_FS_TYPE}=="ntfs", ENV{ID_FS_TYPE}="ntfs-3g"
Затем сохраните и закройте. Отключите диск, а затем выполните в терминале:
$ sudo service udev restart
Затем подключите диск и наслаждайтесь:)