Linux нет доступа для удаления

При попытке скопировать/удалить файл, отказано в доступе

Не скажу что в линуксе я нуб, но всё же стыдно становится от того, что залип на какой-то детской ерунде. В общем система archlinux MATE. Имеем /dev/sda, /dev/sdb и /dev/sdс Система соответственно стоит на /dev/sda До вчерашнего дня всё было нормально, но с сегодняшнего дня не могу ничего скопировать/удалить, да и вообще что-нибудь создать на /dev/sdb dev/sdc отказано в доступе. Такое ощущение что при монтировании диски ридонли. Даже в терминале пытаюсь скопирвоать от рута — отказано в доступе. При попытке chmod — неподдерживаемая операция. Может кто что подскажет. С наступающим всех.

Так проверьте:
cat /proc/mount
ls -ld что куда

[root@archlinux

]# cat /proc/mounts proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0 sys /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 dev /dev devtmpfs rw,nosuid,relatime,size=4043884k,nr_inodes=1010971,mode=755 0 0 run /run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0 /dev/sda2 / ext4 rw,relatime,data=ordered 0 0 securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0 tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0 cgroup /sys/fs/cgroup/unified cgroup2 rw,nosuid,nodev,noexec,relatime,nsdelegate 0 0 cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,name=systemd 0 0 pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0 cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0 cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0 cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0 cgroup /sys/fs/cgroup/rdma cgroup rw,nosuid,nodev,noexec,relatime,rdma 0 0 cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0 cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0 cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0 cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0 cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0 cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0 systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=36,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=733 0 0 debugfs /sys/kernel/debug debugfs rw,relatime 0 0 tmpfs /tmp tmpfs rw,nosuid,nodev 0 0 hugetlbfs /dev/hugepages hugetlbfs rw,relatime,pagesize=2M 0 0 configfs /sys/kernel/config configfs rw,relatime 0 0 mqueue /dev/mqueue mqueue rw,relatime 0 0 binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,relatime 0 0 /dev/sda1 /boot ext2 rw,relatime,block_validity,barrier,user_xattr,acl 0 0 /dev/sda3 /home ext4 rw,relatime,data=ordered 0 0 tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=810236k,mode=700,uid=1000,gid=997 0 0 gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=997 0 0 fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0 /dev/sdc5 /run/media/sharapov/Data ntfs rw,nosuid,nodev,relatime,uid=1000,gid=997,fmask=0177,dmask=077,nls=utf8,errors=continue,mft_zone_multiplier=1 0 0

А вторую команду не понял

Ну и где в твоём вывод /dev/sdb и /dev/sdc? Не смонтировано ни одной файловой системы с них.

В форме отправки сообщения на форум между полем для ввода текста сообщения и кнопками «поместить», «предпросмотр» и «отмена» есть некоторый текст, прочти его пожалуйста и в частности открой ссылку на разметку lorcode.

И обрати внимание на тег [code][/code].

Будеи выглядеть вот так:

И нажимай кнопку «предпросмотр» перед помещением, а то читать твоё сообщение невозможно.

Читайте также:  Восстановить системные файлы загрузки windows

UPD:
А вот нашёл среди каши твоего сообщения, у тебя на /dev/sdc5 NTFS и использован ядерый драйвер ntfs, который умеет только читать:

Источник

Урок 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 , но не выдает о них дополнительную информацию. Попробуем перейти в этот каталог:

Читайте также:  Стандартные комбинации при windows

И снова неудача. Попробуем установить права записи, то есть атрибут 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)?

Читайте также:  Установка даты через терминал mac os

Все верно, но это в отношении каталогов. У файлов данные атрибуты независимы друг от друга.

А как быть, если пользователь 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 :

Существует и другой способ указать права доступа — с помощью восьмеричного представления. Не будем вдаваться в подробности булевы алгебры и двоично-восьмеричного преобразования. Просто запомним таблицу:

Источник

Оцените статью