У меня есть диск на моей машине Ubuntu, доступный по сети, и один из компьютеров, которые могут получить к ней доступ, - это компьютер под управлением Windows 7.
Всякий раз, когда я нахожусь на своем компьютере под управлением Windows и копирую файл к общей папке Ubuntu, она выглядит как принадлежащая никому и с ограниченными правами:
-rwxr--r-- 1 nobody nogroup
Мне всегда нужно перейти в командную строку на стороне Ubuntu и выдать команду chown, чтобы сделать так что у меня есть разрешения на редактирование файла. До сих пор я не могу переместить или скопировать его, и он не будет синхронизироваться с Dropbox.
Как я могу сделать так, чтобы при копировании файлов с моей Windows-машины они автоматически принадлежали мне (У меня только одна учетная запись пользователя на моей машине Ubuntu), и у меня есть разрешение редактировать и перемещать их свободно?
Вы должны иметь возможность сделать это с помощью флага -no-preserve в cp
cp --no-preserve=ownership source destination
edit: у этого все равно будут странные разрешения (владелец будет пользовательским вызовом cp, хотя). Это, вероятно, будет работать лучше при копировании из ntfs:
cp --no-preserve=ownership,mode source destination
. Это будет соответствовать его битовой маске копируемой папки, поэтому, если вы вошли в систему как «пользователь-a» и скопируете в dir с drwxr-xr-x perms (0755), файлы будут принадлежать «user-a» и имеют -rw-r-r-- perms (0644).
Я думаю, что проблема связана с стороной Ubuntu, потому что общий каталог не имеет достаточного разрешения.
Поскольку любые файлы, созданные в каталоге, имеют функцию разрешения родительских и дочерних отношений. Таким образом, это
Из-за википедии
При вычислении umask - это команда, которая определяет настройки маски, которая контролирует, как устанавливаются права доступа к файлам недавно созданные файлыИтак, я думаю, что изменение umask в каталоге может стоить тестирования.
Чтобы архивировать смену umask , есть много документация и примеры в сети. хотите работать.
Если другие ответы не помогут вам в качестве последней опции, вы можете написать небольшой скрипт bash, который автоматически дает вам полные разрешения и права собственности только на все файлы в общей папке. Вам все равно придется запускать эту команду вручную, но вы можете не вводить ее отдельно для каждого файла. Возможно, есть возможность сделать сценарий «смотреть» в папке, и всякий раз, когда он будет изменен, разрешения будут выданы немедленно. Хотя я думаю, что это будет работать только во время работы, а не обнаруживать изменения между выключением и следующей перезагрузкой.