В данной инструкции показано, как можно изменить права доступа к файлу через программу на Golang.
1. Создайте файл filechmod.go
со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
package main import ( "fmt" "os" ) func main() { f, err := os.Create("test.file") if err != nil { panic(err) } defer f.Close() // Получение текущих прав доступа у файла fi, err := f.Stat() if err != nil { panic(err) } fmt.Printf("Права доступа к файлу %v\n", fi.Mode()) // Меняем права доступа файла err = f.Chmod(0777) if err != nil { panic(err) } fi, err = f.Stat() if err != nil { panic(err) } fmt.Printf("Права доступа к файлу %v\n", fi.Mode()) } |
2. Запустите код через go run filechmod.go
в главном терминале;
3. Посмотрите на результат:
1 2 |
Права доступа к файлу -rw-rw-rw- Права доступа к файлу -rwxrwxrwx |
Использование Chmod() для смены прав доступа
Метод Chmod
типа File
из пакета os
может использоваться для изменения прав доступа. Пример выше создает файл и изменяет права доступа на 0777
. Обратите внимание, что fi.Mode()
вызывается дважды, потому что он извлекает права доступа (os.FileMode
) первый раз до изменений прав и второй раз после обновления прав.
Самым быстрым способом изменения прав доступа является использование функции os.Chmod
, которая делает то же самое, но здесь вам не нужно получить тип File
в коде.
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»