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

На моем Mac я использую раздел HFS без регистрации для обмена файлами между OSX 10.8 и Ubuntu 12.04.

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

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

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

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

9
задан 1 September 2013 в 08:27

3 ответа

Имена пользователей не имеют значения. Разрешения как в файловых системах 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, если что-то удаляет разрешение на выполнение bit, что является обычной практикой для файлов). Однако это в основном инструмент командной строки; Если вы в значительной степени являетесь пользователем графического интерфейса, вам нужно будет найти другой инструмент для выполнения этой работы, вероятно, связанный с настройками по умолчанию для среды рабочего стола. Это может быть неясным и плохо задокументированным. Кроме того, такая установка свободных разрешений может иметь недостатки в безопасности, особенно если ваша система многопользовательская.

Лучшим подходом является синхронизация 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 определяются параметрами во время монтирования. Если вы используете файловый менеджер с графическим интерфейсом, скорее всего, значение UID установлено для того, кто запускает файловый менеджер, поэтому вам не нужно делать ничего особенного. Если вы монтируете том через запись / etc / fstab , вам может потребоваться изменить значение UID, которое он указывает.
  • Ubuntu сохраняет минимальное значение, которое использует для UID, в / etc /login.defs . Если вам не удастся изменить значение UID_MIN в этом файле, вы, скорее всего, обнаружите, что ваша учетная запись будет «исчезать» с экрана входа в систему с графическим интерфейсом пользователя и, возможно, из некоторых других систем. Таким образом, вы должны отредактировать этот файл.

Теоретически вы можете изменить UID вашей учетной записи (ов) OS 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:

13
ответ дан 1 September 2013 в 08:27

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

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

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

0
ответ дан 1 September 2013 в 08:27

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

В 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 для прав доступа к файлам.

0
ответ дан 1 September 2013 в 08:27

Другие вопросы по тегам:

Похожие вопросы: