on
Linux
Это своеобразный конспект и личное мнение о Linux.
За последнии 2 недели у меня не было доступа к компьютеру и успел лишь прочитать немного книгу Операционная система UNIX - понравилось что сразу даются знания фактически ежедневно необходимые, а так же я нашел ответов на вопросы - почему у меня нет прав для сохранения файла, как сделать файл исполняемым и прочее.
В UNIX - всё файлы и процессы, доступ к устройствам осуществляется через чтение/запись специальных файлов. Директория - это файл содержащий имена находящихся в нем файлов и метаинформацию.
Каждый файл имеет владельцев - пользователя и группу. Посмотреть их можно с помощью команды ls -l <myfile>
.
Для того чтобы поменять владельца используетсяя команда chown - chown master:puppets /metal/metallica
- теперь владелец файла metallica пользователь master и группа пользователей puppets.
Что делать если при сохранении файла отображается ошибка “Permission denied”?
Все просто - у текущего пользователя - нет прав на запись в этот файл.
У меня была ситуация когда в проекте часть файлов я мог изменять, а часть нет. Оказалось что эти файлы принадлежат пользователю root.
Я сделал так sudo chown -R user:user myproject
- теперь я владелец файлов и могу делать с ними что хочу.
Возможно это не самое лучшее и правильное решение - я только учусь
В ОС существует три базовых класса прав доступа к файлу:
- Для владельца
- Для группы
- Для остальных пользователей
А так же есть три типа прав:
- Чтение
- Запись
- Выполнение
Для изменения прав используется команда chmod
Проблему которую я решил:
Как сделать файл исполняемым?
В UNIX испоняемый файл или нет определяется его правами. В первом проекте на Hexlet нужно было написать бинарник который запускает проект. Что то вроде такого:
#! /usr/bin/env node
console.log("Hello world");
Запускаться это должно как обычная утилита - ./bin/example.js, но без прав на выпосление ничего не получится. Добавим их:
chmod a+x example.js
- теперь у всех пользователей есть право на выполнение файла
Символы #! - шебанг указывает на имя программы которая будет интрепретировать файл
Личное мнение
Я перешел на Linux больше года назад, после того как на Hexlet был workshop по Docker - я просто ничего не мог сделать на Windows у меня все работало через раз и через боль. У Linux тоже есть недостатки, но если вы хотите программировать - ставьте Linux как основную рабочую среду - не пожалеете.