How to Change File Permissions in Go

1. Introduction

File permissions are a fundamental aspect of file systems that control the ability of the users to view, change, navigate, and execute the contents of the file system. In Go, the os package provides a function called Chmod to change the file permissions. This blog post will discuss how to change file permissions in Go.

2. Program Steps

1. Use the os.Chmod function to change the permissions of a file.

2. Define the file permissions in octal format.

3. Handle any errors that occur during the operation.

3. Code Program

Changing file permissions in Go involves using the os.Chmod function, which changes the mode of the file to the specified file mode. File modes are usually given in octal notation, where each digit represents different read, write, and execute permissions for the user, group, and others.

Here is the complete Go program to demonstrate how to change the file permissions:
package main

import (

func main() {
	// Define the file path
	filePath := "example.txt"

	// Step 2: Define the file permissions in octal format
	// 0644 means read and write for the owner, and read-only for others
	newPermissions := os.FileMode(0644)

	// Step 1: Change the file permissions
	err := os.Chmod(filePath, newPermissions)
	if err != nil {
		// Step 3: Handle errors
		fmt.Println("Error changing file permissions:", err)

	fmt.Printf("Permissions for %s have been changed.\n", filePath)


Permissions for example.txt have been changed.


1. package main - The package declaration for the Go program.

2. import "fmt" and import "os" - Importing the necessary packages for formatted output and operating system functionality.

3. filePath variable holds the path of the file whose permissions will be changed.

4. newPermissions variable is set using os.FileMode, which wraps an octal value defining the file permissions.

5. os.Chmod is called with the filePath and newPermissions to attempt to change the file permissions.

6. If os.Chmod returns an error, it's printed to the console, and the program returns early.

7. If no error occurs, a success message is printed with fmt.Printf.

8. The output indicates that the file permissions have been successfully changed.