Метод 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 Извлечь/найти по другим пользователям.

Синтаксис

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

Пример

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

javascriptimport fs from 'fs/promises';

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

Пример

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

javascriptimport fs from 'fs/promises';

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

Пример

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

javascriptimport fs from 'fs';

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

Пример

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

javascriptimport fs from 'fs';

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

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

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