Как управлять разрешениями для общего тома для OSX и ubuntu

7

На моем mac я использую unjournaled HFS-раздел для обмена файлами между OSX 10.8 и Ubuntu 12.04.

Сначала это была приятная мысль, потому что Time Machine автоматически резервирует том в OSX, но вскоре я заметил, что OSX и Ubuntu беспорядок с разрешением таким образом, что делает вещи беспорядочными для меня.

Итак, чтобы полностью просматривать и изменять файлы, я продолжаю использовать chmod для применения разрешений, которые позволят мне полностью использовать документ. Но я не понимаю, почему мне приходится продолжать применять изменения снова и снова .

Возможно ли установить какое-либо разрешение навсегда, чтобы обе операционные системы постоянно соблюдали?

Я думаю, что 777 будет работать, но я подумал, что это не разумная вещь. Но пока «другие» не получают полного доступа (третья семерка), я вижу значок блокировки в файле в ubuntu.

    
задан Seth 01.07.2013 в 16:39
источник

3 ответа

10

Пользовательские имена не имеют значения. Разрешения в файловых системах HFS + и Linux хранятся в терминах пользовательских идентификаторов (UID), которые являются номерами, связанными с именами пользователей. В Ubuntu, как и в большинстве современных дистрибутивов Linux, первому пользователю задан UID 1000 по умолчанию. В OS X первому пользователю присваивается UID 501 по умолчанию. Таким образом, при обмене носителями, которые кодируют значения UID, значения UID, вероятно, не совпадают.

Один из способов исправить это - установить свободные разрешения (значение режима, как в rwxr-xr-x или 755 в восьмеричном). Обратите внимание, что восьмеричный код разрешения не совпадает с значением UID. В любой ОС вы можете установить разрешения по умолчанию, используемые для файлов, с помощью команды umask , которая указывает значение бит, которое будет удалено из прав доступа к файлам. Например, umask 022 удаляет разрешение на запись для групповых и других разрешений, что приводит к 755 ( rwxr-xr-x ) разрешениям для новых файлов (или 644, если что-то удаляет бит разрешения выполнения, что является обычной практикой для файлов). Это, в основном, инструмент командной строки; если вы в значительной степени являетесь пользователем GUI, вам нужно найти другой инструмент для выполнения этой работы, возможно, связанный с настройками среды рабочего стола. Это может быть неясным и плохо документированным. Кроме того, установка разрешенных разрешений таким образом может иметь недостатки безопасности, особенно если ваша многопользовательская система.

Лучший подход - синхронизировать UID своих учетных записей в Linux и OS X. Вы можете легко изменить значение UID в Linux с помощью команды usermod , как в:

usermod -u 501 dale

Эта команда устанавливает UID для dale - 501. Однако есть некоторые существенные оговорки:

  • Вы должны выйти из учетной записи, которую вы изменяете, прежде чем изменять ее. Попытка изменить используемую учетную запись приведет к тому, что учетная запись начнет вести себя странно.
  • usermod должно использоваться как root . Вы можете выполнить его через sudo , но сделать это из учетной записи, которую вы изменяете, нецелесообразно. Таким образом, вам нужно либо предоставить root пароль, либо войти в root напрямую, либо использовать sudo из второй учетной записи пользователя.
  • Команда usermod не будет изменять права собственности на файлы, принадлежащие данному пользователю. Чтобы настроить право собственности на эти файлы, вам необходимо найти их, а затем изменить их право собственности на chown . Большинство файлов будут находиться в домашнем каталоге пользователя, поэтому chown -R dale: /home/dale , введенное как root после изменения UID dale , изменит большинство файлов dale , чтобы использовать новый номер UID. Однако некоторые из файлов пользователя могут быть расположены в другом месте. Ввод find / -uid 1000 найдет все файлы, которые используют старый UID (при условии, что он равен 1000). Обратите внимание, что эта команда find , вероятно, займет несколько минут. Чтобы ускорить работу, отключите любые файловые системы, на которых вы уверены, что не найдете никаких ударов, таких как тома FAT или NTFS.
  • Если вы обращаетесь к томам FAT или NTFS, их значения UID определяются параметрами во время монтирования. Если вы используете диспетчер файлов GUI, вероятность того, что значение UID установлено для того, кто работает с файловым менеджером, вам не нужно ничего особенного. Однако, если вы монтируете том через запись /etc/fstab , вам может потребоваться отрегулировать значение UID, которое оно указывает.
  • Ubuntu сохраняет минимальное значение, которое он использует для UID в /etc/login.defs . Если вы не измените значение UID_MIN в этом файле, вы, скорее всего, обнаружите, что ваша учетная запись «исчезнет» с экрана входа в GUI и, возможно, из некоторых других систем. Таким образом, вы должны отредактировать этот файл.

В теории вы могли бы изменить UID своих учетных записей (ов) ОС X аналогичным образом для достижения той же цели. Тем не менее, я менее знаком с инструментами поддержки учетной записи OS X, поэтому я не могу предоставить явные инструкции для этого. Для настройки значений OS X было бы полезно, если бы вам не пришлось корректировать UID_MIN в Linux.

Если у вас несколько учетных записей на вашем компьютере, вы должны настроить их все, чтобы синхронизировать их во всех установках вашей ОС.

Еще одна точка: значение идентификатора группы (GID) сохраняется аналогичным образом. IIRC, Ubuntu присваивает значение GID для каждой учетной записи, которая идентична его значению UID. Я не помню, что OS X делает по умолчанию. Возможно, вы захотите отрегулировать значения GID для двух ОС таким образом, чтобы это было аналогично изменениям UID, но это вряд ли будет так же важно, как настройка значений UID.

EDIT: Если вы хотите поменять свой UID (и GID, если требуется) в macOS / OS X, а не в Ubuntu, вы можете это сделать. Поскольку эта модификация в macOS выходит за рамки этого сайта, я просто свяжусь с несколькими страницами, которые предоставляют процедуры для этого в macOS:

источник
0

Я обнаружил, что иногда вы можете щелкнуть папку, которую хотите разделить, и нажать команду + I. Затем нажмите на блокировку и введите свой пароль, если он не разблокирован Затем, затем, где говорится «каждый», выберите чтение и запись.

Еще одна вещь, которая работает, - это настроить папку как «общую папку», которую вы можете сделать в панели предпочтений совместного использования в системных настройках.
Перейдите к настройкам системы & gt; разделение & gt; совместное использование файлов. Затем сделайте общий доступ к этому файлу, в котором установлен флажок совместного доступа к файлу, и добавьте папку, которую вы хотите поделиться, с помощью кнопки «плюс». Затем вы можете изменить разрешения для чтения записи.

ОДНО ПРИМЕЧАНИЕ: использование второго варианта также откроет ваш компьютер, чтобы разрешить доступ к папке по вашему выбору через Интернет (только при загрузке в os x)! Сделайте свою учетную запись у вас есть безопасный пароль, и вы, вероятно, отключите его в общественных местах (не забудьте получить шляпу tinfoil!)

    
ответ дан aChipmunk 01.07.2013 в 17:30
0

Откройте терминал и:

В OS X попробуйте это

sudo dscl / -create /Users/<ubuntu-username>
sudo dscl / -append /Groups/<os-x-username> GroupMembership <ubuntu-username>

В Ubuntu запустите этот

sudo adduser --system --no-create-home --ingroup <ubuntu-username> <os-x-username>

Теперь вы можете использовать 774 или даже 770 для прав доступа к файлам.

    
ответ дан edwin 01.07.2013 в 17:06