Zack's Kernel News
Zack's Kernel News

Chronicler Zack Brown reports on the latest news, views, dilemmas, and developments within the Linux kernel community.
Extending Capabilities This Way and That
Eric W. Biederman wanted to find a good way to give one process a subset of the capabilities available to another process. Capabilities is a finer-grained set of permissions than regular ownership and read/write/execute permissions. It was defined in a POSIX draft that never became official, so the true nature and behavior of Unix capabilities has no official standard. It makes for craziness.
Eric's idea was to define a couple of new system calls, called fsyscall()
and fsyscall_create()
. The main call, fsyscall()
, would take another system call number as one parameter and a set of capabilities as another; then, it would run the targeted system call using the given set of capabilities, rather than those of the calling process.
He asked Andy Lutomirski's opinion, but Andy pointed out that system call numbers were not as clean as Eric thought. Specifically, Not all system calls were directly callable by number using the ABI (application binary interface). Andy said he was actually working on the problem from almost the opposite angle, to "have a way that one task can trap into a special mode in which another process can do syscalls on its behalf."
[...]
Buy this article as PDF
(incl. VAT)