доступ запрещен — помогите попасть на диск
есть диск 640гигов — порезан на 120систем, 20свап и 500. он посыпался, система не работает, новая после установки не грузится. не могу попасть на диск 500гигов. загружаюсь с двд — убунта без установки. пишет «У вас недостаточно прав для просмотра содержимого элемента». диск надо сдавать на обмен по гарантии. как из него вытащить данные. как попасть на эти 500гигов. linux(0x83) ext4
В студию
$ ls /dev/[sh]d* /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdb1 ubuntu@ubuntu:
$ # fdisk -l /dev/sda ubuntu@ubuntu:
$ fdisk -l /dev/sda3 Невозможно открыть /dev/sda3 ubuntu@ubuntu:
$ fdisk -l /dev/sda3 Невозможно открыть /dev/sda3 ubuntu@ubuntu:
А чё на fdisk -l /dev/sda пусто?
$ ls /dev/[sh]d* /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb /dev/sdb1 ubuntu@ubuntu:
$ ls /dev/[sh]d* /dev/sda3 /dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda3 /dev/sdb /dev/sdb1 ubuntu@ubuntu:
$ fdisk -l /dev/sda3 Невозможно открыть /dev/sda3 ubuntu@ubuntu:
$ mount aufs on / type aufs (rw) none on /proc type proc (rw,noexec,nosuid,nodev) none on /sys type sysfs (rw,noexec,nosuid,nodev) fusectl on /sys/fs/fuse/connections type fusectl (rw) none on /dev type devtmpfs (rw,mode=0755) none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620) /dev/sr0 on /cdrom type iso9660 (ro,noatime) /dev/loop0 on /rofs type squashfs (ro,noatime) none on /sys/kernel/debug type debugfs (rw) none on /sys/kernel/security type securityfs (rw) none on /dev/shm type tmpfs (rw,nosuid,nodev) tmpfs on /tmp type tmpfs (rw,nosuid,nodev) none on /var/run type tmpfs (rw,nosuid,mode=0755) none on /var/lock type tmpfs (rw,noexec,nosuid,nodev) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) gvfs-fuse-daemon on /home/ubuntu/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=ubuntu) /dev/sdb1 on /media/CANON_DC type vfat (rw,nosuid,nodev,uhelper=udisks,uid=999,gid=999,shortname=mixed,dmask=0077,utf8=1,showexec,flush) /dev/sr0 on /media/apt type iso9660 (ro) /dev/sda3 on /media/500gigov type ext4 (rw,nosuid,nodev,uhelper=udisks) ubuntu@ubuntu:
Не удалось показать содержимое папки. У вас недостаточно прав для просмотра содержимого элемента «500gigov».
Источник
Права доступа к файлам в Linux
В операционной системе 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 вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.
Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:
- u — владелец файла;
- g — группа файла;
- o — другие пользователи.
Действие может быть одно из двух, либо добавить — знак «+», либо убрать — знак — «-«. Что касается самих прав доступа, то они аналогичны выводу утилиты 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:
Источник
Урок 17. Права доступа Linux к файлам и папкам
В 3-м уроке была рассмотрена команда ls -l , а также краткое описание к выводу команды. В выводе команды также присутствует информация о правах доступа к данному файлу:
Права доступа разделены на 3 группы:
- владелец файла
- группа владельцев файла
- другие пользователи
Для указания уровня доступа к файлу или каталогу используются следующие атрибуты.
- r (read) — чтение файла разрешено, то есть можно просматривать его содержимое, открывать в текстовом редакторе.
- w (write) — запись файла разрешена, то есть можно его редактировать, переименовывать, удалять.
- x (execute) — исполнение файла разрешено. Это касается исполняемых файлов.
- r (read) — разрешено просматривать содержимое каталога, то есть можно воспользоваться командой ls и посмотреть какие файлы и каталоги содержаться в данном каталоге.
- w (write) — используется совместно с атрибутом x (execute). Позволяет удалять и переименовывать файлы в каталоге.
- x (execute) — при использовании совместно атрибутом r (read) позволяет увидеть атрибуты файла, то есть его размер, дату модификации, права доступа. Одним словом позволяет полноценно воспользоваться командой ls -l . При использовании совместно с атрибутом w (write) позволяет перейти в каталог командой cd , удалять и переименовывать файлы.
Рассмотрим вышесказанное на примерах.
У нас в системе имеются 2 пользователя: teacher (учитель) и student (студент). У каждого из них имеется свой домашний каталог, в котором они могут хранить свои файлы.Так как пользователь student не является владельцем каталога /home/teacher и не относится к группе его владельцев, то для него будут действовать права доступа для категории остальных пользователей.
Домашний каталог пользователя teacher имеет следующие права доступа:
Пользователь student хочет посмотреть какие файлы имеются в данном каталоге:
Доступа нет. Попробуем хотя бы перейти в этот каталог:
Снова нет доступа.
Пользователь teacher решил всем разрешить просмотр его файлов в каталоге:
Попробуем узнать что у него хранится:
Мы узнали имена файлов, но абсолютно ничего не знаем какие это файлы и их атрибуты. То есть атрибут r (read) каталога позволяет просматривать имена (только имена) файлов с помощью ls , но не выдает о них дополнительную информацию. Попробуем перейти в этот каталог:
И снова неудача. Попробуем установить права записи, то есть атрибут w (write):
Теперь попробуем выполнить все те же действия, что и до этого:
Как видно атрибут w (write) сам по себе не работает. Удалим этот атрибут и установим x (execute):
доступ к данному каталогу у нас имеется при наличии установленных прав на чтение и исполнение.
Попробуем теперь удалить или переименовать любой файл:
Операция запрещена, так как у нас для каталога teacher/ не установлен атрибут w (write).
Но ведь сами файлы в каталоге имеют полный доступ для всех остальных пользователей.. Почему мы ничего не можем сделать с данными файлами?
Все верно, файлы имеют полный доступ для всех, однако система прежде всего смотрит на то, какие права доступа у каталога, так как файлов может быть очень много и менять права доступа каждого из них довольно утомительно и легко можно допустить ошибку. Гораздо проще установить определенные права доступа на каталоги и перемещать соответствующие файлы в эти каталоги. Кроме того, операции по удалению и перемещению файлов регламентируются правами доступа данного каталога, а не файла.
Когда для каталога запрещена запись, то остальным пользователям запрещено следующее:
- удалять файлы из каталога
- перемещать/переименовывать файлы
- создавать жесткие ссылки
- создавать новые файлы и каталоги в данном каталоге
Однако данная политика не накладывает ограничения на редактирование и копирование файлов. Можно с легкостью отредактировать и сохранить файл. Кроме того, мы можем скопировать файл в свой каталог. Причем файл будет иметь совершенно иные атрибуты. Например, скопируем файл Worknotes.txt в каталог /home/student/:
Теперь у скопированного файла новый владелец и другие права доступа. Здесь данные операции регламентируется уже правами доступа самого файла.
А что можно делать с файлами, когда установлен атрибут x (execute)?
Можно делать следующее:
- просматривать атрибуты файлов (совместно с атрибутом r ) с помощью команды ls -l
- переходить в каталог командой cd
- запуск исполняемых файлов
- совместно с атрибутом w (write) можно удалять и перемещать файлы
Теперь установим атрибут w (write) для каталога /home/teacher/ и посмотрим, что произойдет:
Теперь можно делать абсолютно что угодно с файлами и каталогами.
То есть атрибут w (write) работает всегда в паре с x (execute)?
Все верно, но это в отношении каталогов. У файлов данные атрибуты независимы друг от друга.
А как быть, если пользователь student хочет предоставить доступ к своим файлам определенным пользователям и запретить остальным?
Для этого существует группа владельцев файла. Пользователю student достаточно поменять группу владельцев файла на teache r и предоставить соответствующие права, а всем остальным — запретить:
А как поменять группу?
С помощью команды chgrp [опции] группа файл .
Например, чтобы поменять группу владельцев файла Linux.txt на teacher введем chgrp teacher Linux.txt.
А если имеется много файлов, то как это сделать быстрее и проще?
Есть специальная опция -R ( —recursive ). Например, имеется каталог Homework/ с файлами:
Применим команду chgrp -R teacher Homework/ :
А можно поменять и самого владельца?
Конечно, существует команда chown [опции] владелец файл .
Однако в тех случаях, когда нам необходимо поменять сразу и группу и владельца, то приходится выполнять 2 команды и это не очень удобно. Поэтому команда chown позволяет менять одновременно и владельца и группу chown [опции] владелец:группа файл. Опция -R ( —recursive ) действительна и для данной команды.
А как можно менять сами права для группы владельцев и остальных пользователей?
Существуют 2 способа:
Используются следующие обозначения объектов, которым предоставляем права доступа:
Права меняются с помощью команды chmod [опции] права_доступа файл. Например, файл notes.txt имеет следующие права доступа:
Запретим остальным пользователям редактирование данного файла:
chmod o-w notes.txt
Теперь разрешим группе владельцев исполнение данного файла:
chmod g+x notes.txt
То есть мы указываем объект ( u , g или о ), а затем с помощью символов управления назначаем или удаляем соответствующие права.
А можно одновременно выполнить вышеуказанные действия в одной команде?
Конечно, достаточно выполнить chmod o-w,g+x notes.txt и результат будет тот же.
А можно одновременно в одной команде выполнить следующее:
- владельцу назначить rw-
- группе назначить r-x
- остальным назначить r— ?
Конечно можно. Для этого существует символ ” = ” : chmod u=rw,g=rx,o=r notes.txt.
А если нужно всем назначить одинаковые права, например r-x , то воспользуемся chmod a=rx notes.txt :
Существует и другой способ указать права доступа — с помощью восьмеричного представления. Не будем вдаваться в подробности булевы алгебры и двоично-восьмеричного преобразования. Просто запомним таблицу:
Источник