Linux убрать атрибут исполняемый

Изменение атрибутов (флагов) на файлах в Unix/Linux

Изменение атрибутов (флагов) на файлах в Unix/Linux

Сейчас расскажу как можно изменить атрибуты на файлы в Unix\Linux и приведу готовые примеры в своей статье «Изменение атрибутов (флагов) на файлах в Unix/Linux».

chattr — изменяет атрибуты файлов на файловых системах ext2fs, ext3, ext4 и частично на других файловых системах Linux.

# chattr [ -RV ] [ -v версия ] [ атрибуты ] файлы

Формат символьного режима: +-=[acdeijstuACDST].

«+» обозначает добавление указанных атрибутов к существующим;
«-» обозначает их снятие;
«=» обозначает установку только этих атрибутов файлам.

Символы «acdeijstuACDST» указывают на новые атрибуты файлов, некоторые атрибуты может назначить только суперпользователь (root):

  • Не обновлять время последнего доступа к файлу atime (A)
  • Использовать синхронное обновление (S)
  • Использовать синхронное обновление каталогов (D)
  • Только добавление к файлу (a)
  • Сжатый (c)
  • Не архивировать (d)
  • Неизменяемый (i)
  • Безопасное удаление (s)
  • Вершина иерархического дерева (T)
  • Запрет слияния в конце файла (t)
  • Неудаляемый (u)
  • Нет копирования при записи (C)
  • Журналирование данных (j)
  • extent format (e)

Формат символьного режима:

  • Огромный файл (h),
  • Ошибки сжатия (E),
  • Индексированный каталог (I),
  • Сжатие прямого доступа(X),
  • Сжатый грязный файл (Z).

Опции
-R

Рекурсивное изменение атрибутов каталогов и их содержимого.

Вывод на экран с выводом chattr и показать версию программы.

Запретить большинство сообщений об ошибках.

Вывести все атрибуты для всех каталогах.

Вывести все атрибуты для всех файлов.

В Linux есть утилита chattr, она может выставлять нужные флаги на файлы и папки, но все изменения проводить может только пользователь root.

Выставляем флаг который нельзя удалить (может только root):

Просмотр всех флагов для папок и файлов:

$ lsattr -a /home/captain/public_html/ ----i------------e- test -------------e- ./wp-login.php -------------e- ./readme.html -i----u------e- ./wp-settings.php .

Чтобы убирать флаги i,u для всех файлов в папке:

# chattr -iau /home/captain/public_html/* # chattr -iau /home/captain/public_html/.*

Проверим стоит ли права, после применения команды:

Я сбросил все атрибуты в 000, нужно дял файлов теперь выставить нормальные (это 644), для этого используем:

И нужно поменять владельца сайта ( у меня кто-то сменил на пользователя root, видимо нашли уязвимость и проделали этот трюк для своих нужд), по этому, исправляем:

# chown -R captain:captain `find /home/ -user root`
$ chown -R captain:captain /home/homewhol/public_html/

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

Читайте также:  Linux mail web server

Если нужно больше информации о командах chattr или lsattr, то читаем мануал:

Разрешаем ядру автоматически сжимать или разжимать файл:

Игнорируем данный файл когда используем команды dump:

Запрешаем изменение бинарников:

# chattr -R +i /bin /sbin /usr/bin /usr/sbin

Удалим атрибут ‘s’ с файла, но он после этого будет заполнен нулями и перезаписан на
диск:

Только добавление данных (append-only), удаление и переименование запрещено (Предотвращаем модификацию лога злоумышленником):

Если удалить файл с этим атрибутом, то он будет сохранен и пользователь может восстановить данные при необходимости:

Удостовериться что все изменения файла сразу будут записаны на диск:

FreeBSD/OpenBSD

В *BSD, данной функцией обладает утилита chflags. Приведу несколько примеров использования данной программы на freeBSD.

Чтобы выставить неудаляемый флаг (в отличии от ext это может НЕ только root):

$ ls -lao test -rw-r--r-- 1 skeletor wheel uunlnk 0 Jul 6 10:56 test

Обо всем возможностях можно узнать в:

Утилита chattr (lsattr) входят в пакет утилит — e2fsprogs (иногда называемая e2fs programs) — это набор программ для поддержания файловых систем (ext2, ext3 и ext4).

Что входит в данный пакет утилиты e2fsprogs:

  1. badblocks — используется для поиска плохих блоков;
  2. chattr — изменяет атрибуты файлов на файловой системе ext2fs;
  3. debugfs — используется для ручного просмотра и изменения внутренней структуры файловой системы;
  4. dumpe2fs — печатает superblock and block group information;
  5. e2fsck — fsck-программа, проверяющая и корректирующая несоответствия;
  6. e2image — записывает критические данные файловой системы в файл;
  7. e2label — используется для просмотра и изменения метки файловой системы;
  8. lsattr — печатает список атрибутов файловой системы;
  9. mke2fs — используется для создания файловых систем ext2, ext3 и ext4;
  10. mklost+found — создаёт каталог lost+found и выделяет для него блоки дискового пространства;
  11. resize2fs — используется для изменения пространства, выделенного под файловые системы ext2, ext3 and ext4;
  12. tune2fs — используется для модифицирования параметров файловой системы.
  13. Многие из этих утилит основаны на библиотеке libext2fs.

Тема «Изменение атрибутов (флагов) на файлах в Unix/Linux» завершена.

3 thoughts on “ Изменение атрибутов (флагов) на файлах в Unix/Linux ”

Спасибо за статью, а можно вопрос? Вот вывод команды ls
-rwxrwxrwx+ 1 user User 304227 окт 5 09:18 Копия Агентское Что означает «+» после «rwxrwxrwx» ? Нигде не могу найти информации

Это расширенный атрибут, который устанавливается: На MacOS:
# chmod -R +a «group:Your_Group_Name allow read,write,append,readattr,writeattr,readextattr,writeextattr» /Path/to/dir
# chmod -R +a «user:Your_User_Name allow read,write,append,readattr,writeattr,readextattr,writeextattr» /Path/to/dir На Linux:
$ setfacl -m u:Your_User_Name:rw,u:some_user:r,g::r,m::rw /Path/to/dir

Если удалить файл с этим атрибутом, то он будет сохранен и пользователь может восстановить данные при необходимости
# chattr +u my_test_file А где файл будет сохранен? как его найти?

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Читайте также:  Криптопро эцп установка сертификата linux

