# Метод chmod

Метод `chmod` изменяет права доступа к файлу или папке. В первом параметре указываем нужный нам файл, во втором параметре - режим доступа, в третьем необязательном параметре - коллбэк.

## Типы режимов доступа

Константа | Код | Описание
--- | --- | ---
`fs.constants.S_IRUSR` | `0o400` | Чтение только владельцем.
`fs.constants.S_IWUSR` | `0o200` | Запись только владельцем.
`fs.constants.S_IXUSR` | `0o100` | Извлечь/найти по владельцу файла.
`fs.constants.S_IRGRP` | `0o40` | Чтение группой.
`fs.constants.S_IWGRP` | `0o20` | Запись группой.
`fs.constants.S_IXGRP` | `0o10` | Извлечь/найти по группе.
`fs.constants.S_IROTH` | `0o4` | Чтение другими пользователями.
`fs.constants.S_IWOTH` | `0o2` | Запись другими пользователями.
`fs.constants.S_IXOTH` | `0o1` | Извлечь/найти по другим пользователям.

## Синтаксис

`fs.chmod(файл, режим доступа, [коллбэк]);`

## Пример

Давайте через `await` асинхронно установим права для чтения файла только владельцем:

`import fs from 'fs/promises'; try { await fs.chmod('file.txt', 0o400); console.log('read file by owner'); } catch (err) { console.log(err); }`

## Пример

Теперь давайте через `then` асинхронно установим права для записи файла только владельцем:

`import fs from 'fs/promises'; fs.chmod('file.txt', 0o200).then(() => { console.log('write by owner'); }).catch((err) => { console.log(err); });`

## Пример

Давайте асинхронно установим доступ к чтению файла группой пользователей через коллбэк:

`import fs from 'fs'; fs.chmod('file.txt', 0o40, err => { if (!err) { console.log('read by group'); } else { console.log(err); } });`

## Пример

Теперь давайте через `chmodSync` синхронно установим доступ к записи файла группой пользователей:

`import fs from 'fs'; try { fs.chmodSync('file.txt', 0o20); console.log('write by group'); } catch (err) { console.log(err); }`

## Смотрите также

- метод `access`,
  который показывает есть ли доступ к файлу
- метод `fchmod`,
  который устанавливает права доступа к файлу через файловый дескриптор

← →
↑