-
Notifications
You must be signed in to change notification settings - Fork 47
Permission denied when extracting key data in UserSessionKeyring #6
Copy link
Copy link
Closed
Description
When adding a key to the UserSessionKeyring and directly afterwards reading that key again, I get a permission denied trying to extract the data from the key. The following code triggers the issue
package main
import (
"fmt"
"github.com/jsipprell/keyctl"
)
func main() {
name := "some-key"
value := "lala"
fmt.Println("accessing keyring")
keyring, err := keyctl.UserSessionKeyring()
if err != nil {
panic(err)
}
fmt.Println("adding key")
if _, err := keyring.Add(name, []byte(value)); err != nil {
panic(err)
}
fmt.Println("searching key")
key, err := keyring.Search(name)
if err != nil {
panic(err)
}
fmt.Printf("key: %v\n", key)
fmt.Println("extracting key info")
info, err := key.Info()
if err != nil {
panic(err)
}
fmt.Printf("key info: %v\n", info)
fmt.Println("extracting key data")
data, err := key.Get()
if err != nil {
panic(err)
}
fmt.Printf("key data: %v\n", data)
}generating the following output
accessing keyring
adding key
searching key
key: &{some-key 814656017 -5 0 0}
extracting key info
key info: {key some-key <uid> <gid> alswrv-----v------------ true}
extracting key data
panic: permission denied
Interestingly when changing keyring, err := keyctl.UserSessionKeyring() to keyring, err := keyctl.SessionKeyring() the error goes away. If I generate the same key via commandline keyctl add user some-data foo @u, and omit the keyring.Add() call I can extract the data successfully even though the permissions look identical.
Any idea what's going on?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels