Чтение FileMode по умолчанию при использовании os.O_CREATE

Я новичок в Go, у меня есть небольшая проблема с чтением прав доступа к файлу по умолчанию / системной маски. Конечно, я могу указать фиксированные разрешения:

f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0600)

Но я бы хотел, чтобы программа работала хорошо и открывала файл с установленной учетной записью пользователя. umask, Как я могу это сделать?

1 ответ

Решение

Это уже работает так, как вы этого хотите.

Просто используйте "0666", и маска будет применена.

f, err := os.OpenFile(fpath, os.O_CREATE|os.O_WRONLY, 0666)

Для меня с umask 0022 Я получил:

$ go run x.go  ; ls -l filename
-rw-r--r--  1 ask  wheel  0 May 24 00:18 filename

Используйте 0660 (например), если вы всегда хотите, чтобы файл не читался "другим", независимо от значения маски.

Другие вопросы по тегам