Функция os.Chmod

Функция os.Chmod изменяет права доступа к файлу или директории. В первый параметр передается путь к файлу в виде строки, во второй параметр — битовая маска прав доступа типа os.FileMode. Функция возвращает ошибку, если операция не удалась. Обычно права задаются в восьмеричной системе, например, 0644.

Синтаксис

goerr := os.Chmod(name string, mode FileMode) error

Пример

Давайте изменим права доступа файла так, чтобы владелец мог читать и записывать, а группа и все остальные — только читать:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  err := os.Chmod("file.txt", 0644)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println("Permissions changed successfully")
}

Результат выполнения кода:

go"Permissions changed successfully"

Пример

Давайте сделаем файл исполняемым для владельца, добавив права на выполнение:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  err := os.Chmod("script.sh", 0700)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println("Executable permission added")
}

Результат выполнения кода:

go"Executable permission added"

Пример

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

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  err := os.Chmod("missing.txt", 0644)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println("Success")
}

Результат выполнения кода:

go"chmod missing.txt: no such file or directory"

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

  • функцию os.Open,
    которая открывает файл для чтения
  • функцию os.Chown,
    которая изменяет владельца файла
  • функцию os.Chtimes,
    которая изменяет время доступа и изменения файла
  • функцию os.FileMode,
    которая описывает битовую маску прав доступа к файлу