Я загружаю файлы в свою учетную запись оболочки с помощью scp. Поскольку мне нужны другие разрешения на сервере, чем на моем компьютере, я хотел бы иметь возможность легко изменять разрешения при загрузке без необходимости использовать ssh для учетной записи и изменять их вручную.
upload
permissions
scp
Флориан Майер
источник
источник
Мое предпочтительное рабочее решение будет использовать
rsync
вместо:Заменить:
С:
Это мешает вам пройти аутентификацию дважды. Есть также много других опций с rsync, которые, вероятно, добавят ценность, например, возможность сохранить владельца, группу и т. Д.
источник
--perms
также. explainshell.com/...Я провел несколько экспериментов с scp. Для новых файлов, загружаемых на целевой сервер, файлы имеют те же разрешения, что и на исходном сервере. Если существующие файлы перезаписываются на целевом сервере, разрешения для этих файлов не меняются.
Я провел эти эксперименты с CentOS 4.6.
источник
Вы можете сделать это, используя tar, ssh, & umask следующим образом:
на хосте 1:
на хосте 2:
Вы можете сбросить ключ -v на tar, который я включил здесь, просто чтобы вы могли видеть файлы, заархивированные на host1 и отправленные через STDOUT (aka. -), а затем получившиеся без tar на host2.
ПРИМЕЧАНИЕ: почему это работает? Поведение Tar по умолчанию распаковывает файлы, используя umask удаленного пользователя. В приведенном выше примере я включил команду umask, чтобы явно установить для нее что-то другое, что демонстрирует, что удаленный tar изменяет разрешения на удаленной стороне.
источник
umask
только права на субреферат, например, для локального файла, с которым700
вы не можете получить файл755
на конечном сервере, или я ошибаюсь?--no-same-permissions
для второгоtar
использования, если конечный пользователь является пользователем root, см. Superuser.com/a/383801/89031umask
для всего набора файлов, когда они записываются на удаленный сервер. Нет индивидуального контроля для разных файлов. Я буду часто использовать это, так как я хочу лишить смягченные разрешения, которые были в порядке на моем ноутбуке, например, при копировании в удаленное развертывание.--no-same-permissions
правильно также в соответствииtar
с man-страницей. Я изменил подсказки в моем примере, чтобы не было путаницы в этом.Я написал небольшой скрипт для задачи на Python. Вы можете сделать python script.py -p o + r для некоторых файлов: / dir / on / the / server /
источник
Я бы посоветовал установить бит закрепления для папки, чтобы файлы, которые вы загружаете в эту папку, автоматически получали это разрешение.
«1», использованное выше, устанавливает бит прилипания.
так что вам нужно только загрузить одну и не запускать другую команду впоследствии.
источник
Предполагая, что вы загружаете в вариант UNIX, я думаю, что разрешения должны соответствовать вашим настройкам UMASK. Я не могу вспомнить, какие точечные файлы обрабатываются для SCP, но если вы установите UMASK в один из тех файлов, которые вы создадите, будут установлены его разрешения на его основе. Вероятно, это зависит от того, какую оболочку вы используете в удаленной системе.
Что бы вы ни делали, не используйте опцию -p, так как она делает то, что вам нужно.
источник