| Function report | 
| Source Code: security\keys\keyctl.c | Create Date:2022-07-28 18:20:18 | 
| Last Modify:2020-03-18 07:59:52 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:Change the ownership of a key* The key must grant the caller Setattr permission for this to work, though* the key need not be fully instantiated yet. For the UID to be changed, or* for the GID to be changed to a group the caller is not a member of, the
Proto:long keyctl_chown_key(key_serial_t id, uid_t user, gid_t group)
Type:long
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| key_serial_t | id | |
| uid_t | user | |
| gid_t | group | 
| 889 | uid = make_kuid(current_user_ns(), user) | 
| 890 | gid = make_kgid(current_user_ns(), group) | 
| 897 | ret = 0 | 
| 908 | key = key_ref_to_ptr(key_ref) | 
| 912 | lock for writing | 
| 914 | If Not Check operation authority Then | 
| 928 | newowner = Get the key quota record for a user, allocating a new record if one doesn't* already exist. | 
| 934 | maxkeys = If uid_eq(uid, GLOBAL_ROOT_UID) Then 's key count quota Else general key count quota | 
| 936 | maxbytes = If uid_eq(uid, GLOBAL_ROOT_UID) Then 's key space quota Else general key space quota | 
| 948 | spin_unlock( & lock) | 
| 951 | qnkeys-- | 
| 952 | qnbytes -= length added to quota | 
| 953 | spin_unlock( & lock) | 
| 956 | atomic_dec( & nkeys) | 
| 957 | atomic_inc( & umber of keys ) | 
| 959 | If Key state (+) or rejection error (-) != KEY_IS_UNINSTANTIATED Then | 
| 960 | atomic_dec( & nikeys) | 
| 961 | atomic_inc( & umber of instantiated keys ) | 
| 964 | zapowner = owner of this key | 
| 965 | owner of this key = newowner | 
| 973 | ret = 0 | 
| 975 | error_put : | 
| 978 | If zapowner Then Dispose of a user structure | 
| 980 | error : | 
| 981 | Return ret | 
| 983 | quota_overrun : | 
| 984 | spin_unlock( & lock) | 
| 987 | Go to error_put | 
| Name | Describe | 
|---|---|
| SYSCALL_DEFINE5 | The key control system call | 
| COMPAT_SYSCALL_DEFINE5 | The key control system call, 32-bit compatibility version for 64-bit archs | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |