Documentation ¶
Overview ¶
Easy file permissions for golang. Easily get and set file permission bits.
This package makes it a breeze to check and modify file permission bits in Linux, Mac, and other Unix systems.
permissions, err := permbits.Stat("/path/to/my/file") if err != nil { return err } // Check to make sure the group can write to the file // If they can't write, update the permissions so they can if !permissions.GroupWrite() { permissions.SetGroupWrite(true) err := permbits.Chmod("/path/to/my/file", permissions) if err != nil { return errors.New("error setting permission on file", err) } } // Also works well with os.File fileInfo, err := file.Stat() if err != nil { return err } fileMode := fileInfo.Mode() permissions := permbits.FileMode(fileMode) // Disable write access to the file for everyone but the user permissions.SetGroupWrite(false) permissions.SetOtherWrite(false) permbits.UpdateFileMode(&fileMode, permissions) // You can also work with octets directly if permissions != 0777 { return fmt.Errorf("Permissions on file are incorrect. Should be 777, got %o", permissions) }
Index ¶
- func Chmod(filepath string, b PermissionBits) error
- func UpdateFileMode(fm *os.FileMode, b PermissionBits)
- type PermissionBits
- func (b PermissionBits) GroupExecute() bool
- func (b PermissionBits) GroupRead() bool
- func (b PermissionBits) GroupWrite() bool
- func (b PermissionBits) OtherExecute() bool
- func (b PermissionBits) OtherRead() bool
- func (b PermissionBits) OtherWrite() bool
- func (b *PermissionBits) SetGroupExecute(set bool)
- func (b *PermissionBits) SetGroupRead(set bool)
- func (b *PermissionBits) SetGroupWrite(set bool)
- func (b *PermissionBits) SetOtherExecute(set bool)
- func (b *PermissionBits) SetOtherRead(set bool)
- func (b *PermissionBits) SetOtherWrite(set bool)
- func (b *PermissionBits) SetSetgid(set bool)
- func (b *PermissionBits) SetSetuid(set bool)
- func (b *PermissionBits) SetSticky(set bool)
- func (b *PermissionBits) SetUserExecute(set bool)
- func (b *PermissionBits) SetUserRead(set bool)
- func (b *PermissionBits) SetUserWrite(set bool)
- func (b PermissionBits) Setgid() bool
- func (b PermissionBits) Setuid() bool
- func (b PermissionBits) Sticky() bool
- func (b PermissionBits) String() string
- func (b PermissionBits) UserExecute() bool
- func (b PermissionBits) UserRead() bool
- func (b PermissionBits) UserWrite() bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Chmod ¶
func Chmod(filepath string, b PermissionBits) error
Given a filepath, set it's permission bits directly
func UpdateFileMode ¶
func UpdateFileMode(fm *os.FileMode, b PermissionBits)
Given an os.FileMode object, update it's permissions
Types ¶
type PermissionBits ¶
type PermissionBits uint32
const ( Setuid PermissionBits = 1 << (12 - 1 - iota) Setgid Sticky UserRead UserWrite UserExecute GroupRead GroupWrite GroupExecute OtherRead OtherWrite OtherExecute )
func FileMode ¶
func FileMode(fm os.FileMode) PermissionBits
Given a FileMode from the os package, get it's permission bits
func Stat ¶
func Stat(filepath string) (PermissionBits, error)
Given a filepath, get it's permission bits
func (PermissionBits) GroupExecute ¶
func (b PermissionBits) GroupExecute() bool
func (PermissionBits) GroupRead ¶
func (b PermissionBits) GroupRead() bool
func (PermissionBits) GroupWrite ¶
func (b PermissionBits) GroupWrite() bool
func (PermissionBits) OtherExecute ¶
func (b PermissionBits) OtherExecute() bool
func (PermissionBits) OtherRead ¶
func (b PermissionBits) OtherRead() bool
func (PermissionBits) OtherWrite ¶
func (b PermissionBits) OtherWrite() bool
func (*PermissionBits) SetGroupExecute ¶
func (b *PermissionBits) SetGroupExecute(set bool)
func (*PermissionBits) SetGroupRead ¶
func (b *PermissionBits) SetGroupRead(set bool)
func (*PermissionBits) SetGroupWrite ¶
func (b *PermissionBits) SetGroupWrite(set bool)
func (*PermissionBits) SetOtherExecute ¶
func (b *PermissionBits) SetOtherExecute(set bool)
func (*PermissionBits) SetOtherRead ¶
func (b *PermissionBits) SetOtherRead(set bool)
func (*PermissionBits) SetOtherWrite ¶
func (b *PermissionBits) SetOtherWrite(set bool)
func (*PermissionBits) SetSetgid ¶
func (b *PermissionBits) SetSetgid(set bool)
func (*PermissionBits) SetSetuid ¶
func (b *PermissionBits) SetSetuid(set bool)
func (*PermissionBits) SetSticky ¶
func (b *PermissionBits) SetSticky(set bool)
func (*PermissionBits) SetUserExecute ¶
func (b *PermissionBits) SetUserExecute(set bool)
func (*PermissionBits) SetUserRead ¶
func (b *PermissionBits) SetUserRead(set bool)
func (*PermissionBits) SetUserWrite ¶
func (b *PermissionBits) SetUserWrite(set bool)
func (PermissionBits) Setgid ¶
func (b PermissionBits) Setgid() bool
func (PermissionBits) Setuid ¶
func (b PermissionBits) Setuid() bool
func (PermissionBits) Sticky ¶
func (b PermissionBits) Sticky() bool
func (PermissionBits) String ¶
func (b PermissionBits) String() string
func (PermissionBits) UserExecute ¶
func (b PermissionBits) UserExecute() bool
func (PermissionBits) UserRead ¶
func (b PermissionBits) UserRead() bool
func (PermissionBits) UserWrite ¶
func (b PermissionBits) UserWrite() bool
Click to show internal directories.
Click to hide internal directories.