Недостаточно прав для просмотра содержимого объекта ubuntu
Я использую Ubuntu в Virtual Box, и у меня есть папка, которая является общей для хоста (Windows) и виртуальной машины (Ubuntu). Когда я открываю какой-либо файл в папке общего доступа в Ubuntu, я не могу изменить его, так как его владелец имеет права root.
Как я могу изменить право собственности на себя?
Опции в VM - это автомонтирование, и readoly не проверяется.
Пробовал использовать /media/sf_Ubuntu , но получаю ошибку разрешения:
Обратите внимание, что я в группе vboxsf :
Как вы смонтировали общую папку? Вы разрешаете автоматическое монтирование гостевых утилит VirtualBox (т.е. / media / sf_something) или вы монтировали его вручную с помощью команды mount? Кроме того, можете ли вы описать, как вы настроили общий ресурс в VirtualBox в Windows? Есть три варианта для общего ресурса, только для чтения, автомонтирование и постоянный, какие опции вы отметили. Пожалуйста, публикуйте обновления на свой вопрос, а не комментарии. Пожалуйста, включите вывод df и команду, которую вы использовали для ручного монтирования файловой системы. Спасибо - вы увидите, что есть файловая система / media / sf_Ubuntu. Это ваша общая папка, вам не нужно монтировать ее вручную. Я предлагаю вам отключить / home / m / Desktop и просто использовать / media / sf_Ubuntu, который работает согласно моему ответу ниже. @ Тони: я не могу получить доступ к этой папке. Пожалуйста, смотрите мой оригинальный вопрос, который я добавляю больше информацииПо умолчанию без ручного действия крепления выглядят так:
поэтому vboxsf группа имеет полный доступ. Добавив своего пользователя в эту группу, вы получите полный доступ. Таким образом, вы не будете беспокоиться об изменении их разрешений (что не имеет смысла на хосте Windows), вы просто дадите себе доступ.
В данном конкретном случае это автоматически подключаемая общая папка,
и именно этот каталог следует использовать для доступа к общей папке, поместив локального пользователя в vboxsf группу. Если вам нужна «лучшая» ссылка в домашнем каталоге вашего пользователя, вы всегда можете создать символическую ссылку.
Если вы вручную монтируете общую папку, то вам нужно использовать соответствующие параметры в mount команде, чтобы установить папку с нужным владельцем (т. Е. Параметры gid, uid и umask mount ). Это связано с тем, что хост-операционная система не поддерживает ту же систему разрешений, что и Linux, поэтому VirtualBox не может знать, кто должен владеть файлами.
Тем не менее, я настоятельно рекомендую просто настроить общую папку для автоматического монтирования (это настройка конфигурации общей папки в самом VirtualBox).
Во избежание сомнений, я не верю, что вы в любом случае можете нормально изменять разрешения для этой файловой системы, если она монтируется обычным образом,
Для более комфортного управления виртуальной ОС, запущенной в VirtualBox, существует возможность создания общих папок. Они одинаково доступны из хостовой и гостевой систем и предназначены для удобного обмена данными между ними.
Общие папки в VirtualBox
Через общие папки пользователь может просматривать и использовать локально хранящиеся файлы не только на хост-машине, но и в гостевой ОС. Эта возможность упрощает взаимодействие операционных систем и избавляет от необходимости подключать флешки, переносить документы в облачные сервисы хранения и прочие способы хранения данных.
Шаг 1: Создание общей папки на хост-машине
Общие папки, с которыми в дальнейшем могут работать обе машины, должны располагаться в основной ОС. Они создаются точно таким же способом, как и обычные папки в вашей Windows или Linux. Кроме того, в качестве общей папки можно выбирать любую существующую.
Шаг 2: Настройка VirtualBox
Созданные или выбранные папки необходимо сделать доступными для обеих операционных систем через настройку VirtualBox.
-
Откройте VB Менеджер, выделите виртуальную машину и нажмите «Настроить».
Когда этот этап будет выполнен, потребуется воспользоваться дополнительным ПО, предназначенным для тонкой настройки ВиртуалБокс.
Шаг 3: Установка гостевых дополнений
Гостевые дополнения VirtualBox — это фирменный набор расширенных функций для более гибкой работы с виртуальными операционными системами.
Перед установкой не забудьте обновить VirtualBox до последней версии во избежание проблем с совместимостью программы и дополнений.
Перейдите по этой ссылке на страницу загрузок официального сайта ВиртуалБокс.
Нажмите на ссылку «All supported platforms» и скачайте файл.
На Windows и Linux он устанавливается по-разному, поэтому далее мы рассмотрим оба варианта.
- Установка VM VirtualBox Extension Pack в Windows
- Установка VM VirtualBox Extension Pack в Linux
Установка дополнений в ОС на Linux будет показана на примере самого распространенного дистрибутива — Ubuntu.
-
Запустите виртуальную систему и на панели меню VirtualBox выберите «Устройства» >«Подключить образ диска Дополнений гостевой ОС…».
«Не удалось показать содержимое этой папки. Недостаточно прав для просмотра содержимого объекта sf_Имя_папки».
Поэтому заранее рекомендуется открыть новое окно «Терминала» и прописать в нем следующую команду:
sudo adduser имя_учетной_записи vboxsf
В других дистрибутивах Linux последний шаг может несколько отличаться, однако в большинстве случаев принцип подключения общей папки остается таким же.
Таким несложным способом вы можете подключить любое количество общих папок в VirtualBox.
Отблагодарите автора, поделитесь статьей в социальных сетях.
В операционной системе Linux есть много отличных функций безопасности, но она из самых важных - это система прав доступа к файлам. Linux, как последователь идеологии ядра Linux в отличие от Windows, изначально проектировался как многопользовательская система, поэтому права доступа к файлам в linux продуманы очень хорошо.
И это очень важно, потому что локальный доступ к файлам для всех программ и всех пользователей позволил бы вирусам без проблем уничтожить систему. Но новым пользователям могут показаться очень сложными новые права на файлы в linux, которые очень сильно отличаются от того, что мы привыкли видеть в Windows. В этой статье мы попытаемся разобраться в том как работают права файлов в linux, а также как их изменять и устанавливать.
Основные права доступа к файлам в Linux
Изначально каждый файл имел три параметра доступа. Вот они:
- Чтение - разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
- Запись - разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
- Выполнение - вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.
Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:
- Владелец - набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
- Группа - любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
- Остальные - все пользователи, кроме владельца и пользователей, входящих в группу файла.
Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.
Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:
Специальные права доступа к файлам в Linux
Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.
- SUID - если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
- SGID - этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
- Sticky-bit - этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.
Теперь давайте рассмотрим как посмотреть и изменить права на файлы в Linux.
Как посмотреть права доступа к файлам в Linux
Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.
Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:
За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.
Рассмотрим подробнее, что значат условные значения флагов прав:
- --- - нет прав, совсем;
- --x - разрешено только выполнение файла, как программы но не изменение и не чтение;
- -w- - разрешена только запись и изменение файла;
- -wx - разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
- r-- - права только на чтение;
- r-x - только чтение и выполнение, без права на запись;
- rw- - права на чтение и запись, но без выполнения;
- rwx - все права;
- --s - установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
- --t - установлен sticky-bit, а значит пользователи не могут удалить этот файл.
В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные - только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.
Как изменить права файла в Linux
Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:
$ chmod опции категория действие флаг файл
Опции сейчас нас интересовать не будут, разве что только одна. С помощью опции -R вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.
Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:
Действие может быть одно из двух, либо добавить - знак "+", либо убрать - знак - "-". Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r - чтение, w - запись, x - выполнение, s - suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t - устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:
chmod ugo+rwx test5
Или заберем все права у группы и остальных пользователей:
chmod go-rwx test5
Дадим группе право на чтение и выполнение:
chmod g+rx test5
Остальным пользователям только чтение:
Для файла test6 установим SUID:
А для test7 - SGID:
Посмотрим что получилось:
Как видите, изменить права на файл в Linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.
Выводы
Вот и все, теперь вы знаете не только что такое права доступа к файлам в Linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение хочу предложить неплохое видео про права доступа в Linux:
Доброго времени суток. В прошлой статье мы с вами установили Ubuntu в качестве гостевой операционной системы в VirtualBox. Также настроили доступ к интернет для гостевой системы. Теперь давайте остановимся на настройках общих папок между хостом и гостевой системой. Да, многие скажут это элементарно. Но для гостевой Unix системы есть один маленький нюанс. Который для начинающего линуксовода может оказаться большой проблемой. И так, поехали.
Переходим в настройки нашей виртуальной машины.
Настройка общих папок в VirtualBox
Переходим в настройки нашей виртуальной машины и переходим в раздел «Общие папки»
Жмем добавить папку.
Выбираем путь к папке на хосте. Имя папки для гостевой системы. И указываем доступ к папке для гостевой системы (только чтение) и указываем подключать данную папку автоматически.
Напоминаю, хост – это машина на которой работает VirtualBox, а гостевая система – это система, которая установлена на виртуальную машину
Жмем везде «Ок». Все общую папку для виртуальной машины мы настроили. Теперь можно запустить нашу машину. И проверить.
Настройка общей папки на гостевой системе Ubuntu
Машина запущена. ОС загружена. Теперь нам надо установить дополнения гостевой системы. Для этого в окне виртуальной машины выбираем «Устройства» и жмем по «Подключить образ диска Дополнений гостевой ОС…»
Будет примонтирован диск и система предложит установить дополнения. Соглашаемся и вводим пароль для установки дополнений.
После установки перезагружаем виртуальную машину.
Открываем общую папку.
И видим ошибку «Недостаточно прав для просмотра»
Решается проблема очень просто, нужно нашего пользователя добавить в группу vboxsf, в моем случае это пользователь romcik. Для этого открываем терминал и от root выполняем следующую команду:
Вместо romchik пишите своего пользователя.
Если сразу не получилось, пишет ту же ошибку, то перезагрузите виртуальную машину.
Заключение.
Мы с вами настроили общие папки в VirtualBox, установили дополнения для гостевой ОС и настроили доступ к общей папке из гостевой ОС Ubuntu. А в следующей статье мы настроим, чтобы у нас был доступ к гостевой системе из хоста и интернет у гостевой системы одновременно.
Чтобы не пропустить выхода новых статей подписываемя: VK, twitter, facebook. И канал на youtube
В данной статье подробно рассмотрим права доступа к каталогам и файлам в 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 ввести имя пользователя):
Читайте также: