The SLES kernel maintains information about each process in a task_struct process type of descriptor.
Each process descriptor contains information such as run-state of process, address space, list of open files,
process priority, which files the process is allowed to access, and security relevant credentials fields including
the following:
uid and gid, which describe the user ID and group ID of a process.
euid and egid, which describe the effective user ID and effective group ID of a process.
fsuid and fsgid, which describe the file system user ID and file system group ID of a process.
suid and sgid, which describe the saved user ID and saved group ID of a process.
groups, which lists the groups to which the process belongs.
state, which describes the run state of the process.
pid, which is the process identifier used by the kernel and user processes for identification.
security, which points to the information relating to the process domain and other attributes used and
managed by AppArmor.
The credentials are used every time a process tries to access a file or IPC objects. Process credentials, along
with the access control data and ownership of the object, determine if access is allowed.
Refer to include/linux/sched.h for information about other task_struct fields.
Figure 5-12 schematically shows the task_struct structure with fields relevant for access control.
56