Копирование файлов с правами доступа linux
Я даже изменил тип учетной записи пользователя на ADMINISTRATOR; Пока что бесполезно. Опция PASTE в списке контекстного меню в папке /usr/share/. НЕАКТИВНО.
Как я могу скопировать эти файлы?
Во-первых, каким бы искушаемым вы ни были, никогда не входите в систему с правами root. Слишком легко сломать вещи, не подлежащие ремонту. В любом случае, по умолчанию это отключено, поэтому вам придется сделать гораздо больше, чтобы добраться до этой точки.
/usr/ принадлежит root учетная запись, так что для записи файлов вам нужно записать их как root. Два метода (несомненно, есть и другие, но вот два основных способа для большинства пользователей):
Нажмите Alt + F2, чтобы получить диалог запуска и в этом типе gksu nautilus , Это откроет окно браузера файлов, работающее от имени пользователя root. Скопируйте ваши файлы, но будьте осторожны, вы можете уничтожить систему таким образом.
Гораздо более прямой метод - просто загрузить терминал и написать:
( -R это просто рекурсивно копировать каталоги)
Если вы когда-нибудь захотите запустить несколько команд с правами root, не добавляя их все sudo Вы можете запустить sudo -i или же sudo su и вы получите корневой терминал. Но опять же, будьте осторожны с тем, что вы делаете.
Вам нужен root-доступ. Вы можете запустить nautilus с правами root с помощью gksu nautilus или может выдавать команды с sudo перед командой переместить или скопировать. Я бы не стал играть с группами пользователей на вашем месте, так как это может испортить ситуацию и испортить встроенные функции безопасности.
Вы также можете установить твик Ubuntu, а затем перейти к управлению сценариями. Там вы найдете скрипт с именем Browse от имени root. Будет добавлена новая запись в контекстное меню, которая позволит вам просматривать выбранную папку как root.
Вы просто щелкаете правой кнопкой мыши на nautilus. просматриваете как root. вводите пароль, и вы можете делать все, что захотите.
Есть простой способ сделать это:
Нажмите Alt+F2 открыть окно "Запустить приложение"
тип gksudo nautilus в текстовое поле и нажмите "Enter". Это предложит диалоговое окно пароля. Введите свой пароль sudo, и он откроет nautilus с правами суперпользователя. Оттуда вы можете перемещать / копировать файлы без каких-либо ошибок разрешения.
Примечание. Просто убедитесь, что вы не удаляете / не заменяете системные файлы.
см. аналогичный пост здесь:
Щелкните правой кнопкой мыши в любом месте на пустом рабочем столе. Нажмите создать лаунчер.
Помните, что вы можете заменить nautilus на ваш любимый браузер, вы можете попробовать xfe, поэтому после команды dl of xfe будет /usr/bin/gksu xfe , Если вы хотите создать OpenAs, вы можете вручную ввести любую программу, которую хотите запустить от имени пользователя root, Command = /usr/bin/gksu ,
Обычной практикой является использование команды cp для копирования файлов и rsync для копирования каталогов.
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права записи в целевой каталог.
Копирование файлов с помощью команды cp
В операционных системах Linux и Unix команда cp используется для копирования файлов и каталогов.
Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте параметр -i .
По умолчанию при использовании команды cp для копирования файла новый файл будет принадлежать пользователю, выполняющему команду. Используйте параметр -p чтобы сохранить режим файла, владельца и временные метки :
Скопируйте файл в каталог
Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если целевой каталог не указан, файл копируется в текущий каталог.
В следующем примере мы file.txt файл file.txt в file.txt /backup :
При указании в качестве места назначения только имени каталога скопированный файл будет иметь то же имя, что и исходный файл.
Если вы хотите скопировать файл под другим именем, вам необходимо указать желаемое имя файла:
Приведенная выше команда скопирует файл в указанный каталог как new_file.txt .
Копировать несколько файлов
Чтобы скопировать сразу несколько файлов и каталогов, укажите имена исходных файлов и каталогов, за которыми следует каталог назначения в качестве последнего аргумента:
При копировании нескольких файлов местом назначения должен быть каталог.
Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все файлы .jpg из текущего каталога в каталог /backup , вы должны использовать:
Копирование каталогов с помощью команды cp
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :
Приведенная выше команда создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.
Если целевой каталог уже существует, сам исходный каталог и его содержимое копируются в целевой каталог. Чтобы скопировать только файлы и подкаталоги, но не целевой каталог, используйте параметр -T :
Параметры, используемые при копировании файлов, также могут использоваться при копировании каталогов. Основное отличие состоит в том, что при копировании каталогов необходимо использовать параметр -R .
Копирование файлов и каталогов с помощью команды rsync
rsync включает множество параметров, которые контролируют каждый аспект его поведения.
Наиболее полезная опция -a которая рекурсивно копирует каталоги, передает специальные и блочные устройства и сохраняет символические ссылки, время модификации, группу, владение и разрешения.
Чтобы скопировать один файл из одного места в другое, вы должны выполнить следующую команду:
Если целевой файл существует, rsync перезапишет его.
Эту же команду можно использовать для копирования каталога:
Чтобы узнать больше о rsync прочтите следующие статьи:
Выводы
Мы показали вам, как копировать файлы и каталоги в системах на базе Linux и Unix, используя утилиты cp и rsync .
В данной статье подробно рассмотрим права доступа к каталогам и файлам в Linux. А также расскажу о том, как можно изменить права и владельца на файлы и директории в Linux.
Первое, что я хотел бы рассмотреть, это каким образом можно просмотреть права доступа на файлы и каталоги.
Просмотр прав доступа на файлы и каталоги в Linux.
Прежде, чем двигаться далее, советую прочитать первую статью (если Вы этого не сделали, конечно) данного цикла про навигацию в терминале.
Для статьи я создал несколько файлов и каталогов в домашней папке.
Для того, чтобы просмотреть права доступа на файлы и каталоги в нужной директории, переходим в неё и выполняем команду:
Как видно, для наших файлов и каталогов вывелась подробная информация.
Слева отображены права доступа на файл и директорию вида:
Чуть ниже подробно разберём это "непонятную" надпись, а пока двигаемся дальше.
Для того, чтобы просмотреть права доступа на определенный файл, нужно ввести следующую команду:
Вот как это выглядит:
Для того, чтобы просмотреть права доступа на определенный каталог, вводим следующую команду:
Выглядит это следующим образом:
Для того, чтобы просмотреть права доступа на директории и файлы рекурсивно внутри каталога, нужно ввести следующую команду, перейдя в нужный каталог:
либо ввести каталог:
Выглядит это следующим образом:
Расшифровка "символьной формы" прав доступа на каталоги и файлы в Linux.
Будем использовать в качестве примера в этом пункте.
Это символьная форма прав доступа в Linux. Давайте разберем её подробно.
Первый символ обозначает тип данных.
Данный символ может быть следующим:
В большинстве случаев это будет:
- | обычный файл; |
d | директория/каталог/папка (directory); |
l | символическая ссылка (link). |
Но может быть следующим:
b | файл блочного устройства (block); |
c | файл символьного устройства; |
s | доменное гнездо (socket); |
p | именованный канал (pipe). |
Следовательно, в нашем случае это директория (каталог, папка).
Следующие 9 символов обозначают права доступа.
Данные 9 символов состоят из трех групп:
- Первая группа из трех символов обозначает права доступа владельца файла или директории (u - user).
- Вторая группа из трех символов обозначает права доступа на файл или директорию для системной группы (g - group).
- Третья группа из трех символов обозначает права доступа на файл или директорию для всех остальных (o - other).
У этих трёх групп одинаковая комбинация символов, то есть:
Что же они обозначают?
Очень легко запомнить:
r | read, то есть, право доступа на чтение файла или директории. |
w | write, то есть, право на изменение и удаление файла или директории. |
x | eXecute, то есть, право на запуск файла как программы или вход в директорию. |
Всегда располагаются в таком порядке:
Если вместо какого-то символа идёт тире (минус), к примеру:
то это значит, что отсутствуют права на изменение и удаление файла или директории.
то это обозначает, что отсутствуют права на изменение и запуск файла или директории. Доступен только просмотр.
Таким образом, из нашего примера:
Как видите, ничего сложного нет.
Определение владельца и группы файла или директории.
Но у Вас может возникнуть закономерный вопрос о том, а как же узнать, кто именно является владельцем файла и какая группа?
Те же самые команды из первого пункта:
Как видно на скриншоте:
- в третей колонке идет имя владельца файла;
- в четвертой колонке идет название группы.
Следовательно, если пользователь не владелец файла, но входит в группу, то у него будут права на файл или директорию этой самой группы.
В Nautilus (файловом менеджере Ubuntu), можно нажать правой кнопкой мыши на файле, открыть свойства, перейти на вкладку "Права" и увидеть:
Здесь в графическом режиме видны права доступа, владелец и группа. И если Вы являетесь владельцем файла или директории, то Вы можете изменять права доступа.
Подробно разобрали просмотр прав доступа на файлы и каталоги Linux.
Теперь приступим к их изменению в терминале.
Изменение прав доступа на файлы и каталоги в Linux в символьном режиме.
Для того, чтобы изменить права доступа, воспользуйтесь следующим шаблоном:
Вместо persons нужно использовать совокупность символов или один из:
u | user, пользователь, владелец файла или директории. |
g | group, группа файла или директории. |
o | other, все другие. |
a | all, то есть, все вместе взятые - владелец, группа и все остальные. |
Этот символ обозначает субъект, которому будут назначены, удалены или изменены права.
Вместо Operator, может быть один из следующих символов:
+ | "плюс", добавляем нужные права. |
- | "минус", удаляем нужные права. |
= | "равно", устанавливаем нужные права. |
Этот символ обозначает оператор, от которого зависит, будут ли добавлены, удалены или установлены нужные права, которые последуют за оператором.
Вместо Rights перечисляем символы прав доступа:
r | read - чтение. |
w | write - запись. |
x | eXecute - выполнение. |
Важно замечание.
Здесь идёт цепочка из трёх перечисленных символов, но в определённом порядке rwx. Но при этом, не нужно указывать тире для пропуска. Примеры: rwx, rw, wx, rx, r, w, x.
Вместо имяфайлаилиимядиректории указываем путь к файлу или директории.
Для рекурсивного изменения прав в каталоге используется параметр -R.
То есть, если нужно изменить права всех файлов и папок внутри указанной нами директории, то после chmod просто указываем параметр -R. Выглядит это следующим образом:
Важно.
Если Вы не являетесь владельцем файла или директории или у вас нет прав на изменение файла, то нужно будет использовать права суперпользователя:
Приступим к практике. Разберём примеры.
1. Убираем права для группы на изменение файла:
2. Убираем права на чтение у группы и всех остальных:
3. Добавим для группы права на чтение и изменение:
4. Изменим рекурсивно права на файлы и директории внутри нужной директории. Отменим, к примеру, все права у остальных пользователей и групп:
Вы, наверное, зачастую видели команду:
Это значит, что мы даём права на выполнение данного файла как программы всем.
Это аналогично следующим командам:
То есть, если мы хотим изменить права файл или директорию для всех, мы можем не писать кому. Просто оператор и права.
Изменение прав доступа на файлы и каталоги в абсолютном режиме.
Есть более простой способ изменение прав доступа на файлы и каталоги в Linux. Это изменение прав доступа в числовом представлении.
Думаю, что многие из вас видели на форумах или сайтах о Linux советы по изменению прав, вида:
Вы их выполняли в терминале. А многие из вас задумывались, что это за "магические цифры". Но на самом деле никакая это не магия.
Давайте разберем, что же значат эти цифры.
Итак, у нас есть комбинация прав доступа на директорию:
А теперь делим на группы:
Теперь преобразуем в двоичном виде наши права доступа:
- если есть символ, то это 1.
- если тире (пропуск), то это 0.
Следовательно, наша комбинация будет выглядеть следующим образом:
А теперь переведем из двоичной в восьмеричную систему исчисления:
Вот и получили наше "магическое" число 775.
Более проще запомнить:
r | это 4 |
w | это 2 |
x | это 1 |
Каждая цифра обозначает определенную группу:
- Первая цифра - права для владельца,
- вторая цифра - права для группы,
- третья цифра - права для остальных.
Просто прибавляем цифры. К примеру, нам нужно чтение r и изменение w. Прибавляем 4+2, получаем 6.
Если хотим выдать полные права только владельцу файла, а остальным убрать все:
Вот так меняются права в абсолютном (числовом) режиме.
Изменение владельца и группы файла или каталога.
Для изменения владельца и группы файла или каталога есть команда chown.
Используется следующий шаблон выполнения данной команды chown:
Если хотим изменить только группу, то шаблон следующий:
Если хотим изменить только владельца, то шаблон следующий:
В принципе, ничего сложного.
Чтобы узнать имя текущего пользователя, используется команда:
Чтобы узнать в каких группах состоит текущий пользователь:
Получить список пользователей:
Получить группы конкретного пользователя (вместо user_name ввести имя пользователя):
Копирование файлов и каталогов является одной из наиболее распространенных задач, которые вы выполняете при работе в командной строке. В Linux есть несколько команд для копирования файлов с cp и rsync является наиболее широко используемыми инструментами.
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.
Копирование файлов с помощью cp команды
В операционных системах Linux и Unix cp команда используется для копирования файлов и каталогов.
Самый простой вариант использования - скопировать файл в текущем рабочем каталоге. Например, чтобы скопировать файл с именем file.txt в файл с именем file_backup.txt в текущем каталоге , вы должны выполнить следующую команду:
Если целевой файл существует, он будет перезаписан. Чтобы получить запрос на подтверждение перед перезаписью файлов, используйте -i опцию.
По умолчанию при использовании cp команды для копирования файла новый файл будет принадлежать пользователю, выполняющему команду. Используйте -p опцию, чтобы сохранить режим файла, владельца и метки времени :
Еще одна полезная опция -v . При использовании этой опции команда печатает, что делается:
Скопируйте файл в каталог
Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если каталог назначения опущен, файл копируется в текущий каталог.
В следующем примере мы копируем файл file.txt в /backup каталог:
Если в качестве места назначения указано только имя каталога, то скопированный файл будет иметь то же имя, что и исходный файл.
Если вы хотите скопировать файл под другим именем, вам нужно указать желаемое имя файла:
Команда выше скопирует файл в указанный каталог как new_file.txt .
Скопируйте несколько файлов
Для одновременного копирования нескольких файлов и каталогов укажите имена исходных файлов и каталогов, а затем конечный каталог в качестве последнего аргумента:
При копировании нескольких файлов местом назначения должен быть каталог.
Команда cp также позволяет использовать сопоставление с образцом. Например, чтобы скопировать все .jpg файлы из текущего каталога в /backup каталог, вы должны использовать:
Копирование каталогов с помощью cp команды
Чтобы скопировать каталог, включая все его файлы и подкаталоги, используйте параметр -R или -r . В следующем примере мы копируем каталог Pictures в Pictures_backup :
Команда выше создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.
Если целевой каталог уже существует, сам исходный каталог и все его содержимое будут скопированы в целевой каталог. Чтобы скопировать только файлы и подкаталоги, но не целевые каталоги, используйте -T параметр:
Параметры, используемые при копировании файлов, также можно использовать при копировании каталога. Основное отличие заключается в том, что при копировании каталогов необходимо использовать эту -R опцию.
Копирование файлов и каталогов с помощью rsync команды
rsync это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и каталоги между двумя местоположениями. Он может быть использован для копирования файлов в локальные и удаленные места.
rsync включает в себя ряд параметров, которые контролируют каждый аспект его поведения. Наиболее полезный вариант - -a это рекурсивное копирование каталогов, передача специальных и блочных устройств, сохранение символических ссылок, времени модификации, группы, владельца и разрешений.
Чтобы скопировать один файл из одного места в другое, вы должны выполнить следующую команду:
Если целевой файл существует, он rsync будет перезаписан.
Эту же команду можно использовать для копирования каталога:
rsync угрожает исходным каталогам, которые заканчиваются косой чертой по- / другому. Если вы добавите косую черту в исходный каталог, команда скопирует только содержимое исходного каталога в целевой каталог. Если завершающий слеш опущен, rsync будет скопирован исходный каталог в целевой каталог. Самый безопасный вариант - всегда включать косую черту / как в пункте назначения, так и в источнике.
Чтобы узнать больше о rsync проверке следующих статей:
Вывод
В этом руководстве мы показали вам , как копировать файлы и каталоги в Linux и Unix системах , основанных на использовании cp и rsync утилиты.
Читайте также: