Вы помните, когда вы были маленьким ребенком, и вам пришлось попросить разрешения ваших родителей делать что -либо?
«Мама, могу я ездить на велосипеде в парк?»
«Папа, могу я пойти на дерево?»
«Мама, могу я перекусить?»
Я не знаю о тебе, но очень часто (для меня) ответ был громким, «Нет».
Таким образом, Linux приближается к разрешениям файловой системы. Если вам не нужно, ответ «Нет».
Конечно, вы справляетесь с этим, благодаря разрешениям Linux файла.
Есть два способа приближения к разрешениям на файлы на Linux: простой путь и трудный путь. Я собираюсь показать вам обоих, но я скажу это: я редко иду по жесткому маршруту, потому что легкий маршрут слишком прост, чтобы игнорировать.
Вы готовы к этому?
Давай сделаем это.
Легкий маршрут
Скорее всего, именно так вы ежедневно имеете дело с разрешениями.
Мы начнем наше путешествие с разрешений, рассматривая две вещи:
- Типы пользователей
- Типы разрешений
Есть три разных типа пользователей:
- пользователь: Это человек, который владеет файлом (пользователь, который его создал).
- группа: Все пользователи, которые являются членами этой группы, имеют одинаковые разрешения для файла/папки.
- другой: Все остальные.
Думайте о вышеперечисленном как uВ глин и оПолем
Далее, давайте поговорим о разрешениях, которые разбиваются на три бита:
- читать: Вы можете просматривать только файл.
- писать: Вы можете прочитать и отредактировать файл.
- выполнять: Вы можете запустить файл.
Думайте о вышеперечисленном как ведущийВ W. и хПолем
Мы используем все вышеперечисленное в сочетании с chmod Команда (изменить биты режима файла).
Допустим, у вас есть файл newstack.sh. Вы создали файл, так что вы владелец. По умолчанию у вас будут разрешения R/W для файла. Но что, если этот файл является сценарием Bash, и вам нужно его запустить? Для этого вы должны дать себе EхEcutable разрешения. Поскольку вы uСер, команда для этого будет:
chmod u+x newstack.sh 1 chmod u+x newstack.sh
То, что вы сделали, — это добавление исполняемых разрешений для пользователя в файл newstack.sh.
Теперь, допустим, вы создали группу (называемую Dev1) и уже изменили право собственности на группу с Chown: dev1 newstack.shи вы хотите убедиться, что у всех в этой группе есть исполняемые разрешения для файла. Для этого вы можете выпустить команду:
chmod g+x newstack.sh 1 chmod g+x newstack.sh
Или, может быть, вы хотите позволить всем в группе иметь возможность редактировать файл, что можно сделать с помощью:
chmod g+w newstack.sh 1 chmod g+w newstack.sh
В какой -то момент вам может потребоваться отозвать разрешения на редактирование группы, что означает, что вы выпустите команду:
chmod gx newstack.sh 1 chmod gx newstack.sh
Увидеть разницу?
Допустим, у вас есть папка с подпапками и файлами, и вы хотите дать всем в группе разрешения записать все в родительской папке. Если родительская папка названа NewStack, команда будет:
chmod -r g+w newstack 1 chmod -r g+w newstack
Опция -r означает рекурсивность.
Сложный метод
Это действительно не так сложно, это просто немного запоминает.
Помните, у нас есть:
- пользователь
- группа
- другой
И у нас есть:
- читать
- писать
- выполнять
Каждому из вышеперечисленных разрешений присваивается числовое значение:
- Читать — 4
- Напишите — 2
- Выполнить — 1
Структура разрешения настроена так:
-rwxrwxrwx 1 -rwxrwxrwx
Таким образом, есть три секции с тремя возможными разрешениями. То, что вы делаете, добавляете численные значения вместе. Таким образом, если вы хотите дать пользователю разрешения на чтение/запись, числовое общее количество составляет 6.
Вот еще несколько примеров:
- 755 — user = rwx, группа r/x, другие R/x
- 600 — user = rw, группа/другие = нет
- 777 — user = rwx, group = rwx, другие = rwx
- 666 — user = rw, group = rw, другие = rw
Пока вы можете запомнить числовые значения для RWX, вы можете просто добавить эти значения вместе, чтобы получить правильные разрешения.
Это не так сложно.
Итак, чтобы использовать числовые значения для разрешений, вы издаете такую команду:
chmod 755 newstack.sh 1 chmod 755 newstack.sh
Приведенная выше команда даст следующие разрешения в файл newstack.sh:
- Пользователь — RWX
- Группа — RX
- Другое — Rx
Вы сейчас получаете это?
Специальные биты разрешения
Есть одна последняя вещь, которую я упоминаю: специальные биты разрешения, которые вы редко используете. Эти биты:
- Установить идентификатор пользователя (SUID): Этот бит позволяет владельцу файла или каталога запускать его с повышенными привилегиями, как будто они запускали команду напрямую. Пример: chmod u+s/path/to/file.
- Набор идентификатора группы (Skid): Этот бит позволяет группе пользователей запускать файлы и каталоги в группах с повышенными привилегиями, как если бы они запускали команду напрямую, но только для членов этой группы. Пример: chmod g+s/path/to/каталог.
- Установите идентификатор владельца (SUID) и установите идентификатор группы (SGID): Это комбинация как Suid, так и SGID -битов, которая позволяет как владельцу, так и членам группы, которые владеют или имеют доступ к файлу или каталогу для запуска его с повышенными привилегиями, как если бы они запускали команду напрямую. Пример: chmod u+s, g+s/path/to/fileПолем
И это, друзья мои, это ваше введение в разрешения на файл Linux.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Джек Уоллен-это то, что происходит, когда генеральный разум с умом с современным Snark. Джек — искатель истины и писатель слов с квантовым механическим карандашом и разрозненным ударом звука и души. Хотя он проживает … читайте больше от Джека Валлена