Landlock Usage Checklist

This is a checklist of things to consider when using Landlock.

Design decisions

Understand which of the two main use cases your program falls into:

Case 1: Opportunistic Use

In the Opportunistic use case, the goal is to use Landlock restrictions opportunistically, but fall back to weaker enforcement if necessary.

Case 2: Giving strong guarantees

If you want to rely on Landlock to give certain guarantees, you want to make sure that:

  1. Landlock was present during enforcement at a fixed minimum Landlock ABI version.
  2. Fail the enforcement (and possibly the subsequent program execution) otherwise.

Have an upgrade plan

Language-specific guidance

Checklist and corner cases

Known gaps

Landlock provides a growing list of building blocks for sandboxes, but at the time of writing (2026-11), it does not provide full confinement. Commonly, it is therefore combined with Seccomp-BPF rulesets that cover the remaining gaps.

The following list documents suggested system calls which Landlock does not currently adequately confine and which can be addressed with Seccomp-BPF.

The list of Linux system calls is growing over time and your program might eventually run on a Linux kernel that has more system calls than existed at the time of policy definition.

It is therefore recommended to use allow-lists (not deny-lists) with Seccomp-BPF.

Inotify and Fanotify

The inotify(7) and fanotify(7) interfaces let a process watch files and directories for activity. They are not restrictable with Landlock at the moment.

Non-socket local IPC

These IPC mechanisms are not currently restrictable with Landlock and should be turned off if they are not required:

Category System Calls Notes
System V Shared Memory shmget, shmat, shmdt,shmctl -
System V Message Queues msgget, msgsnd, msgrcv, msgctl In progress, see LandlockSystemFiveMessageQueueControl
System V Semaphores semget, semop, semtimedop, semctl -
Kernel Keyring add_key, request_key, keyctl -

For POSIX message queues, please see: LandlockPosixMessageQueueControl

File Metadata

Read and write access to file metadata is not restrictable with Landlock yet.

An ongoing related patch set: LandlockMetadataControl

Networking Gaps

An ongoing related effort: BigLandlockNetworkingFix

io_uring

io_uring is an asynchronous command multiplexer which can be used to do the equivalent of system calls. Commands issued through io_uring are not subject to regular Seccomp-BPF filters.

If you do not use io_uring, you might want to restrict its creation by blocking:

Another problem: It is possible to set up io_urings which capture the process credentials at creation time and where the actions performed later through the io_uring then use these older credentials. If such an io_uring exists in the process, a later Landlock confinement will have no effect on the operations done through that io_uring.

Access to other processes


Please report bugs to gnoack3000@gmail.com.