- Как скопировать права доступа ACL при переносе данных с сервера на сервер
- Онлайн курс по Linux
- Как скопировать права доступа к файлу и право собственности на другой файл в Linux
- Скопировать права доступа к файлу в другой файл
- Скопировать право собственности на файл в другой файл
- Как скопировать права доступа к файлу и владение другим файлом в Linux
- Копировать права доступа к файлу в другой файл
- Скопировать право собственности на файл в другой файл
- Как скопировать разрешения и права на использование другого файла в Linux
- Скопировать права файлов в другой файл
- Скопировать владельца файла в другой файл
- You may also like
- 📜 Чтение файла построчно на Bash
- 📧 В чем разница между IMAP и POP3
- ✔️ Как управлять контейнерами LXD от имени обычного.
- 📜 Руководство для начинающих по созданию первого пакета.
- Феноменальная популярность электроники Xiaomi: основные причины
- 📜 Получение вчерашней даты в Bash: Практическое руководство
- Использование специальных гелей при мышечных болях
- 🐧 Сравнение команд Printf и Echo на Linux
- 📦 Как расширить/увеличить файловую систему VxFS на Linux
- Услуги по размещению серверного оборудования в ЦОД
- Leave a Comment Cancel Reply
- • Свежие записи
- • Категории
- • Теги
- • itsecforu.ru
- • Страны посетителей
- IT is good
Как скопировать права доступа ACL при переносе данных с сервера на сервер
Возникла необходимость перенести файлы из одной сетевой шары на линуксе на другой сервер. Оба сервера включены в домен AD. Казалась бы простая задача, бери да копируй. Права доступа должны сохраниться, ведь обе машины в одном и то же домене. Но все оказалось не так просто.
Если у вас есть желание научиться администрировать системы на базе Linux, рекомендую познакомиться с онлайн-курсом «Linux для начинающих» в OTUS. Курс для новичков, для тех, кто с Linux не знаком. Подробная информация.
Для меня было большим удивлением, что при простом копировании через windows машину права доступа не сохранялись. На обоих серверах была файловая система с поддержкой ACL. Установить потом права вручную можно было. То есть функционал весь был, но права доступа не сохранялись. Отмечу сразу, что сервер, с которого забирал информацию был QNAP, копировал на CentOS 7.
Вторым этапом была попытка примонтировать сразу на сервер приемник файловую шару через cifs. Но при этом права доступа ACL тоже не копировались. Стал искать информацию на эту тему в интернете и нашел, что действительно, через cifs acl права не переносятся. Там есть свои утилиты для проверки и назначения прав: getcifsacl и setcifsacl. Вручную ковыряться с этим не захотелось.
Следующим этапом была попытка использовать утилиту от Microsoft — Robocopy. Понравился ее функционал, она действительно все копирует с сохранением прав доступа и другой информации о файлах. Но вот незадача. После копирования данных с одной файловой шары на другую, появлялись права доступа в виде неизвестных SID и не переводились в группы и пользователи. Ну и доступ, соответственно, не работал. Не понимаю, почему так получалось.
Я крепко призадумался, как же быть. У меня не было времени разбираться подробно, нужно было быстро что-то придумать. Возможно я где-то ошибся или невнимательно смотрел и этот процесс все же можно провести быстро. Был бы рад совету на эту тему. Раньше мне не приходилось заниматься переносом данных с samba шар с сохранением доступа. А данные с виндовых шар без проблем переносятся с сохранением прав доступа. Даже не знал, что могут возникнуть такие проблемы при переносе информации с шар на samba.
В итоге для переноса данных с сохранением прав доступа ACL я поступил следующим образом. На первом сервере, где лежали данные выполнил команду:
# getfacl -R /share/MD1_DATA/documents > permissions.acl
Команда рекурсивно собрала права доступа со всех каталогов и файлов и записала в текстовый файл. Если шара очень большая, то файл будет внушительных размеров. У меня на шаре с 80 000 каталогов и 500 000 файлов такой файл занимал 240мб. Дальше было бы здорово сделать на сервере приемнике команду:
# setfacl --restore=permissions.acl
И на этом закончить. Но все не так просто. Во-первых, в полученном файле были указаны пути в следующем формате:
# file: share/MD1_DATA/soft/Player
Почему-то в начале пути не стоял слеш. Команда setfacl сразу на это ругнулась. Плюс на сервере приемнике был другой путь, значит, его нужно отредактировать для всех описываемых объектов прав доступа во всем 240мб файле. Просто открыть его в текстовом редакторе и сделать замену затруднительно. Пришлось искать другое решение. На помощь пришла утилита sed:
# sed 's/share\/MD1_DATA/\/shares/g' permissions.acl > 1.acl
С помощью этой команды я заменил фразу share/MD1_DATA на /shares и получил теперь правильный путь /shares/soft/Player.
Но это было не все. Дальше в файле с правами доступа встречались не доменные пользователи, а локальные того сервера, с которого переезжали. Нужно было их тоже всех удалить, иначе команда не отрабатывала, вылетала с ошибкой. В моем случае это были пользователи: admin, guest, everyone. Я опять же с помощью sed просто удалил все строки, где встречались эти фразы. Делал это на всякий случай поэтапно с проверкой на каждом этапе. Получилось вот так:
# sed '/admin/d' 1.acl > 2.acl # sed '/guest/d' 2.acl > 3.acl # sed '/everyone/d' 3.acl > 4.acl
Можно было все в одной команде сделать, но я не очень силен в построении регулярных выражений, не было времени разбираться, сделал так. Утилита на удивление быстро работает. Буквально 2-3 секунды и строки удалены из файла.
После этого на сервере приемнике запустил команду:
И все доменные права доступа благополучно установились. Утилита работала достаточно долго, минут 15.
Надеюсь, мой опыт покажется кому-то полезным. А еще лучше, если бы мне кто-нибудь подсказал, как ту же самую операцию сделать проще и быстрее. Я почему-то убежден, что есть более простой способ. Возможно проблемы были из-за того, что один из серверов был QNAP. По идее это линукс, есть доступ по ssh, внутри samba. Но как там все подробно устроено не знаю, возможно что-то изменено.
Онлайн курс по Linux
- Умение строить отказоустойчивые кластера виртуализации для запуска современных сервисов, рассчитанных под высокую нагрузку.
- Будете разбираться в современных технологиях кластеризации, оркестрации и виртуализации.
- Научитесь выбирать технологии для построения отказоустойчивых систем под высокую нагрузку.
- Практические навыки внедрения виртуализации KVM, oVirt, Xen.
- Кластеризация сервисов на базе pacemaker,k8s, nomad и построение дисковых кластеров на базе ceph, glaster, linstore.
Как скопировать права доступа к файлу и право собственности на другой файл в Linux
Предположим, у вас есть два файла или вы только что создали новый файл и хотите, чтобы он имел те же права и права собственности, что и старый файл.
В этой статье мы покажем вам, как копировать разрешения и владельца из одного файла в другой файл в Linux с помощью команд chmod и chown соответственно.
Скопировать права доступа к файлу в другой файл
Чтобы скопировать права доступа к файлу из одного файла в другой, используйте команду chmod с переключателем —reference в следующем синтаксисе, где reference_file — это файл, из которого будут скопированы разрешения, а не указывать режим (т. е. разрешения в восьмеричном или числовом режиме) для файла.
$ chmod --reference=reference_file file
$ ls -l users.list $ ls -l keys.list $ sudo chmod --reference=users.list keys.list $ ls -l keys.list
Скопировать право собственности на файл в другой файл
Аналогичным образом, чтобы скопировать права собственности из другого файла, используйте команду chown с переключателем —reference , используя следующий синтаксис, где reference_file — это файл. из которого будут скопированы владелец и группа, а не указывать значения владелец:группа для файла.
$ chown --reference=reference_file file
$ ls -l keys.list $ touch api.list $ ls -l keys.list $ sudo chown --reference=keys.list api.list $ ls -l api.list
Вы также можете копировать права доступа к файлам и права собственности из одного файла в несколько файлов, как показано ниже.
$ sudo chmod --reference=users.list users1.list users2.list users3.list $ sudo chown --reference=users.list users1.list users2.list users3.list
Для получения дополнительной информации обратитесь к справочным страницам chown и chmod.
Вы также найдете полезными следующие руководства, касающиеся прав доступа к файлам:
- Как управлять пользователями и группами в Linux
- Перевод разрешений rwx в восьмеричный формат в Linux
- Как найти файлы с разрешениями SUID и SGID в Linux
Вот и все! Если вы знаете какой-либо другой способ копирования или клонирования прав доступа к файлам в Linux, поделитесь с нами через форму обратной связи ниже.
Как скопировать права доступа к файлу и владение другим файлом в Linux
Предполагая вы только, что создали новый файл и хотите, чтобы у него были те же разрешения и право владения как у более старого файла.
В этой статье мы покажем вам, как копировать права доступа и владение из одного файла в другой файл в Linux с помощью команд chmod и chown соответственно.
Копировать права доступа к файлу в другой файл
Чтобы скопировать права доступа к файлу из одного файла в другой файл, используйте команду chmod с —reference переключателем в следующем синтаксисе, где reference_file — это файл, из которого будут скопированы разрешения, а не указание режима (то есть разрешения в восьмеричном или числовом режиме) для файла.
$ chmod --reference=reference_file file
$ ls -l users.list $ ls -l keys.list $ sudo chmod --reference=users.list keys.list $ ls -l keys.list
Скопировать право собственности на файл в другой файл
Аналогично, чтобы скопировать владельца из другого файла, используйте команду chown с —reference переключателем, также используя следующий синтаксис, где reference_file — это файл, из которого будет скопирован владелец и группа, а не указание владельца: значения группы для файла.
$ chown --reference=reference_file file
$ ls -l keys.list $ touch api.list $ ls -l keys.list $ sudo chown --reference=keys.list api.list $ ls -l api.list
Вы также можете скопировать права доступа к файлам и права собственности из одного файла в несколько файлов, как показано ниже.
$ sudo chmod --reference=users.list users1.list users2.list users3.list $ sudo chown --reference=users.list users1.list users2.list users3.list
Для получения дополнительной информации обратитесь к справочным страницам chown и chmod.
Если вы знаете какой-либо другой способ копирования или клонирования прав доступа к файлам в Linux, поделитесь с нами через форму обратной связи ниже.
Как скопировать разрешения и права на использование другого файла в Linux
Как скопировать права на файлы и принадлежность к другому файлу в Linux.
Если у вас есть два файла или вы только что создали новый файл и хотите, чтобы у него были одинаковые права доступа и права собственности на старый файл.
В этой статье мы покажем вам, как копировать разрешения и права собственности из одного файла в другой файл в Linux, используя команды chmod и chown соответственно.
Скопировать права файлов в другой файл
Чтобы скопировать права доступа к файлам из одного файла в другой файл, используйте команду chmod с ключом -reference в следующем синтаксисе, где reference_file – это файл, из которого будут скопированы разрешения, а не заданы режимы (то есть разрешения для восьми или числового режима) для файла.
$ chmod --reference=reference_file file
$ ls -l users.list $ ls -l keys.list $ sudo chmod --reference=users.list keys.list $ ls -l keys.list
Скопировать владельца файла в другой файл
Аналогично, чтобы скопировать право собственности из другого файла, используйте команду chown с помощью переключателя -reference, используя следующий синтаксис, где reference_file – это файл, из которого владелец и группа будут скопированы, а не задают владельца: значения группы для файла.
$ chown --reference=reference_file file
$ ls -l keys.list $ touch api.list $ ls -l keys.list $ sudo chown --reference=keys.list api.list $ ls -l api.list
Вы также можете скопировать права доступа и права собственности от одного файла к нескольким файлам, как показано ниже
$ sudo chmod --reference=users.list users1.list users2.list users3.list $ sudo chown --reference=users.list users1.list users2.list users3.list
Для получения дополнительной информации обратитесь к страницам chown и chmod.
itisgood
Как использовать редактор Vim-anywhere для ввода текста
Как удалить файлы Root Mails (Mailbox)
You may also like
📜 Чтение файла построчно на Bash
📧 В чем разница между IMAP и POP3
✔️ Как управлять контейнерами LXD от имени обычного.
📜 Руководство для начинающих по созданию первого пакета.
Феноменальная популярность электроники Xiaomi: основные причины
📜 Получение вчерашней даты в Bash: Практическое руководство
Использование специальных гелей при мышечных болях
🐧 Сравнение команд Printf и Echo на Linux
📦 Как расширить/увеличить файловую систему VxFS на Linux
Услуги по размещению серверного оборудования в ЦОД
Leave a Comment Cancel Reply
• Свежие записи
• Категории
• Теги
• itsecforu.ru
• Страны посетителей
IT is good
В этой статье вы узнаете, как удалить удаленный Git-репозиторий. Процесс прост, но его полезно запомнить, чтобы избежать неожиданностей в будущем. Git – это…
В 11-й версии своей операционной системы Microsoft серьезно переработала интерфейс и убрала несколько привычных функций. Нововведения не всем пришлись по душе. Мы дадим…
Продажа ноутбука нередко становится хлопотным занятием. Кроме поиска покупателя, продавцу необходимо подготовить устройство перед проведением сделки. Но если последовательно выполнить все шаги, ничего…
Вы можете оказаться в ситуации, когда вам нужно использовать скрипт шелла для чтения файлов построчно. В этом руководстве я расскажу о нескольких способах…
Вторичное жильё выгоднее для молодых семей, желающих приобрести свою первую квартиру. Сталкиваясь с ипотечным кредитованием, можно избежать много лишней суеты и проблем, если…