1
0
mirror of https://github.com/golang/go synced 2024-11-27 04:31:21 -07:00

os: document that Chown with -1 means to leave values unchanged, like POSIX

And fix the nacl implementation.

Fixes #24710

Change-Id: I31ffeea03a72dac5021ffb183fde31e9ffd060ad
Reviewed-on: https://go-review.googlesource.com/106464
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Brad Fitzpatrick 2018-04-11 22:51:17 +00:00
parent a44cd68663
commit 044d2d5af6
3 changed files with 13 additions and 4 deletions

View File

@ -451,7 +451,11 @@ func Readlink(name string) (string, error) {
// Chown changes the numeric uid and gid of the named file.
// If the file is a symbolic link, it changes the uid and gid of the link's target.
// A uid or gid of -1 means to not change that value.
// If there is an error, it will be of type *PathError.
//
// On Windows or Plan 9, Chown always returns the syscall.EWINDOWS or
// EPLAN9 error, wrapped in *PathError.
func Chown(name string, uid, gid int) error {
return &PathError{"chown", name, syscall.EPLAN9}
}

View File

@ -65,10 +65,11 @@ func (f *File) chmod(mode FileMode) error {
// Chown changes the numeric uid and gid of the named file.
// If the file is a symbolic link, it changes the uid and gid of the link's target.
// A uid or gid of -1 means to not change that value.
// If there is an error, it will be of type *PathError.
//
// On Windows, it always returns the syscall.EWINDOWS error, wrapped
// in *PathError.
// On Windows or Plan 9, Chown always returns the syscall.EWINDOWS or
// EPLAN9 error, wrapped in *PathError.
func Chown(name string, uid, gid int) error {
if e := syscall.Chown(name, uid, gid); e != nil {
return &PathError{"chown", name, e}

View File

@ -582,8 +582,12 @@ func Chown(path string, uid, gid int) error {
if err != nil {
return err
}
ip.Uid = uint32(uid)
ip.Gid = uint32(gid)
if uid != -1 {
ip.Uid = uint32(uid)
}
if gid != -1 {
ip.Gid = uint32(gid)
}
return nil
}