ioutils.WriteFile () не уважает разрешения - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь использовать ioutils.WriteFile (), но по какой-то причине он игнорирует разрешения 0777, которые я ему даю.

package main

import (
    "io/ioutil"
    "os"
)

func main() {

    // normal permissions
    if err := ioutil.WriteFile("cant-touch-this-0644", []byte{}, 0644); err != nil {
            panic(err)
    }


    // full permissions
    if err := ioutil.WriteFile("cant-touch-this-0777", []byte{}, 0777); err != nil {
            panic(err)
    }


    // normal permissions + chmod to full
    if err := ioutil.WriteFile("cant-touch-this-mixed", []byte{}, 0755); err != nil {
            panic(err)
    }

    if err := os.Chmod("cant-touch-this-mixed", 0777); err != nil {
            panic(err)
    }
}

Вывод, который я получаю из этого:

$ ls -l
-rw-r--r--  1 edson edson    0 May  9 17:19  cant-touch-this-0644
-rwxr-xr-x  1 edson edson    0 May  9 17:19  cant-touch-this-0777
-rwxrwxrwx  1 edson edson    0 May  9 17:19  cant-touch-this-mixed

Что означает:

  • Первый сценарий (0644) сработал
  • Второй (0777) был проигнорирован
  • Единственный способ получить полные разрешения 0777 - использовать os.Chmod (как в третьем сценарии)

Что я делаю не так?

1 Ответ

0 голосов
/ 30 марта 2019

Отказ в разрешении.

Попробуйте:

sudo go run main.go

Или измените пользователя на root и затем выполните.

Как сменить пользователя на root:

sudo su -
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...