Linux root не может удалить файл

Почему я не могу удалить этот файл как root?

У меня есть справочник экзамен с 2 файлами в нем. Мне нужно удалить файлы, но в разрешении отказано. Даже rm -rf команда не может удалить эти файлы. Я вошел в систему как пользователь root.

От пользователя root проверьте атрибуты файлов

если вы заметили i (неизменяемый) или a (только для добавления), удалите эти атрибуты:

Наиболее распространенная причина для rm жалоб на то, что у вас нет разрешения на удаление файла, заключается в том, что права доступа к каталогу запрещают вам удалять файл. Чтобы удалить файл, вам нужно разрешение на запись в каталог. Права доступа к файлу не имеют значения ( rm без -f запроса подтверждения перед удалением файла только для чтения, но это только подтверждение, а не ограничение). В некоторых вариантах Unix, таких как OSX (но не в Linux), ACL для файла может предотвратить его удаление; ls -l будет отображаться @ в конце поля разрешений, если в файле есть запись ACL.

Доступ как root обходит права, поэтому root может удалять файлы даже в каталоге, доступном только для чтения.

Вывод из ls -l показывает . в конце столбца разрешений. Это указывает на то, что файл имеет контекст безопасности SELinux. В отличие от базовых разрешений и ACL, контекст безопасности SELinux для файла может контролировать, кому разрешено его удалять. Более того, SELinux не всегда можно обойти с помощью root (возможно, чтобы процесс выполнялся с идентификатором пользователя 0, но с такими же правами, которые выбрал разработчик политики SELinux). Чтобы увидеть, что позволяет делать контекст SELinux, запустите ls -lZ . exam_a .

Еще одна вещь, которая может помешать удалению файла, это если он или каталог, в котором он находится, имеет атрибут « только для добавления» или неизменный атрибут Linux . Запустите lsattr -d . exam_a для просмотра атрибутов Linux. Если атрибут a or i включен, вам нужно удалить его ( chattr -a -i . exam_a ), чтобы удалить файл; это может сделать только root. Root не может обойти эти атрибуты, чтобы удалить файл, атрибуты должны быть отключены в первую очередь.

Еще одна вещь, которая препятствует удалению файла, — это если файловая система смонтирована только для чтения, но в этом случае вы получите другое сообщение об ошибке.

Источник

Не могу удалить файл из под root’а

Проблема такая: команда
#rm -f /usr/sbin/squid
выдаёт мне
rm: cannot remove `/usr/sbin/squid’: Permission denied
при том, что выполняю её я из под root’а.

Я уже что только не пробовал (и chattr -i /usr/sbin и chattr -i /usr/sbin/squid) — никакого эффекта. Подскажите в чём может быть дело, а то squid не хочет запускаться, я хочу его переустановить, но из-за этой ошибки не могу.

Читайте также:  Драйверы для принтера panasonic kx mb2000 для windows 10

Re: Не могу удалить файл из под root’а

Re: Не могу удалить файл из под root’а

Re: Не могу удалить файл из под root’а

Re: Не могу удалить файл из под root’а

Вот что даёт команда
#ls -l /usr/sbin/squid

-rwxr-xr-x 1 root root 698272 Feb 12 2006 /usr/sbin/squid
Т. е. все права у меня есть, но почему файл не удаляется.

Re: Не могу удалить файл из под root’а

Да, совсем забыл
#ls -ld /usr/sbin

drwxr-xr-x 2 root root 12288 Oct 3 14:21 /usr/sbin

Re: Не могу удалить файл из под root’а

может быть партиция замонтирована в режиме ro?

что говорит mount?

Re: Не могу удалить файл из под root’а

На самом деле вот из-за чего это мне всё нужно (я устанавливаю squid из rpm): #rpm -ivh squid-2.5.STABLE12-5.1.i386.rpm

warning: squid-2.5.STABLE12-5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 4f2a6fd2 Preparing. ########################################### [100%] 1:squid ########################################### [100%] error: unpacking of archive failed on file /usr/sbin/squid;470329d0: cpio: open failed — Operation not permitted

На этом установка прекращается (т. е. squid не устанавливается). Пробую удалить файлы squid;470329d0 и squid из /usr/sbin, а мне говорят, что нельзя 🙁

Проверка раздела (fsck) тоже не помогла — я специально только что создал раздел, перекинул на него данные со старого и подключил новый раздел вместо старого. До того как примонтировал новый раздел без труда смог удалить с него /usr/sbin/squid, но после монтирования (и очередной попытки установки squid’а из rmp) уже не могу удалить только что созданный /usr/sbin/squid. Не хватает прав. Подскажите, что за безобразие?

Источник

Не получается удалить файл — операция не позволена

Дистр/система-то какая? В BSD есть «супер» флаг у файлов.

Пробовал уже, то же самое.

ps: может папка bin только для чтения?

Проверил на соседнем бинарнике — нормально удалился.

Стим запущен? Может flock делает на файле или типо того?

//me не специалист, просто предполагаю

cast alpha4

Steam не запущен.

Пакет изначально устаналивался из AUR:

Потом приплыло обновление из комьюнити-репозитория:

После чего я снёс проблемный пакет, а файл так и остался.

Вон оно че. У вас в стиме можно так?!

chmod 775 /usr/bin/steam ; rm -f /usr/bin/steam

Спасибо за найденное решение 🙂

Выставление прав доступа тоже не было позволено.

Что-то я не понял, как они это сделали?

А тут не понимать надо, а знать.

A file with the `i’ attribute cannot be modified: it cannot be deleted or renamed, no link can be created to this file and no data can be written to the file. Only the superuser or a process possessing the CAP_LINUX_IMMUTABLE capability can set or clear this attribute.

зы: я тоже не знал 🙂

У меня похожая проблема. chattr пишет chattr: Неприменимый к данному устройству ioctl while reading flags on brightness

А к чему ты пытаешься его применить? Почитай man там много зависит от типа fs и опций монтирования.

путь /sys/class/backlight/acpi_video0/brightness. Файловая система ext4. В файле нужно изменить значение, а он даже под рутом не редактируется/удаляется/перезаписывается.

У меня в /sys файловая система sysfs.

Читайте также:  Chrome 64 bit version windows

Я делал только один раздел под ОС, не монтируя boot, home и прочее в разные разделы. Или он в любом случае будет sysfs?

Неужели его (Файл) никак не изменить?

бгг. RTFM про chattr

такое иногда ещё в /tmp бывает на некоторых дистрах с разными прикольными флажками — ну типа, читать низзя, типа, чукчка не читатель, чукча — писатель. в ASPLinux (не к ночи помянут!) точно такое было.

Не подскажете все таки как изменить права и возможно ли это?

тут жеж уже напейсали:

chattr -i FILE тама кстате ещё флаги есть, забавно ещё a поставить.:-)

chattr: Неприменимый к данному устройству ioctl while reading flags on /sys/class/backlight/acpi_video0/brightness

chattr

дык на /sys не будет работать. на /proc ЕМНИП — тоже.

chattr: Неприменимый к данному устройству ioctl while reading flags on /sys/class/backlight/acpi_video0/brightness

это потому, что /sys/ НЕ является нормальной ФС. И файлы там тоже особые. Ты хоть видишь, ЧТО ты удаляешь? Как ты представляешь себе УДАЛЕНИЕ ЯРКОСТИ МОНИТОРА.

Если уж хочешь удалить, снеси дрова(модуль, ядро), и перезагрузись. Удалится.

Я не хочу его удалять, я хочу изменить значение яркости в файле, написано же все выше, могли бы и прочитать сначала.

Я не хочу его удалять, я хочу изменить значение яркости в файле, написано же все выше, могли бы и прочитать сначала.

да читал я — пойми ЭТО НЕ ФАЙЛ. В этом вашем линуксе всё — файлы, это совсем не значит, что ты можешь мышку удалить/заменить путём операций с /dev/mouse. Голову тоже надо иногда подключать. Процессы тоже так не удаляются, есть команда kill, для завершения процессов. И это не смотря на то, что для каждого процесса есть «каталог» в /proc/.

Мессадж «операция не позволяется» вообще не имеет отношения к правам, а появляется тогда, когда ты что-то делаешь не так. Например пытаешься писать на CD-ROM. Просто EXT4 имеет ценную фичу — она умеет отдельно для каждого файла делать «CD-ROM», в который нельзя писать, а можно только читать. Ещё она имеет CD-R, в который можно только добавлять, а стирать и удалять — нельзя. Но у тебя не EXT4, это специальные каталоги, их нет на диске. Только одна видимость. И авторы драйверов не осилили такой способ изменения яркости, либо вообще, либо ты неправильно пишешь/открываешь.

