Секреты Терминала. Часть 3: Права доступа

Список полезные команд для управления папками в Linux системах. Рекомендации подходят в том числе и для операционной системы Mac OS.

эксклюзивные полные права доступа есть только у владельца (4+2+1)

А теперь приведём конкретный пример. Допустим, у вас есть папка.

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

Буквенный способ всегда состоит из 10 символов и имеет следующий вид:

drwxrw-r-x

Первый символ показывает, с чем вы имеете дело:

  • прочерк означает обычный файл
  • d — папку
  • l — ссылку на другой файл

Оставшиеся девять символов делятся на три группы по три знака. Первые три показывают права доступа владельца, вторые три — группы, третьи — всех остальных:

  • r — право на чтение (read)
  • w — право на запись (write)
  • x — право на запуск (execute)

Если права нет, то на соответствующем месте ставится прочерк.

Есть ещё два специальных обозначения, обычно встречающиеся у папок:

  • t — не позволяет пользователю удалять в данном каталоге чужие файлы, если у него нет права на запись в эти файлы
  • s — означает, что файлы, создаваемые в каталоге, наследуют группу от каталога, а не от создателя файла

Таким образом, приведённый выше пример означает то же самое, что и 765.

Кстати, файл вполне может иметь и права доступа 000. Тогда единственный, кто может что-то с ним сделать будет root-администратор. Стоит помнить о такой возможности хотя бы потому, что стоит быть аккуратным с этим. Кстати, в этом случае и сменить права назад сможет тоже только администратор. Будьте аккуратнее.

Читайте также:  Как создать виртуальный рабочий стол в Windows 7, 10, XP

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

Теперь о том, как менять права доступа и владельцев файлов. Правом изменения прав доступа обладают владелец файла и пользователь root. Отсюда вывод — если у вас не получается поменять права, используйте команду sudo.

Для смены прав доступа используется команда

Права администратора

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

usermod -a -G sudo username1

Теперь пользователь с именем username1 добавлен в группу sudo и является администратором для операционной системы. Ему доступны настройки ОС, а также доступ к каталогу /dev с вложениями. Большинство привилегий администраторов схоже с возможностями суперпользователя, но они неполные.

Как выставить запрет

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

sudo chmod o-x $(which ls)>

Вышеуказанная строка означает, что только root имеет право запускать команду ls. Всем остальным в доступе будет отказано.

Читайте также:  Как отключить подписки на МТС

Разберем другую ситуацию. Есть пользователь с именем username1. Ему необходимо ограничить доступ к команде ls. Для этого создаем группу пользователей usergroup1, в которую перенесём всех кроме username1.

sudo groupadd usergroup1 sudo useradd -G usergroup1 <username2, username3>

Вторая строка добавляет в группу usergroup1 пользователей username2, username3 и т. д. Ограничим права на запуск команды ls. Её смогут активировать только участники usergroup1.

sudo chown :group2 $(which ls) sudo chmod 754 $(which ls)

Права администратора

Теперь неучастник usergroup1 не сможет активировать ls.

Немного о файле /etc/sudoers

Sudoers содержит информацию о пользователях, которые могут использовать утилиту sudo. Чтобы открыть файл, используем специальную утилиту visudo.

visudo /etc/sudoers

Внутри содержится следующая информация:

Скриншот №1. Содержимое sudoers

Расскажем подробнее о строке:

Скриншот №2. Задать правила

%sudo означает, что к группе sudo применяется следующее правило. Если устанавливаем правила для конкретного пользователя, то % не нужен.

Первая переменная ALL расшифровывает, как применить правило ко всем IP-адресам. Второй и третий ALL – указанный пользователь или группа имеют право исполнять команды в сессии любого пользователя или группы. Четвертая переменная означает, что данный шаблон применяется ко всем командам.

Например, необходимо установить права на запуск утилиты apt get для группы admin.

%admin ALL=(ALL)NOPASSWD:/usr/bin/apt-get

Alias (псевдонимы)

Для удобства разграничения прав доступа используются алиасы. Они объединяют один или несколько значений в один параметр. Например, присвоим IP-адресу облачного хранилища более удобное имя.

Host_Alias CLOUD =

CLOUD – псевдоним, который указывается в параметрах вместо IP-адреса.

При необходимости алиасы используются для объединения пользователей в одну группу.

User_Alias Name = user1,user2,… , где Name – псевдоним, а user1, user2 – имена пользователей. Также утилита Alias доступна и для команд, т. е. объединяем список инструкций в единую группу.

Права администратора

Cmnd_Alias Name = cmd1,cmd2

  • name – произвольное наименование для перечня команд;
  • cmd1, cmd2 – перечисление команд через запятую.
Читайте также:  Как подключить к андроид-планшету модем билайн

Например, объединим обновление пакетов в алиас:

cmnd_Alias APT = /usr/bin/apt-get update,/usr/bin/apt-get upgrade

Поделиться Оценить

Средняя оценка: 5.0 Оценили: 1220140 Минск ул. Домбровская, д. 9 +375 (173) 88-72-49

  • 700 300 ООО «ИТГЛОБАЛКОМ БЕЛ»220140 Минск ул. Домбровская, д. 9 +375 (173) 88-72-49
  • 700 300 ООО «ИТГЛОБАЛКОМ БЕЛ»
  • 700 300
  • Просмотр файлов и папок в Linux

    Проверяем свободное место на всём диске:

    df -h

    Узнаём какие файлы хранятся в директории

    Список папок с занимаемыми размерами в корне сервера (сортировка директорий по алфавиту):

    du -hs /*

    Выводит список директорий и файлов построчно, сортируя их по возрастанию размера, а также показывает права доступа, размер файлов и дату изменения:

    ls -lSr |more

    Показывает размер и имена директорий и файлов (сортировка по размеру). В примере сортировка по размеру директории var.

    du -sk /var/* | sort -rn

    Ещё одна команда (показывает в мб) сортирует по размеру (в данном случае сортировка каталога с логами):

    du -k /var/log/* | sort -nr | cut -f2 | xargs -d ‘\n’ du -sh

    Пример правильного использования Chmod

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

    Ниже пример того, как в каталоге /var/www/ на все файлы рекурсивно поставить права 0644, а на все каталоги и подкаталоги 0755

    cd /var/www/ find ./ -type f -exec chmod 0644 {} \; find ./ -type d -exec chmod 0755 {} \;

    Первой командой переходим в нужную директорию, далее с помощью команды find ищем нужный тип: файлы -f (files) и каталоги -d (directories) — и запускаем chmod с нужными правами.