Как удалить root файл linux

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

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

Источник

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

Управление операционной системой Linux осуществляется благодаря терминалу, посредством множества разнообразных команд и стандартных утилит. Что касается процедуры удаления файла, то она относится к разряду элементарных задач, однако не каждый владеет необходимыми знаниями для осуществления данной затеи.

Удаление через rm

Для удаления файла, необходимо ввести команду rm и название документа.

Данная команда удалит dokument, с некоторыми особенностями:

  • Интерпретатор запросит подтверждение на операцию.
  • В примере предполагается, что dokument находится в домашнем каталоге как и пользователь (/root/).
Читайте также:  Как посмотреть под каким пользователем linux

Удалим файл «newfile» из каталога /usr/games.

Удалить все файлы в папке.

Ключ «-f» даст возможность не выводить запрос на подтверждение операции. Однако, команда выше очистит только все файлы из каталога «games» не трогая директории.

Если нужно очистить систему от всех файлов, которые заканчиваются «.doc», следует приписать в самом конце команды символ «*», без пробела.

rm -f /usr/games/*.doc

Утилита Remove (rm) требует особой осторожности в работе. При халатном отношении к делу пользователь может навсегда стереть важные файлы.

Чтобы подобный казус не случился, рекомендуется совершать удаление файлов при помощи стандартной программы rm с добавлением опции -i. Она станет некой перестраховкой в данном вопросе – система начнет запрашивать подтверждение пользователя перед удалением файлов из каталога. Как это выглядит на практике:

Если пользователю не нужен запрос на подтверждение, и он на 100% уверен в правильности своих дальнейших действий, можно вписать в команду опцию с противоположным воздействием на процесс (-f).

rm -i /usr/games/*.doc

Удаление через find

Для реализации задуманного можно воспользоваться еще одной альтернативной программой find. Кроме того, она пригодится даже там, где rm не осилит поставленную задачу. Её синтаксис выглядит следующим образом:

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

К примеру, пользователю нужно очистить текущий каталог от всех файлов с названием «file». Их можно найти и уничтожить следующим способом:

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

Чтобы удалить устаревшие логи (то есть, файлы старше конкретного срока), используйте специальную команду в виде:

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

Исходя из заданной команды, можно понять, что Линукс удалит из текущего каталога все файлы, «возраст» которых превышает 5 дней. Вот видите, как легко управлять устройством посредством терминала!

Иногда в Linux наличествуют файлы, восстановление которых не имеет ни малейшей актуальности посте чистки ПК. То есть, от них нужно избавиться раз и навсегда. Если использовать ранее упомянутую программу rm, то ничего не получится, поскольку она удаляет лишь ссылку на файл, сохраняя при этом его содержимое в памяти устройства. Он все еще будет поддаваться восстановлению, ровно до того момента, пока Линукс не перезапишет его иной информацией.

Через shred

Чтобы очистить систему от документа без возможности его дальнейшего восстановления, нужно использовать специальную команду под названием «shred». Как только срабатывает команда, файл удаляется, и система неоднократно перезаписывает его место на диске. Как это выглядит на практике:

Что происходит далее? Система перезаписывает место на диске 3 раза (по умолчанию), но это количество поддается коррективам. Используйте опцию -n, если нужно что-то поменять. Добавление опции -z также повлияет на итоговый результат. С ней система запишет место на диске нулями, чтобы никто не мог догадаться о том, что определенный файл был уничтожен пользователем.

Источник

Как удалить файлы и каталоги в терминале Linux

Как удалить файлы и каталоги в терминале Linux

В этом руководстве мы покажем вам, как удалить файлы и каталоги в терминале Linux. Удаление файлов и папок также является одним из самых важных. Если вы никогда ни от чего не избавитесь, довольно скоро все эти лишние гигабайты отразятся на вычислительной мощности вашей системы Linux, оперативной памяти и жестком диске, не говоря уже о том, что ваша цифровая жизнь будет напоминать ужасный эпизод из Hoarders.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo ‘ к командам для получения привилегий root.

Читайте также:  Как удалить onedrive windows 10 полностью для всех пользователей

Удаление файлов и каталогов в терминале Linux

  • Удалить файлы с помощью rm

Чтобы удалить (или удалить) файл в Linux из командной строки, используйте rm (удалить). Самый простой случай — это удаление одного файла в текущем каталоге. Введите rm команду, пробел и затем имя файла, который вы хотите удалить:

Вы можете передать более одного имени файла в rm. При этом удаляются все указанные файлы:

  • Удалить каталоги с помощью rm

Чтобы удалить пустой каталог, используйте параметр (каталог). Вы можете использовать подстановочные знаки ( ) в именах каталогов так же, как и в именах файлов: — d *

Более чем одно имя каталога удаляет все указанные пустые каталоги:

Чтобы удалить непустые каталоги и подавить эти запросы, используйте параметры — r (рекурсивный) и — f (принудительно) вместе:

  • Удалить каталоги с помощью rmdir

В Linux вы можете удалять / удалять каталоги с помощью клавиш rmdir и rm . Разница между rm и в rmdir том, что rmdir может удалять только пустые каталоги. Он никогда не удалит файлы.

Удалить один каталог в текущем каталоге:

Удалить несколько каталогов:

Удалите каталог не в текущем каталоге, указав полный путь к этому каталогу:

Удаление файлов и каталогов в Linux стало проще. Поздравляю! Вы успешно научились удалять или удалять все файлы в каталоге с помощью rm команды.

Источник

Не могу удалить файл из под 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 не хочет запускаться, я хочу его переустановить, но из-за этой ошибки не могу.

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. Не хватает прав. Подскажите, что за безобразие?

Читайте также:  Linux grep несколько строк

Источник

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

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

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

В 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, как видите, делать это не так уж сложно. Если у вас остались вопросы, пишите в комментариях!

Источник

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