Ответ
Для изменения прав доступа (permissions) в Linux используется команда chmod (от change mode).
Базовый синтаксис:
chmod [OPTIONS] MODE FILE...
Способы задания прав (MODE):
-
Символьный (буквенный) формат: Удобен для относительного изменения.
# Дать владельцу право на выполнение chmod u+x script.sh # Забрать право на запись у группы и остальных chmod go-w document.txt # Установить права: владелец (чтение/запись), группа (чтение), остальные (ничего) chmod u=rw,g=r,o= private_file.confu(user/owner),g(group),o(others),a(all).+(добавить),-(убрать),=(установить точно).r(read),w(write),x(execute).
-
Восьмеричный (цифровой) формат: Чаще используется в скриптах для точной установки.
# 755: владелец (rwx), группа (r-x), остальные (r-x) chmod 755 my_script.js # 640: владелец (rw-), группа (r--), остальные (---) chmod 640 config.env- Каждая цифра: сумма прав (4=r, 2=w, 1=x).
- Первая цифра — владелец, вторая — группа, третья — остальные.
Полезные опции в контексте разработки на Node.js:
-Rили--recursive: Рекурсивно изменить права для директории и всего её содержимого.chmod -R 755 ./dist # После сборки проекта даём права на выполнение-v(verbose): Выводить информацию о каждом изменённом файле.
Пример из практики: Перед запуском Node.js-приложения, особенно если в нём есть CLI-скрипты (указанные в bin файле package.json), нужно убедиться, что файл имеет право на выполнение (x).
# Делаем файл скрипта исполняемым
chmod +x ./bin/my-cli-tool
# Устанавливаем безопасные права для файла с секретами (только чтение для владельца)
chmod 600 .env.production Ответ 18+ 🔞
Давай разберём эту тему про права в линуксе, а то народ часто путается, как будто впервые видит терминал. Ебать мои старые костыли, это же основа основ!
chmod — это типа волшебная палочка, чтобы сказать системе: «Эй, сука, кто тут что может делать с моими файлами?». Расшифровывается как change mode, если кому интересно.
Как эта штука выглядит в жизни:
chmod [OPTIONS] MODE FILE...
А вот как права задавать — тут два главных подхода, и оба надо знать, иначе будешь выглядеть как полный чайник.
-
Буквами (символьный формат). Удобно, когда нужно чутка подкрутить, не вспоминая цифры.
# Хозяину файла разрешаем запускать chmod u+x script.sh # У группы и всех остальных отжимаем право что-то там писать chmod go-w document.txt # Жёстко ставим: хозяин (читает/пишет), группа (только читает), остальные (ни хуя) chmod u=rw,g=r,o= private_file.confu— это ты, владелец (user).g— твоя компания (group).o— все левые (others).a— вообще все (all).+— добавить право,-— отобрать,=— поставить именно так и никак иначе.r— читать,w— писать,x— выполнять. Запомни, ёпта!
-
Цифрами (восьмеричный формат). Любимый формат для скриптов, потому что чётко и понятно. Выглядит как магия, но на деле просто арифметика.
# 755: хозяин (всё можно), группа (читать и запускать), остальные (читать и запускать) chmod 755 my_script.js # 640: хозяин (читает/пишет), группа (только читает), остальные (идут на хуй) chmod 640 config.env- Секрет в цифрах: 4 — читать, 2 — писать, 1 — запускать. Складываешь что нужно — получаешь цифру.
- Первая цифра — для хозяина, вторая — для группы, третья — для всех подряд.
А теперь про опции, без которых никуда, особенно если ты Node.js-разработчик:
-R— это рекурсивно, то есть «применить ко всему, что внутри папки, включая вложенные папки». Без этого каждый файл по отдельности править — терпения ноль, ебать.chmod -R 755 ./dist # Собрал проект — дай права на запуск всему, что в папке dist-v— многословный режим. Команда будет болтать, что она сделала с каждым файлом. Иногда полезно, чтобы не охуеть от неожиданностей.
Реальный пример, чтобы не быть мартышлюшкой: Перед тем как запускать своё Node.js-приложение, особенно если там есть CLI-скрипты (те, что в bin в package.json прописаны), сделай файл исполняемым. А то будешь потом орать «почему не работает!», а оно просто прав нет.
# Делаем скрипт исполняемым — добавляем волшебный икс
chmod +x ./bin/my-cli-tool
# А для файла с секретами (.env) ставим жёсткие права: только ты можешь читать, и всё.
chmod 600 .env.production
Вот и вся наука. Главное — не давать права на запись всем подряд, а то будет вам хиросима, файлы перезатрут или, того хуже, какой-нибудь скрипт-зловред впендюрится. Доверия к окружению — ебать ноль, помни об этом.