Да читал я — пойми ЭТО НЕ ФАЙЛ. Мессадж «операция не позволяется» вообще не имеет отношения к правам, а появляется тогда, когда ты что-то делаешь не так. Например пытаешься писать на CD-ROM. Просто EXT4 имеет ценную фичу — она умеет отдельно для каждого файла делать «CD-ROM», в который нельзя писать, а можно только читать. Ещё она имеет CD-R, в который можно только добавлять, а стирать и удалять — нельзя. Но у тебя не EXT4, это специальные каталоги, их нет на диске. Только одна видимость. И авторы драйверов не осилили такой способ изменения яркости, либо вообще, либо ты неправильно пишешь/открываешь.

$ su —
Пароль:
[root@aquila

]# echo 4 > >/sys/class/backlight/acpi_video0/brightness

Извините ошибся /sys/class/backlight/acpi_video0/actual_brightness

Источник

Как удалить файл через терминал Linux

Эта небольшая заметка ориентирована на совсем начинающих. Сегодня мы рассмотрим как удалить файл linux через терминал. Для более опытных пользователей это элементарная задача, но новичкам надо с чего-то начинать. Знать как работать с файлами в консоли очень важно.

Читайте также:  Как правильно удалить принтер windows 10

К тому же удаление из консоли дает много преимуществ и большую гибкость. Например, с помощью специальной команды вы можете полностью стереть файл с жесткого диска, так что его уже ни за что невозможно будет восстановить или одной командой с помощью специальных символов, условий или регулярных выражений удалить сотни ненужных файлов в одном каталоге или подкаталогох соответствующих определенному критерию.

В Linux для удаления файлов предусмотрена стандартная утилита rm. Как и все остальные, стандартные утилиты в имени rm тоже заложена определенная идея. Это сокращение от английского слова Remove.

Удаление файлов в Linux

Чтобы удалить файл linux достаточно передать в параметрах команде адрес файла в файловой системе:

Чтобы удалить все файлы, начинающиеся на слово file можно использовать специальный символ *, означает любой символ в любом количестве:

Эта команда удаления файла в linux должна использоваться очень осторожно, чтобы не удалить ничего лишнего. В утилите есть опция -i, которая заставляет программу спрашивать пользователя перед тем, как удалить файл linux:

rm: удалить пустой обычный файл «/home/user/file»?

Если файлов очень много, вы уверены в правильности команды и отвечать каждый раз y неудобно, есть противоположная опция — f. Будут удалены все файлы без вопросов:

rm -f /home/user/file*

Для удаления директорий, вместе с файлами и поддиректориями используется опция -R, например:

rm -Rf /home/user/dir

Будет удалено все что находиться в папке dir, и эта папка. Только будьте бдительны, чтобы не получился знаменитый патч Бармина:

Не стоит выполнять эту команду в своей системе, как видите, она удаляет все файлы в файловой системе Linux.

Удаление файла в linux также возможно с помощью утилиты find. Общий синтаксис find:

find папка критерий действие

Например, мы хотим удалить файл linux по имени:

find . -type f -name «file» -exec rm -f <> \;

Будут найдены все файлы с именем file в текущей папке и для них вызвана команда rm -f. Можно не вызывать стороннюю утилиту, а использовать действие delete:

find . -type f -name «file» -delete

Удалить все файлы в текущей директории, соответствующие определенному регулярному выражению:

find . -regex ‘\./[a-f0-9\-]\.bak’ — delete

Или удалить файлы старше определенного строка, может быть полезно для удаления старых логов:

find /path/to/files* -mtime +5 -exec rm <> \;

Будет выполнено удаление файлов через терминал все файлы в папке старше 5-ти дней.

Чтобы полностью стереть файл, без возможности восстановления используйте команду shred. Во время удаления файлов с помощью утилиты rm удаляется только ссылка на файл, само же содержимой файла по-прежнему находиться на диске, пока система не перезапишет его новыми данными, а пока этого не случится файл можно легко восстановить. Принцип действия утилиты такой — после удаления файла, его место на диске несколько раз перезаписывается.

Опцией -n — можно указать количество перезаписей диска, по умолчанию используется 3. А если указать опцию -z программа при последней перезаписи запишет все нулями чтобы скрыть, уничтожение файла.

Выводы

Вот и все. Теперь вы знаете как удалить файл в Ubuntu, как видите, делать это не так уж сложно. Если у вас остались вопросы, пишите в комментариях!

Источник

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