как скопировать файл с правами администратора linux
Урок 17. Права доступа Linux к файлам и папкам
Права доступа разделены на 3 группы:
Для указания уровня доступа к файлу или каталогу используются следующие атрибуты.
Рассмотрим вышесказанное на примерах.
У нас в системе имеются 2 пользователя: teacher (учитель) и student (студент). У каждого из них имеется свой домашний каталог, в котором они могут хранить свои файлы.Так как пользователь student не является владельцем каталога /home/teacher и не относится к группе его владельцев, то для него будут действовать права доступа для категории остальных пользователей.
Домашний каталог пользователя teacher имеет следующие права доступа:
Пользователь student хочет посмотреть какие файлы имеются в данном каталоге:
Доступа нет. Попробуем хотя бы перейти в этот каталог:
Пользователь teacher решил всем разрешить просмотр его файлов в каталоге:
Попробуем узнать что у него хранится:
И снова неудача. Попробуем установить права записи, то есть атрибут w (write):
Теперь попробуем выполнить все те же действия, что и до этого:
Как видно атрибут w (write) сам по себе не работает. Удалим этот атрибут и установим x (execute):
доступ к данному каталогу у нас имеется при наличии установленных прав на чтение и исполнение.
Попробуем теперь удалить или переименовать любой файл:
Операция запрещена, так как у нас для каталога teacher/ не установлен атрибут w (write).
Но ведь сами файлы в каталоге имеют полный доступ для всех остальных пользователей.. Почему мы ничего не можем сделать с данными файлами?
Все верно, файлы имеют полный доступ для всех, однако система прежде всего смотрит на то, какие права доступа у каталога, так как файлов может быть очень много и менять права доступа каждого из них довольно утомительно и легко можно допустить ошибку. Гораздо проще установить определенные права доступа на каталоги и перемещать соответствующие файлы в эти каталоги. Кроме того, операции по удалению и перемещению файлов регламентируются правами доступа данного каталога, а не файла.
Когда для каталога запрещена запись, то остальным пользователям запрещено следующее:
Однако данная политика не накладывает ограничения на редактирование и копирование файлов. Можно с легкостью отредактировать и сохранить файл. Кроме того, мы можем скопировать файл в свой каталог. Причем файл будет иметь совершенно иные атрибуты. Например, скопируем файл Worknotes.txt в каталог /home/student/:
Теперь у скопированного файла новый владелец и другие права доступа. Здесь данные операции регламентируется уже правами доступа самого файла.
А что можно делать с файлами, когда установлен атрибут x (execute)?
Можно делать следующее:
Теперь установим атрибут w (write) для каталога /home/teacher/ и посмотрим, что произойдет:
Теперь можно делать абсолютно что угодно с файлами и каталогами.
То есть атрибут w (write) работает всегда в паре с x (execute)?
Все верно, но это в отношении каталогов. У файлов данные атрибуты независимы друг от друга.
А как быть, если пользователь student хочет предоставить доступ к своим файлам определенным пользователям и запретить остальным?
А как поменять группу?
Например, чтобы поменять группу владельцев файла Linux.txt на teacher введем chgrp teacher Linux.txt.
А если имеется много файлов, то как это сделать быстрее и проще?
Есть специальная опция -R ( —recursive ). Например, имеется каталог Homework/ с файлами:
А можно поменять и самого владельца?
Однако в тех случаях, когда нам необходимо поменять сразу и группу и владельца, то приходится выполнять 2 команды и это не очень удобно. Поэтому команда chown позволяет менять одновременно и владельца и группу chown [опции] владелец:группа файл. Опция -R ( —recursive ) действительна и для данной команды.
А как можно менять сами права для группы владельцев и остальных пользователей?
Существуют 2 способа:
Используются следующие обозначения объектов, которым предоставляем права доступа:
Права меняются с помощью команды chmod [опции] права_доступа файл. Например, файл notes.txt имеет следующие права доступа:
Запретим остальным пользователям редактирование данного файла:
Теперь разрешим группе владельцев исполнение данного файла:
А можно одновременно выполнить вышеуказанные действия в одной команде?
Конечно, достаточно выполнить chmod o-w,g+x notes.txt и результат будет тот же.
А можно одновременно в одной команде выполнить следующее:
Конечно можно. Для этого существует символ ” = ” : chmod u=rw,g=rx,o=r notes.txt.
Как мне скопировать файлы, которым нужен root-доступ, с помощью scp?
У меня есть сервер Ubuntu, к которому я подключаюсь по SSH.
Вы знаете, как я мог справиться с этим?
Если бы я работал на своей локальной машине, я бы позвонил, gksudo nautilus но в этом случае у меня есть только терминальный доступ к машине.
Другим решением будет изменение прав доступа / владельцев каталогов, в которые вы загружаете файлы, чтобы ваш непривилегированный пользователь мог писать в эти каталоги.
Быстрый способ
С сервера на локальную машину:
С локального компьютера на сервер:
Вы также можете использовать ansible для этого.
Скопируйте на удаленный хост, используя модуль ansible copy :
Получить с удаленного хоста, используя модуль ansible fetch :
Конкретный вызов для этого вопроса
С кратким призывом быть:
PS Я понимаю, что высказывание «просто установите этот невероятный инструмент» является своего рода глухим ответом. Но я обнаружил, что ansible очень полезен для администрирования удаленных серверов, поэтому его установка, несомненно, принесет вам другие преимущества, помимо развертывания файлов.
При запуске sudo su любые файлы, которые вы создаете, будут принадлежать пользователю root, но по умолчанию невозможно напрямую войти в систему как root с помощью ssh или scp. Также невозможно использовать sudo с scp, поэтому файлы нельзя использовать. Исправьте это, заявив право собственности на ваши файлы:
Предполагая, что ваше имя пользователя было dimitri, вы можете использовать эту команду.
С этого момента, как уже упоминалось в других ответах, «Ubuntu» использует sudo, а не root-логины. Это полезная парадигма с большими преимуществами безопасности.
Может быть, лучшим способом является использование rsync ( Cygwin / cwRsync в Windows) поверх SSH?
Например, чтобы загрузить файлы с владельцем www-data :
В вашем случае, если вам нужны привилегии root, команда будет выглядеть так:
В дополнение к входу в систему на сервере, он будет перенаправлять каждое соединение, выполненное на порту 11111 сервера, на порт 22 вашей машины: порт, который вы sshd прослушиваете.
На сервере начните передачу файла следующим образом:
Вы можете использовать сценарий, который я написал, вдохновленный этой темой:
но это требует некоторых сумасшедших вещей (что, кстати, автоматически делается по сценарию)
Вы можете комбинировать ssh, sudo и, например, tar для передачи файлов между серверами, не имея возможности войти в систему как root и не имея разрешения на доступ к файлам с вашим пользователем. Это немного неудобно, поэтому я написал сценарий, чтобы помочь этому. Вы можете найти скрипт здесь: https://github.com/sigmunau/sudoscp
Вот модифицированная версия ответа Вилли Уилера, которая передает файл (ы) через tar, но также поддерживает передачу пароля к sudo на удаленном хосте.
Единственным недостатком является то, что read примет ввод, прежде чем sudo успеет отослать ответ. На быстром соединении и быстром удаленном хосте вы не заметите этого, но можете сделать это медленно. Любая задержка не повлияет на возможность ввода приглашения; это может появиться только после того, как вы начали печатать.
Примечание. Я просто добавил запись файла хоста для «remote_Host» на мою локальную машину для демонстрации.
Как копировать файлы и каталоги в Linux
How to Copy Files and Directories in Linux
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.
Копирование файлов и каталогов является одной из наиболее распространенных задач, которые вы выполняете при работе в командной строке. В Linux есть несколько команд для копирования файлов с cp и rsync является наиболее широко используемыми инструментами.
Чтобы иметь возможность копировать файлы и каталоги, у вас должны быть как минимум права на чтение исходного файла и права на запись в целевой каталог.
Копирование файлов с помощью cp команды
В операционных системах Linux и Unix cp команда используется для копирования файлов и каталогов.
Скопируйте файл в каталог
Чтобы скопировать файл в каталог, укажите абсолютный или относительный путь к каталогу. Если каталог назначения опущен, файл копируется в текущий каталог.
В следующем примере мы копируем файл file.txt в /backup каталог:
Если в качестве места назначения указано только имя каталога, то скопированный файл будет иметь то же имя, что и исходный файл.
Если вы хотите скопировать файл под другим именем, вам нужно указать желаемое имя файла:
Скопируйте несколько файлов
Для одновременного копирования нескольких файлов и каталогов укажите имена исходных файлов и каталогов, а затем конечный каталог в качестве последнего аргумента:
При копировании нескольких файлов местом назначения должен быть каталог.
Копирование каталогов с помощью cp команды
Команда выше создаст каталог назначения и рекурсивно скопирует все файлы и подкаталоги из источника в каталог назначения.
Копирование файлов и каталогов с помощью rsync команды
rsync это быстрая и универсальная утилита командной строки, которая синхронизирует файлы и каталоги между двумя местоположениями. Он может быть использован для копирования файлов в локальные и удаленные места.
Чтобы скопировать один файл из одного места в другое, вы должны выполнить следующую команду:
Если целевой файл существует, он rsync будет перезаписан.
Эту же команду можно использовать для копирования каталога:
Чтобы узнать больше о rsync проверке следующих статей:
Вывод
Получить root-доступ для копирования файлов в /usr/share/.
Я даже изменил тип учетной записи пользователя на ADMINISTRATOR; Пока что бесполезно. Опция PASTE в списке контекстного меню в папке /usr/share/. НЕАКТИВНО.
Как я могу скопировать эти файлы?
5 ответов
Во-первых, каким бы искушаемым вы ни были, никогда не входите в систему с правами root. Слишком легко сломать вещи, не подлежащие ремонту. В любом случае, по умолчанию это отключено, поэтому вам придется сделать гораздо больше, чтобы добраться до этой точки.
/usr/ принадлежит root учетная запись, так что для записи файлов вам нужно записать их как root. Два метода (несомненно, есть и другие, но вот два основных способа для большинства пользователей):
Вам нужен root-доступ. Вы можете запустить nautilus с правами root с помощью gksu nautilus или может выдавать команды с sudo перед командой переместить или скопировать. Я бы не стал играть с группами пользователей на вашем месте, так как это может испортить ситуацию и испортить встроенные функции безопасности.
Вы также можете установить твик Ubuntu, а затем перейти к управлению сценариями. Там вы найдете скрипт с именем Browse от имени root. Будет добавлена новая запись в контекстное меню, которая позволит вам просматривать выбранную папку как root.
Вы просто щелкаете правой кнопкой мыши на nautilus. просматриваете как root. вводите пароль, и вы можете делать все, что захотите.
Есть простой способ сделать это:
Нажмите Alt+F2 открыть окно «Запустить приложение»
тип gksudo nautilus в текстовое поле и нажмите «Enter». Это предложит диалоговое окно пароля. Введите свой пароль sudo, и он откроет nautilus с правами суперпользователя. Оттуда вы можете перемещать / копировать файлы без каких-либо ошибок разрешения.
Примечание. Просто убедитесь, что вы не удаляете / не заменяете системные файлы.
см. аналогичный пост здесь:
Щелкните правой кнопкой мыши в любом месте на пустом рабочем столе. Нажмите создать лаунчер.
Дважды щелкните новый лаунчер на рабочем столе. Обратите внимание, что все, что вы хотите скопировать и вставить, должно быть сделано в этом браузере, вы не можете просто перетащить на пространство рабочего стола вашего пользователя, поэтому, если вам нужно открыть браузеры, просто дважды щелкните по новой панели запуска дважды. Добро пожаловать, чтобы перетащить root.
Права доступа
В этой статье вы узнаете, как работают разрешения в Linux и как ими можно эффективно пользоваться, чтобы повысить безопасность вашей системы.
Что это такое
Права доступа определяют, какие действия конкретный пользователь может или не может совершать с определенным файлами и каталогами.
С помощью разрешений можно создать надежную среду — такую, в которой никто не может поменять содержимое ваших документов или повредить системные файлы.
Как работают права доступа
Есть 3 вида разрешений. Они определяют права пользователя на 3 действия: чтение, запись и выполнение. В Linux эти действия обозначаются вот так:
У каждого файла есть 3 группы пользователей, для которых можно устанавливать права доступа.
Как узнать разрешения файла
В приведенном выше примере первые 10 символов вывода показывают разрешения файла.
Как изменить права доступа
Для изменения прав доступа к файлу или каталога используется команда chmod (от англ. change mode). Эта команда меняет биты режима файла — если совсем просто, это индикатор разрешений.
Разберем на примере. Давайте дадим группе разрешение на выполнение, а затем отзовем разрешение на запись для владельца.
Права доступа необязательно выдавать индивидуально. Можно назначить сразу несколько разрешений.
Может показаться странным, что владелец файла может сам себя лишить прав. Но бывают случаи, когда такая возможность очень полезна. Допустим, у вас есть файл с данными, которые мы не хотели бы случайно изменить.
Да, вы можете лишать себя каких-то разрешений, но у вас всегда остается возможность выдавать права. Всегда сможете вернуть себе отозванное разрешение.
Короткая форма записи прав
Для разрешений можно установить сокращенные формы записи. С их помощью выдавать разрешения будет быстрее. Сокращения полезны, когда нужно регулярно применять набор разрешений для определенных файлов.
Вспомним восьмеричную систему
Чтобы понять, как работает этот сокращенный метод, давайте освежим знания по системам счисления.
Мы используем десятичную систему счисления, в которой 10 цифр: от 0 до 9. Еще есть восьмеричная система счисления, в которой используется 8 цифр: от 0 до 7.
Разрешений — 3 вида, каждый кодируется 1 (разрешение есть) или 0 (разрешения нет). Поэтому для кодирования всех разрешений требуется 2 3 = 8 комбинаций. Соответственно, для записи каждого разрешения используется восьмеричная система счислений. Числа восьмеричной системы счисления можно представить в двоичной системе, в которой всего две цифры: 0 и 1. Вот, как восьмеричные числа выглядят в двоичной с. с.