Merge pull request #173 from crosbymichael/device-ownership
Get UID and GID for device nodes
This commit is contained in:
commit
40d371a735
|
@ -24,6 +24,8 @@ type Device struct {
|
||||||
MinorNumber int64 `json:"minor_number,omitempty"` // Use the wildcard constant for wildcards.
|
MinorNumber int64 `json:"minor_number,omitempty"` // Use the wildcard constant for wildcards.
|
||||||
CgroupPermissions string `json:"cgroup_permissions,omitempty"` // Typically just "rwm"
|
CgroupPermissions string `json:"cgroup_permissions,omitempty"` // Typically just "rwm"
|
||||||
FileMode os.FileMode `json:"file_mode,omitempty"` // The permission bits of the file's mode
|
FileMode os.FileMode `json:"file_mode,omitempty"` // The permission bits of the file's mode
|
||||||
|
Uid uint32 `json:"uid,omitempty"`
|
||||||
|
Gid uint32 `json:"gid,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDeviceNumberString(deviceNumber int64) string {
|
func GetDeviceNumberString(deviceNumber int64) string {
|
||||||
|
@ -75,6 +77,8 @@ func GetDevice(path, cgroupPermissions string) (*Device, error) {
|
||||||
MinorNumber: Minor(devNumber),
|
MinorNumber: Minor(devNumber),
|
||||||
CgroupPermissions: cgroupPermissions,
|
CgroupPermissions: cgroupPermissions,
|
||||||
FileMode: fileModePermissionBits,
|
FileMode: fileModePermissionBits,
|
||||||
|
Uid: stat_t.Uid,
|
||||||
|
Gid: stat_t.Gid,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,5 +48,10 @@ func CreateDeviceNode(rootfs string, node *devices.Device) error {
|
||||||
if err := syscall.Mknod(dest, uint32(fileMode), devices.Mkdev(node.MajorNumber, node.MinorNumber)); err != nil && !os.IsExist(err) {
|
if err := syscall.Mknod(dest, uint32(fileMode), devices.Mkdev(node.MajorNumber, node.MinorNumber)); err != nil && !os.IsExist(err) {
|
||||||
return fmt.Errorf("mknod %s %s", node.Path, err)
|
return fmt.Errorf("mknod %s %s", node.Path, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := syscall.Chown(dest, int(node.Uid), int(node.Gid)); err != nil {
|
||||||
|
return fmt.Errorf("chown %s to %d:%d", node.Path, node.Uid, node.Gid)
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue