Использование символьного обозначения для прав доступа
В то время как числовое обозначение прав доступа компактно, символьное обозначение может быть более интуитивно понятным, особенно когда вам нужно изменить только одно право доступа. Символьное обозначение использует буквы для обозначения пользователя, группы и других, а также операторы для добавления или удаления прав доступа.
Сначала создадим новый скрипт с некоторым содержимым:
cd ~/project
echo '#!/bin/bash\necho "Hello, World"' > script.sh
Эта команда выполняет две задачи:
- Она создает новый файл с именем
script.sh
. Расширение .sh
обычно используется для shell - скриптов. Shell - скрипты - это исполняемые файлы, содержащие последовательность команд, которые выполняются по порядку.
- Она записывает две строки в этот файл:
#!/bin/bash
(называемая шебангом) сообщает системе, что это bash - скрипт. Строка шебанга указывает интерпретатор, который должен быть использован для выполнения скрипта. В данном случае это /bin/bash
, который является путем к интерпретатору Bash.
echo "Hello, World"
- это команда, которая выведет "Hello, World" при запуске скрипта. Команда echo
просто выводит текст, который следует за ней.
\n
- это символ новой строки, который обеспечивает размещение команд на отдельных строках в файле.
Теперь проверим начальные права доступа к скрипту:
ls -l script.sh
Вы должны увидеть что - то вроде этого:
-rw-rw-r-- 1 labex labex 32 Jul 29 16:30 script.sh
Как вы видите, изначально скрипт имеет только права на чтение и запись для владельца и группы, а также право на чтение для других. У него нет права на выполнение, которое необходимо для запуска его как программы.
Попробуем запустить скрипт:
./script.sh
Вы должны увидеть ошибку "Permission denied" (доступ запрещен), потому что скрипт еще не имеет прав на выполнение. Часть ./
сообщает оболочке, что нужно выполнить скрипт, расположенный в текущей директории.
Теперь добавим право на выполнение для владельца с использованием символьного обозначения:
chmod u+x script.sh
В этой команде:
u
обозначает пользователя (владельца). Другие варианты: g
для группы, o
для других и a
для всех (пользователь, группа и другие).
+x
добавляет право на выполнение. Символ +
добавляет право доступа, в то время как символ -
удаляет право доступа.
Таким образом, u+x
означает "добавить право на выполнение для владельца".
Проверим изменения:
ls -l script.sh
Теперь вы должны увидеть:
-rwxrw-r-- 1 labex labex 32 Jul 29 16:30 script.sh
Владелец теперь имеет права rwx
(чтение, запись и выполнение).
Теперь попробуем запустить скрипт еще раз:
./script.sh
На этот раз вы должны увидеть вывод: "Hello, World"
Этот пример четко показывает, почему нам нужно добавлять права на выполнение скриптам, а также разницу между состоянием до и после добавления этих прав. Символьное обозначение позволяет легко изменять конкретные права доступа без необходимости пересчитывать все числовое представление.