Рубрики

  • Arch Linux (167)
  • Commands (36)
  • Debian’s (635)
    • Administration tools Ubuntu (37)
    • Backups Debian’s (7)
    • Database в Ubuntu (58)
    • Games (игры) (1)
    • Monitoring в Debian и Ubuntu (49)
    • Virtualization в Ubuntu / Debian/ Linux Mint (41)
      • Docker (22)
      • Kubernetes (6)
      • KVM (4)
      • OpenVZ (3)
      • Vagrant (5)
      • VirtualBox (6)
      • ArgoCD (1)
      • Concourse (1)
      • Gitlab (1)
      • Jenkinks (4)
      • Spinnaker (1)
      • Apache (32)
      • Cherokee (1)
      • FTP-services (5)
      • Lighttpd (1)
      • Nginx (26)
      • PHP (27)
      • Proxy для Debian’s (2)
      • Tomcat (4)
      • Панели управления в Ubuntu/Debian/Mint (24)
      • Установка и настройка почты на Ubuntu/Debian (12)
      • Хранилища (clouds) (2)
      • Administration tools freeBSD (19)
      • Database во FreeBSD (52)
      • Monitoring во freeBSD (37)
      • Virtualization во FreeBSD (22)
      • VoIP (1)
      • Установка Web сервисов (91)
      • Установка и настройка почты (6)
      • Установка из ports (пакетов) (19)
      • Установка из sorce code (исходников) (23)
      • Непрерывная интеграция (CI) (27)
      • Database в MacOS (36)
      • Monitoring в Mac OS (31)
      • Security (безопасность) (12)
      • Virtualization в Mac OS (30)
        • Docker (19)
        • Kubernetes (6)
        • Vagrant (5)
        • VirtualBox (5)
        • ArgoCD (1)
        • CircleCI (1)
        • Concourse (1)
        • Gitlab (1)
        • Jenkinks (4)
        • Spinnaker (1)
        • Administration tools CentOS (49)
        • Backups RPM’s (4)
        • Database в CentOS (68)
        • Monitoring в CentOS (67)
        • Virtualization в CentOS/ Red Hat/ Fedora (42)
          • Docker (23)
          • Kubernetes (6)
          • KVM (5)
          • OpenVZ (2)
          • Vagrant (5)
          • VirtualBox (6)
          • VMWare (3)
          • ArgoCD (1)
          • Concourse (1)
          • Gitlab (1)
          • Jenkinks (4)
          • Spinnaker (1)
          • Apache (35)
          • Cherokee (1)
          • DNS (3)
          • FTP (10)
          • Nginx (33)
          • PHP (34)
          • Proxy для RedHat’s (2)
          • Tomcat (2)
          • Voice (2)
          • Панели управления в CentOS/Red Hat/Fedora (27)
          • Прокси сервер на CentOS/RHEL/Fedora (4)
          • Установка и настройка почты на CentOS/RHEL/Fedora (14)
          • Хранилища (clouds) (1)

          соц сети

          Unix-Linux- в примерах

          Unix-Linux- в примерах

          Unix-Linux- в примерах

          Архив новостей

          Свежие записи

          Свежие комментарии

          • Глеб к записи Установка Adobe Flash Player в Debian/Ubuntu/Mint
          • Максим к записи Заблокировать User Agents используя Nginx
          • Денис к записи Как включить EPEL репозиторий на CentOS
          • Гость к записи Закомментировать/Раскомментировать строки vi/vim в Unix/Linux
          • Sergey к записи Установка и настройка OpenVPN сервера на Debian/Ubuntu/Linux Mint

          Источник

          Делаем файл исполняемым в Linux

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

          Что означает исполняемость?

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

          И первые, и вторые состоят из цифр – байт. То есть, определенное сочетание цифр будет означать для процессора необходимость выполнения конкретного действия. Для процессора нет принципиальной разницы, какой процесс выполнять – данные операционной системы или текстовый файл. И первый, и второй будут выполнены, вот только в случае с текстовым необходимость в инструкциях фактически отпадает.

          Для понимания системой, какие должны быть выполнены по инструкции, а какие выполнять не нужно, и были придуманы флаги исполняемости. Фактически содержимое никак не изменяется в зависимости от установленного класса исполняемости – отличие сводится только к нескольким строчкам. Со скриптами все работает точно так же, только команды выполняет не процессор, а интерпретатор, например, в bash скриптах — сама оболочка bash. Да и в обычных программ тоже есть свой загрузчик — это ld-linux.so.2.

          Как сделать файл исполняемым

          В системе Linux предусмотрена специальная утилита, которая позволяет управлять флагами, которая получила название chmod. Для вызова этой утилиты необходимо задействовать синтаксис:

          $ chmod категория действие флаг адрес_файла

          КАК СДЕЛАТЬ ФАЙЛ ИСПОЛНЯЕМЫМ В LINUX

          И здесь необходимо учитывать следующее:

          Флаг — один из доступных — r (чтение), w (запись), x (выполнение).

          Категория — могут устанавливаться для трех категорий: владельца файла, группы данных и всех остальных пользователей. В команде они указываются символами u (user) g (group) o (other) соответственно.

          Действие — может быть + (плюс), что будет значить установить флаг или — (минус) снять флаг.

          Таким образом, чтобы сделать исполняемым скрипт в Linux, пользователю необходимо выполнить:

          Зачастую уже этого достаточно, чтобы сделать его исполняемым, но если необходимо наделить других пользователей полномочиями исполнять эти файлы, еще необходимо добавить:

          Чтобы посмотреть их в терминале достаточно воспользоваться утилитой ls:

          Посмотреть флаги в терминале можно с помощью утилиты ls

          Флаги включены для всех категорий. Первое rwx — флаги владельца, второе — группы, а третье — для всех остальных. Если он не установлен, на его месте будет прочерк.

          Снять флаг исполняемого файла очень просто. Используется та же команда только со знаком минус:

          Дальше рассмотрим вопрос установки управляемости в GUI.

          Как установить флаг исполняемости в GUI

          Для новичков эта инструкция окажется проще. Рассмотрим на примере менеджера GNOME, Nautilus. Кликните правой кнопкой по нашему объекту программы или скрипта, чтобы открыть контекстное меню, затем выберите свойства:

          КАК УСТАНОВИТЬ ФАЛГ ИСПОЛНЯЕМОСТИ В GUI

          Переходим на вкладку права и устанавливаем галочку «Разрешить выполнение файла как программы»:

          Разрешить выполнение файла как программы:

          Теперь он будет запущен системой непосредственно из менеджера. Вот и вся инструкция. Теперь с запуском программы или скрипта из интернета у вас не возникнет трудностей.

          Источник

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