* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-23 10:19 ` [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4 Günther Noack
@ 2024-07-23 13:03 ` Alejandro Colomar
2024-07-24 14:19 ` Günther Noack
2024-08-06 8:38 ` Konstantin Meskhidze (A)
2024-08-21 15:30 ` Konstantin Meskhidze (A)
2 siblings, 1 reply; 29+ messages in thread
From: Alejandro Colomar @ 2024-07-23 13:03 UTC (permalink / raw)
To: Günther Noack
Cc: Mickaël Salaün, Konstantin Meskhidze, linux-man
[-- Attachment #1: Type: text/plain, Size: 7604 bytes --]
Hi Günther,
On Tue, Jul 23, 2024 at 10:19:16AM GMT, Günther Noack wrote:
> Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers.
>
> The intent is to bring the man pages mostly in line with the kernel
> documentation again. I intentionally did not add networking support to the
> usage example in landlock.7 - I feel that in the long run, we would be better
> advised to maintain longer example code in the kernel samples.
>
> Closes: <https://github.com/landlock-lsm/linux/issues/32>
> Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
> Reviewed-by: Mickaël Salaün <mic@digikod.net>
> Signed-off-by: Günther Noack <gnoack@google.com>
> ---
> man/man2/landlock_add_rule.2 | 74 ++++++++++++++++++++++++++----
> man/man2/landlock_create_ruleset.2 | 12 ++++-
> man/man7/landlock.7 | 23 ++++++++--
> 3 files changed, 94 insertions(+), 15 deletions(-)
>
> diff --git a/man/man2/landlock_add_rule.2 b/man/man2/landlock_add_rule.2
> index 7a83bb303..489e9c354 100644
> --- a/man/man2/landlock_add_rule.2
> +++ b/man/man2/landlock_add_rule.2
> @@ -20,15 +20,14 @@ Standard C library
> .BI " const void *" rule_attr ", uint32_t " flags );
> .fi
> .SH DESCRIPTION
> -A Landlock rule describes an action on an object.
> -An object is currently a file hierarchy,
> -and the related filesystem actions
> -are defined with a set of access rights.
> -This
> +A Landlock rule describes an action on an object
> +which the process intends to perform.
> +A set of rules is aggregated in a ruleset,
> +which can then restrict the thread enforcing it, and its future children.
> +.P
> +The
> .BR landlock_add_rule ()
> -system call enables adding a new Landlock rule to an existing ruleset
> -created with
> -.BR landlock_create_ruleset (2).
> +system call adds a new Landlock rule to an existing ruleset.
> See
> .BR landlock (7)
> for a global overview.
> @@ -42,10 +41,15 @@ identifies the structure type pointed to by
> .IR rule_attr .
> Currently, Linux supports the following
> .I rule_type
> -value:
> +values:
> .TP
> .B LANDLOCK_RULE_PATH_BENEATH
> -This defines the object type as a file hierarchy.
> +For these rules,
> +the object is a file hierarchy,
> +and the related filesystem actions
> +are defined with
> +.IR "filesystem access rights" .
> +.IP
> In this case,
> .I rule_attr
> points to the following structure:
> @@ -74,6 +78,45 @@ is an opened file descriptor, preferably with the
> flag,
> which identifies the parent directory of the file hierarchy or
> just a file.
> +.TP
> +.B LANDLOCK_RULE_NET_PORT
> +For these rules,
> +the object is a TCP port,
> +and the related actions are defined with
> +.IR "network access rights" .
> +.IP
> +In this case,
> +.I rule_attr
> +points to the following structure:
> +.IP
> +.in +4n
> +.EX
> +struct landlock_net_port_attr {
> + __u64 allowed_access;
> + __u64 port;
> +};
> +.EE
> +.in
> +.IP
> +.i allowed_access
s/i/I/
> +contains a bitmask of allowed network actions,
> +which can be applied on the given port.
> +.IP
> +.i port
> +is the network port in host endianness.
> +.IP
> +It should be noted that port 0 passed to
> +.BR bind (2)
> +will bind to an available port from the ephemeral port range.
> +This can be configured in the
> +.I /proc/sys/net/ipv4/ip_local_port_range
> +sysctl (also used for IPv6).
> +.IP
> +A Landlock rule with port 0
> +and the
> +.B LANDLOCK_ACCESS_NET_BIND_TCP
> +right means that requesting to bind on port 0 is allowed
> +and it will automatically translate to binding on the related port range.
> .P
> .I flags
> must be 0.
> @@ -89,6 +132,12 @@ is set to indicate the error.
> .BR landlock_add_rule ()
> can fail for the following reasons:
> .TP
> +.B EAFNOSUPPORT
> +.I rule_type
> +is
> +.BR LANDLOCK_RULE_NET_PORT ,
> +but TCP is not supported by the running kernel.
> +.TP
> .B EOPNOTSUPP
> Landlock is supported by the kernel but disabled at boot time.
> .TP
> @@ -111,6 +160,11 @@ are only applicable to directories, but
> .I \%rule_attr\->parent_fd
> does not refer to a directory).
> .TP
> +.B EINVAL
> +In
> +.IR \%struct\~landlock_net_port_attr ,
> +the port number is greater than 65535.
> +.TP
> .B ENOMSG
> Empty accesses (i.e.,
> .I rule_attr\->allowed_access
> diff --git a/man/man2/landlock_create_ruleset.2 b/man/man2/landlock_create_ruleset.2
> index 105e9b062..ca635ddbc 100644
> --- a/man/man2/landlock_create_ruleset.2
> +++ b/man/man2/landlock_create_ruleset.2
> @@ -41,6 +41,7 @@ It points to the following structure:
> .EX
> struct landlock_ruleset_attr {
> __u64 handled_access_fs;
> + __u64 handled_access_net;
> };
> .EE
> .in
> @@ -52,6 +53,13 @@ is a bitmask of handled filesystem actions
> in
> .BR landlock (7)).
> .IP
> +.I handled_access_net
> +is a bitmask of handled network actions
> +(see
> +.B Network actions
> +in
> +.BR landlock (7)).
> +.IP
> This structure defines a set of
> .IR "handled access rights" ,
> a set of actions on different object types,
> @@ -143,8 +151,8 @@ was not a valid address.
> .TP
> .B ENOMSG
> Empty accesses (i.e.,
> -.I attr\->handled_access_fs
> -is 0).
> +.I attr
> +did not specify any access rights to restrict).
This looks like a wording fix, isn't it? If so, it might be worth a
separate patch.
> .SH STANDARDS
> Linux.
> .SH HISTORY
> diff --git a/man/man7/landlock.7 b/man/man7/landlock.7
> index 652054f15..52876a3de 100644
> --- a/man/man7/landlock.7
> +++ b/man/man7/landlock.7
> @@ -189,6 +189,19 @@ If multiple requirements are not met, the
> error code takes precedence over
> .BR EXDEV .
> .\"
> +.SS Network flags
> +These flags enable to restrict a sandboxed process
> +to a set of network actions.
> +This is supported since the Landlock ABI version 4.
> +.P
> +The following access rights apply to TCP port numbers:
> +.TP
> +.B LANDLOCK_ACCESS_NET_BIND_TCP
> +Bind a TCP socket to a local port.
> +.TP
> +.B LANDLOCK_ACCESS_NET_CONNECT_TCP
> +Connect an active TCP socket to a remote port.
> +.\"
> .SS Layers of file path access rights
> Each time a thread enforces a ruleset on itself,
> it updates its Landlock domain with a new layer of policy.
> @@ -339,6 +352,9 @@ _ _ _
> 2 5.19 LANDLOCK_ACCESS_FS_REFER
> _ _ _
> 3 6.2 LANDLOCK_ACCESS_FS_TRUNCATE
> +_ _ _
> +4 6.7 LANDLOCK_ACCESS_NET_BIND_TCP
> +\^ \^ LANDLOCK_ACCESS_NET_CONNECT_TCP
Did you actually want \[ha]?
> .TE
> .P
> Users should use the Landlock ABI version rather than the kernel version
> @@ -439,9 +455,10 @@ and only use the available subset of access rights:
> * numbers hardcoded to keep the example short.
> */
> __u64 landlock_fs_access_rights[] = {
> - (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> - (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> - (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> + (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> + (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v4: TCP support */
> };
> \&
> int abi = landlock_create_ruleset(NULL, 0,
> --
> 2.45.2.1089.g2a221341d9-goog
Have a lovely day!
Alex
>
>
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-23 13:03 ` Alejandro Colomar
@ 2024-07-24 14:19 ` Günther Noack
2024-07-24 14:31 ` Alejandro Colomar
0 siblings, 1 reply; 29+ messages in thread
From: Günther Noack @ 2024-07-24 14:19 UTC (permalink / raw)
To: Alejandro Colomar
Cc: Mickaël Salaün, Konstantin Meskhidze, linux-man
Hello Alejandro!
On Tue, Jul 23, 2024 at 03:03:13PM +0200, Alejandro Colomar wrote:
> On Tue, Jul 23, 2024 at 10:19:16AM GMT, Günther Noack wrote:
> > +.EX
> > +struct landlock_net_port_attr {
> > + __u64 allowed_access;
> > + __u64 port;
> > +};
> > +.EE
> > +.in
> > +.IP
> > +.i allowed_access
>
> s/i/I/
Thanks, fixed. o_O
> > +contains a bitmask of allowed network actions,
> > +which can be applied on the given port.
> > +.IP
> > +.i port
Same here
> > +is the network port in host endianness.
> > +.IP
> > +It should be noted that port 0 passed to
> > +.BR bind (2)
> > +will bind to an available port from the ephemeral port range.
> > +This can be configured in the
> > +.I /proc/sys/net/ipv4/ip_local_port_range
> > +sysctl (also used for IPv6).
> > +.IP
> > +A Landlock rule with port 0
> > +and the
> > +.B LANDLOCK_ACCESS_NET_BIND_TCP
> > +right means that requesting to bind on port 0 is allowed
> > +and it will automatically translate to binding on the related port range.
> > .P
> > .I flags
> > must be 0.
> > @@ -89,6 +132,12 @@ is set to indicate the error.
> > .BR landlock_add_rule ()
> > can fail for the following reasons:
> > .TP
> > +.B EAFNOSUPPORT
> > +.I rule_type
> > +is
> > +.BR LANDLOCK_RULE_NET_PORT ,
> > +but TCP is not supported by the running kernel.
> > +.TP
> > .B EOPNOTSUPP
> > Landlock is supported by the kernel but disabled at boot time.
> > .TP
> > @@ -111,6 +160,11 @@ are only applicable to directories, but
> > .I \%rule_attr\->parent_fd
> > does not refer to a directory).
> > .TP
> > +.B EINVAL
> > +In
> > +.IR \%struct\~landlock_net_port_attr ,
> > +the port number is greater than 65535.
> > +.TP
> > .B ENOMSG
> > Empty accesses (i.e.,
> > .I rule_attr\->allowed_access
> > diff --git a/man/man2/landlock_create_ruleset.2 b/man/man2/landlock_create_ruleset.2
> > index 105e9b062..ca635ddbc 100644
> > --- a/man/man2/landlock_create_ruleset.2
> > +++ b/man/man2/landlock_create_ruleset.2
> > @@ -41,6 +41,7 @@ It points to the following structure:
> > .EX
> > struct landlock_ruleset_attr {
> > __u64 handled_access_fs;
> > + __u64 handled_access_net;
> > };
> > .EE
> > .in
> > @@ -52,6 +53,13 @@ is a bitmask of handled filesystem actions
> > in
> > .BR landlock (7)).
> > .IP
> > +.I handled_access_net
> > +is a bitmask of handled network actions
> > +(see
> > +.B Network actions
> > +in
> > +.BR landlock (7)).
> > +.IP
> > This structure defines a set of
> > .IR "handled access rights" ,
> > a set of actions on different object types,
> > @@ -143,8 +151,8 @@ was not a valid address.
> > .TP
> > .B ENOMSG
> > Empty accesses (i.e.,
> > -.I attr\->handled_access_fs
> > -is 0).
> > +.I attr
> > +did not specify any access rights to restrict).
>
> This looks like a wording fix, isn't it? If so, it might be worth a
> separate patch.
>
> > .SH STANDARDS
> > Linux.
> > .SH HISTORY
> > diff --git a/man/man7/landlock.7 b/man/man7/landlock.7
> > index 652054f15..52876a3de 100644
> > --- a/man/man7/landlock.7
> > +++ b/man/man7/landlock.7
> > @@ -189,6 +189,19 @@ If multiple requirements are not met, the
> > error code takes precedence over
> > .BR EXDEV .
> > .\"
> > +.SS Network flags
> > +These flags enable to restrict a sandboxed process
> > +to a set of network actions.
> > +This is supported since the Landlock ABI version 4.
> > +.P
> > +The following access rights apply to TCP port numbers:
> > +.TP
> > +.B LANDLOCK_ACCESS_NET_BIND_TCP
> > +Bind a TCP socket to a local port.
> > +.TP
> > +.B LANDLOCK_ACCESS_NET_CONNECT_TCP
> > +Connect an active TCP socket to a remote port.
> > +.\"
> > .SS Layers of file path access rights
> > Each time a thread enforces a ruleset on itself,
> > it updates its Landlock domain with a new layer of policy.
> > @@ -339,6 +352,9 @@ _ _ _
> > 2 5.19 LANDLOCK_ACCESS_FS_REFER
> > _ _ _
> > 3 6.2 LANDLOCK_ACCESS_FS_TRUNCATE
> > +_ _ _
> > +4 6.7 LANDLOCK_ACCESS_NET_BIND_TCP
> > +\^ \^ LANDLOCK_ACCESS_NET_CONNECT_TCP
>
> Did you actually want \[ha]?
I believe \[ha] would show the caret character in the document?
What I want is different, as documented in tbl(1):
On any row but the first, a table entry of \^
causes the entry above it to span down into the current one.
The table cell should render like this:
+---+-----+---------------------------------+
| 4 | 6.7 | LANDLOCK_ACCESS_NET_BIND_TCP |
| | | LANDLOCK_ACCESS_NET_CONNECT_TCP |
+---+-----+---------------------------------+
We are already using the same approach for the table cells further up in the
table. IIRC, the tbl(1) preprocessor wanted *something* there, and \^ is the
placeholder that you can put if you don't have text to put in that place?
Assuming that I'm right about the \^, do you want a separate patch set for the
.i/.I change?
—Günther
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-24 14:19 ` Günther Noack
@ 2024-07-24 14:31 ` Alejandro Colomar
2024-07-24 14:51 ` Günther Noack
0 siblings, 1 reply; 29+ messages in thread
From: Alejandro Colomar @ 2024-07-24 14:31 UTC (permalink / raw)
To: Günther Noack
Cc: Mickaël Salaün, Konstantin Meskhidze, linux-man
[-- Attachment #1: Type: text/plain, Size: 5644 bytes --]
Hi Günther!
On Wed, Jul 24, 2024 at 04:19:18PM GMT, Günther Noack wrote:
> Hello Alejandro!
>
> On Tue, Jul 23, 2024 at 03:03:13PM +0200, Alejandro Colomar wrote:
> > On Tue, Jul 23, 2024 at 10:19:16AM GMT, Günther Noack wrote:
> > > +.EX
> > > +struct landlock_net_port_attr {
> > > + __u64 allowed_access;
> > > + __u64 port;
> > > +};
> > > +.EE
> > > +.in
> > > +.IP
> > > +.i allowed_access
> >
> > s/i/I/
>
> Thanks, fixed. o_O
>
>
> > > +contains a bitmask of allowed network actions,
> > > +which can be applied on the given port.
> > > +.IP
> > > +.i port
>
> Same here
>
>
> > > +is the network port in host endianness.
> > > +.IP
> > > +It should be noted that port 0 passed to
> > > +.BR bind (2)
> > > +will bind to an available port from the ephemeral port range.
> > > +This can be configured in the
> > > +.I /proc/sys/net/ipv4/ip_local_port_range
> > > +sysctl (also used for IPv6).
> > > +.IP
> > > +A Landlock rule with port 0
> > > +and the
> > > +.B LANDLOCK_ACCESS_NET_BIND_TCP
> > > +right means that requesting to bind on port 0 is allowed
> > > +and it will automatically translate to binding on the related port range.
> > > .P
> > > .I flags
> > > must be 0.
> > > @@ -89,6 +132,12 @@ is set to indicate the error.
> > > .BR landlock_add_rule ()
> > > can fail for the following reasons:
> > > .TP
> > > +.B EAFNOSUPPORT
> > > +.I rule_type
> > > +is
> > > +.BR LANDLOCK_RULE_NET_PORT ,
> > > +but TCP is not supported by the running kernel.
> > > +.TP
> > > .B EOPNOTSUPP
> > > Landlock is supported by the kernel but disabled at boot time.
> > > .TP
> > > @@ -111,6 +160,11 @@ are only applicable to directories, but
> > > .I \%rule_attr\->parent_fd
> > > does not refer to a directory).
> > > .TP
> > > +.B EINVAL
> > > +In
> > > +.IR \%struct\~landlock_net_port_attr ,
> > > +the port number is greater than 65535.
> > > +.TP
> > > .B ENOMSG
> > > Empty accesses (i.e.,
> > > .I rule_attr\->allowed_access
> > > diff --git a/man/man2/landlock_create_ruleset.2 b/man/man2/landlock_create_ruleset.2
> > > index 105e9b062..ca635ddbc 100644
> > > --- a/man/man2/landlock_create_ruleset.2
> > > +++ b/man/man2/landlock_create_ruleset.2
> > > @@ -41,6 +41,7 @@ It points to the following structure:
> > > .EX
> > > struct landlock_ruleset_attr {
> > > __u64 handled_access_fs;
> > > + __u64 handled_access_net;
> > > };
> > > .EE
> > > .in
> > > @@ -52,6 +53,13 @@ is a bitmask of handled filesystem actions
> > > in
> > > .BR landlock (7)).
> > > .IP
> > > +.I handled_access_net
> > > +is a bitmask of handled network actions
> > > +(see
> > > +.B Network actions
> > > +in
> > > +.BR landlock (7)).
> > > +.IP
> > > This structure defines a set of
> > > .IR "handled access rights" ,
> > > a set of actions on different object types,
> > > @@ -143,8 +151,8 @@ was not a valid address.
> > > .TP
> > > .B ENOMSG
> > > Empty accesses (i.e.,
> > > -.I attr\->handled_access_fs
> > > -is 0).
> > > +.I attr
> > > +did not specify any access rights to restrict).
> >
> > This looks like a wording fix, isn't it? If so, it might be worth a
> > separate patch.
Ping.
> >
> > > .SH STANDARDS
> > > Linux.
> > > .SH HISTORY
> > > diff --git a/man/man7/landlock.7 b/man/man7/landlock.7
> > > index 652054f15..52876a3de 100644
> > > --- a/man/man7/landlock.7
> > > +++ b/man/man7/landlock.7
> > > @@ -189,6 +189,19 @@ If multiple requirements are not met, the
> > > error code takes precedence over
> > > .BR EXDEV .
> > > .\"
> > > +.SS Network flags
> > > +These flags enable to restrict a sandboxed process
> > > +to a set of network actions.
> > > +This is supported since the Landlock ABI version 4.
> > > +.P
> > > +The following access rights apply to TCP port numbers:
> > > +.TP
> > > +.B LANDLOCK_ACCESS_NET_BIND_TCP
> > > +Bind a TCP socket to a local port.
> > > +.TP
> > > +.B LANDLOCK_ACCESS_NET_CONNECT_TCP
> > > +Connect an active TCP socket to a remote port.
> > > +.\"
> > > .SS Layers of file path access rights
> > > Each time a thread enforces a ruleset on itself,
> > > it updates its Landlock domain with a new layer of policy.
> > > @@ -339,6 +352,9 @@ _ _ _
> > > 2 5.19 LANDLOCK_ACCESS_FS_REFER
> > > _ _ _
> > > 3 6.2 LANDLOCK_ACCESS_FS_TRUNCATE
> > > +_ _ _
> > > +4 6.7 LANDLOCK_ACCESS_NET_BIND_TCP
> > > +\^ \^ LANDLOCK_ACCESS_NET_CONNECT_TCP
> >
> > Did you actually want \[ha]?
>
> I believe \[ha] would show the caret character in the document?
> What I want is different, as documented in tbl(1):
>
> On any row but the first, a table entry of \^
> causes the entry above it to span down into the current one.
Ahhh, sorry. I forgot about that thing. You can guess that I don't use
tbl(1) often. :)
>
> The table cell should render like this:
>
> +---+-----+---------------------------------+
> | 4 | 6.7 | LANDLOCK_ACCESS_NET_BIND_TCP |
> | | | LANDLOCK_ACCESS_NET_CONNECT_TCP |
> +---+-----+---------------------------------+
>
> We are already using the same approach for the table cells further up in the
> table. IIRC, the tbl(1) preprocessor wanted *something* there, and \^ is the
> placeholder that you can put if you don't have text to put in that place?
>
> Assuming that I'm right about the \^, do you want a separate patch set for the
> .i/.I change?
It depends on your answer to the pinged question above.
Have a lovely day!
Alex
>
> —Günther
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-24 14:31 ` Alejandro Colomar
@ 2024-07-24 14:51 ` Günther Noack
2024-07-24 14:54 ` Alejandro Colomar
0 siblings, 1 reply; 29+ messages in thread
From: Günther Noack @ 2024-07-24 14:51 UTC (permalink / raw)
To: Alejandro Colomar
Cc: Mickaël Salaün, Konstantin Meskhidze, linux-man
Hello Alejandro!
On Wed, Jul 24, 2024 at 04:31:21PM +0200, Alejandro Colomar wrote:
> On Wed, Jul 24, 2024 at 04:19:18PM GMT, Günther Noack wrote:
> > On Tue, Jul 23, 2024 at 03:03:13PM +0200, Alejandro Colomar wrote:
> > > On Tue, Jul 23, 2024 at 10:19:16AM GMT, Günther Noack wrote:
> > > > @@ -143,8 +151,8 @@ was not a valid address.
> > > > .TP
> > > > .B ENOMSG
> > > > Empty accesses (i.e.,
> > > > -.I attr\->handled_access_fs
> > > > -is 0).
> > > > +.I attr
> > > > +did not specify any access rights to restrict).
> > >
> > > This looks like a wording fix, isn't it? If so, it might be worth a
> > > separate patch.
>
> Ping.
Thanks, I missed that.
It is not a pure wording fix, but it corrects an overly specific error
description that does not hold any more in the case of Landlock ABI version 4.
With the introduction of Landlock ABI v4, attr->handled_access_fs is not
technically accurate any more, but it can also be attr->handled_access_net(!)
now, in the case where someone uses these new networking features. So I made
the phrasing a bit more general to cover both.
> It depends on your answer to the pinged question above.
Sounds good.
Thanks for the review!
—Günther
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-24 14:51 ` Günther Noack
@ 2024-07-24 14:54 ` Alejandro Colomar
2024-07-31 9:43 ` Günther Noack
0 siblings, 1 reply; 29+ messages in thread
From: Alejandro Colomar @ 2024-07-24 14:54 UTC (permalink / raw)
To: Günther Noack
Cc: Mickaël Salaün, Konstantin Meskhidze, linux-man
[-- Attachment #1: Type: text/plain, Size: 1546 bytes --]
On Wed, Jul 24, 2024 at 02:51:30PM GMT, Günther Noack wrote:
> Hello Alejandro!
Hi!
> On Wed, Jul 24, 2024 at 04:31:21PM +0200, Alejandro Colomar wrote:
> > On Wed, Jul 24, 2024 at 04:19:18PM GMT, Günther Noack wrote:
> > > On Tue, Jul 23, 2024 at 03:03:13PM +0200, Alejandro Colomar wrote:
> > > > On Tue, Jul 23, 2024 at 10:19:16AM GMT, Günther Noack wrote:
> > > > > @@ -143,8 +151,8 @@ was not a valid address.
> > > > > .TP
> > > > > .B ENOMSG
> > > > > Empty accesses (i.e.,
> > > > > -.I attr\->handled_access_fs
> > > > > -is 0).
> > > > > +.I attr
> > > > > +did not specify any access rights to restrict).
> > > >
> > > > This looks like a wording fix, isn't it? If so, it might be worth a
> > > > separate patch.
> >
> > Ping.
>
> Thanks, I missed that.
>
> It is not a pure wording fix, but it corrects an overly specific error
> description that does not hold any more in the case of Landlock ABI version 4.
>
> With the introduction of Landlock ABI v4, attr->handled_access_fs is not
> technically accurate any more, but it can also be attr->handled_access_net(!)
> now, in the case where someone uses these new networking features. So I made
> the phrasing a bit more general to cover both.
Makes sense; thanks!
>
> > It depends on your answer to the pinged question above.
I'll apply this patch set, and amend the s/i/I/ myself.
Have a lovely day!
Alex
>
> Sounds good.
>
> Thanks for the review!
> —Günther
>
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-24 14:54 ` Alejandro Colomar
@ 2024-07-31 9:43 ` Günther Noack
2024-07-31 9:51 ` Alejandro Colomar
0 siblings, 1 reply; 29+ messages in thread
From: Günther Noack @ 2024-07-31 9:43 UTC (permalink / raw)
To: Alejandro Colomar
Cc: Mickaël Salaün, Konstantin Meskhidze, linux-man
On Wed, Jul 24, 2024 at 04:54:43PM +0200, Alejandro Colomar wrote:
> On Wed, Jul 24, 2024 at 02:51:30PM GMT, Günther Noack wrote:
> > On Wed, Jul 24, 2024 at 04:31:21PM +0200, Alejandro Colomar wrote:
> > > It depends on your answer to the pinged question above.
>
> I'll apply this patch set, and amend the s/i/I/ myself.
Thank you Alejandro, I would appreciate that! :)
Thanks,
—Günther
P.S.: I noticed that it is not in master yet, but I assume it'll get there. :)
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-31 9:43 ` Günther Noack
@ 2024-07-31 9:51 ` Alejandro Colomar
0 siblings, 0 replies; 29+ messages in thread
From: Alejandro Colomar @ 2024-07-31 9:51 UTC (permalink / raw)
To: Günther Noack
Cc: Mickaël Salaün, Konstantin Meskhidze, linux-man
[-- Attachment #1: Type: text/plain, Size: 781 bytes --]
Hi Günther!
On Wed, Jul 31, 2024 at 11:43:35AM GMT, Günther Noack wrote:
> On Wed, Jul 24, 2024 at 04:54:43PM +0200, Alejandro Colomar wrote:
> > On Wed, Jul 24, 2024 at 02:51:30PM GMT, Günther Noack wrote:
> > > On Wed, Jul 24, 2024 at 04:31:21PM +0200, Alejandro Colomar wrote:
> > > > It depends on your answer to the pinged question above.
> >
> > I'll apply this patch set, and amend the s/i/I/ myself.
>
> Thank you Alejandro, I would appreciate that! :)
:-)
>
> Thanks,
> —Günther
>
> P.S.: I noticed that it is not in master yet, but I assume it'll get there. :)
Yeah, I'm being slower these days. I'm a bit tired. But it'll get
there. Probably later today. :)
Have a lovely day!
Alex
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-23 10:19 ` [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4 Günther Noack
2024-07-23 13:03 ` Alejandro Colomar
@ 2024-08-06 8:38 ` Konstantin Meskhidze (A)
2024-08-06 10:19 ` Alejandro Colomar
2024-08-21 15:30 ` Konstantin Meskhidze (A)
2 siblings, 1 reply; 29+ messages in thread
From: Konstantin Meskhidze (A) @ 2024-08-06 8:38 UTC (permalink / raw)
To: Günther Noack, Alejandro Colomar
Cc: Mickaël Salaün, linux-man, Artem Kuzin, yusongping
7/23/2024 1:19 PM, Günther Noack пишет:
> Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers.
>
> The intent is to bring the man pages mostly in line with the kernel
> documentation again. I intentionally did not add networking support to the
> usage example in landlock.7 - I feel that in the long run, we would be better
> advised to maintain longer example code in the kernel samples.
>
> Closes: <https://github.com/landlock-lsm/linux/issues/32>
> Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
> Reviewed-by: Mickaël Salaün <mic@digikod.net>
> Signed-off-by: Günther Noack <gnoack@google.com>
> ---
> man/man2/landlock_add_rule.2 | 74 ++++++++++++++++++++++++++----
> man/man2/landlock_create_ruleset.2 | 12 ++++-
> man/man7/landlock.7 | 23 ++++++++--
> 3 files changed, 94 insertions(+), 15 deletions(-)
>
> diff --git a/man/man2/landlock_add_rule.2 b/man/man2/landlock_add_rule.2
> index 7a83bb303..489e9c354 100644
> --- a/man/man2/landlock_add_rule.2
> +++ b/man/man2/landlock_add_rule.2
> @@ -20,15 +20,14 @@ Standard C library
> .BI " const void *" rule_attr ", uint32_t " flags );
> .fi
> .SH DESCRIPTION
> -A Landlock rule describes an action on an object.
> -An object is currently a file hierarchy,
> -and the related filesystem actions
> -are defined with a set of access rights.
> -This
> +A Landlock rule describes an action on an object
> +which the process intends to perform.
> +A set of rules is aggregated in a ruleset,
> +which can then restrict the thread enforcing it, and its future children.
> +.P
> +The
> .BR landlock_add_rule ()
> -system call enables adding a new Landlock rule to an existing ruleset
> -created with
> -.BR landlock_create_ruleset (2).
> +system call adds a new Landlock rule to an existing ruleset.
> See
> .BR landlock (7)
> for a global overview.
> @@ -42,10 +41,15 @@ identifies the structure type pointed to by
> .IR rule_attr .
> Currently, Linux supports the following
> .I rule_type
> -value:
> +values:
> .TP
> .B LANDLOCK_RULE_PATH_BENEATH
> -This defines the object type as a file hierarchy.
> +For these rules,
> +the object is a file hierarchy,
> +and the related filesystem actions
> +are defined with
> +.IR "filesystem access rights" .
> +.IP
> In this case,
> .I rule_attr
> points to the following structure:
> @@ -74,6 +78,45 @@ is an opened file descriptor, preferably with the
> flag,
> which identifies the parent directory of the file hierarchy or
> just a file.
> +.TP
> +.B LANDLOCK_RULE_NET_PORT
> +For these rules,
> +the object is a TCP port,
> +and the related actions are defined with
> +.IR "network access rights" .
> +.IP
> +In this case,
> +.I rule_attr
> +points to the following structure:
> +.IP
> +.in +4n
> +.EX
> +struct landlock_net_port_attr {
> + __u64 allowed_access;
> + __u64 port;
> +};
> +.EE
> +.in
> +.IP
> +.i allowed_access
> +contains a bitmask of allowed network actions,
> +which can be applied on the given port.
> +.IP
> +.i port
> +is the network port in host endianness.
> +.IP
> +It should be noted that port 0 passed to
> +.BR bind (2)
> +will bind to an available port from the ephemeral port range.
> +This can be configured in the
> +.I /proc/sys/net/ipv4/ip_local_port_range
> +sysctl (also used for IPv6).
> +.IP
> +A Landlock rule with port 0
> +and the
> +.B LANDLOCK_ACCESS_NET_BIND_TCP
> +right means that requesting to bind on port 0 is allowed
> +and it will automatically translate to binding on the related port range.
> .P
> .I flags
> must be 0.
> @@ -89,6 +132,12 @@ is set to indicate the error.
> .BR landlock_add_rule ()
> can fail for the following reasons:
> .TP
> +.B EAFNOSUPPORT
> +.I rule_type
> +is
> +.BR LANDLOCK_RULE_NET_PORT ,
> +but TCP is not supported by the running kernel.
> +.TP
> .B EOPNOTSUPP
> Landlock is supported by the kernel but disabled at boot time.
> .TP
> @@ -111,6 +160,11 @@ are only applicable to directories, but
> .I \%rule_attr\->parent_fd
> does not refer to a directory).
> .TP
> +.B EINVAL
> +In
> +.IR \%struct\~landlock_net_port_attr ,
> +the port number is greater than 65535.
> +.TP
> .B ENOMSG
> Empty accesses (i.e.,
> .I rule_attr\->allowed_access
> diff --git a/man/man2/landlock_create_ruleset.2 b/man/man2/landlock_create_ruleset.2
> index 105e9b062..ca635ddbc 100644
> --- a/man/man2/landlock_create_ruleset.2
> +++ b/man/man2/landlock_create_ruleset.2
> @@ -41,6 +41,7 @@ It points to the following structure:
> .EX
> struct landlock_ruleset_attr {
> __u64 handled_access_fs;
> + __u64 handled_access_net;
> };
> .EE
> .in
> @@ -52,6 +53,13 @@ is a bitmask of handled filesystem actions
> in
> .BR landlock (7)).
> .IP
> +.I handled_access_net
> +is a bitmask of handled network actions
> +(see
> +.B Network actions
> +in
> +.BR landlock (7)).
> +.IP
> This structure defines a set of
> .IR "handled access rights" ,
> a set of actions on different object types,
> @@ -143,8 +151,8 @@ was not a valid address.
> .TP
> .B ENOMSG
> Empty accesses (i.e.,
> -.I attr\->handled_access_fs
> -is 0).
> +.I attr
> +did not specify any access rights to restrict).
> .SH STANDARDS
> Linux.
> .SH HISTORY
> diff --git a/man/man7/landlock.7 b/man/man7/landlock.7
> index 652054f15..52876a3de 100644
> --- a/man/man7/landlock.7
> +++ b/man/man7/landlock.7
> @@ -189,6 +189,19 @@ If multiple requirements are not met, the
> error code takes precedence over
> .BR EXDEV .
> .\"
> +.SS Network flags
> +These flags enable to restrict a sandboxed process
> +to a set of network actions.
> +This is supported since the Landlock ABI version 4.
> +.P
> +The following access rights apply to TCP port numbers:
> +.TP
> +.B LANDLOCK_ACCESS_NET_BIND_TCP
> +Bind a TCP socket to a local port.
> +.TP
> +.B LANDLOCK_ACCESS_NET_CONNECT_TCP
> +Connect an active TCP socket to a remote port.
> +.\"
> .SS Layers of file path access rights
> Each time a thread enforces a ruleset on itself,
> it updates its Landlock domain with a new layer of policy.
> @@ -339,6 +352,9 @@ _ _ _
> 2 5.19 LANDLOCK_ACCESS_FS_REFER
> _ _ _
> 3 6.2 LANDLOCK_ACCESS_FS_TRUNCATE
> +_ _ _
> +4 6.7 LANDLOCK_ACCESS_NET_BIND_TCP
> +\^ \^ LANDLOCK_ACCESS_NET_CONNECT_TCP
> .TE
> .P
> Users should use the Landlock ABI version rather than the kernel version
> @@ -439,9 +455,10 @@ and only use the available subset of access rights:
> * numbers hardcoded to keep the example short.
> */
> __u64 landlock_fs_access_rights[] = {
> - (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> - (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> - (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> + (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> + (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v4: TCP support */ Double "LANDLOCK_ACCESS_FS_TRUNCATE << 1", I think its a mistype here.
> };
> \&
> int abi = landlock_create_ruleset(NULL, 0,
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-08-06 8:38 ` Konstantin Meskhidze (A)
@ 2024-08-06 10:19 ` Alejandro Colomar
2024-08-06 10:34 ` Konstantin Meskhidze (A)
0 siblings, 1 reply; 29+ messages in thread
From: Alejandro Colomar @ 2024-08-06 10:19 UTC (permalink / raw)
To: Konstantin Meskhidze (A)
Cc: Günther Noack, Mickaël Salaün, linux-man,
Artem Kuzin, yusongping
[-- Attachment #1: Type: text/plain, Size: 8144 bytes --]
Hi Konstantin,
You didn't write anything in this message, right? Was it an accident?
Have a lovely day!
Alex
On Tue, Aug 06, 2024 at 11:38:57AM GMT, Konstantin Meskhidze (A) wrote:
>
>
> 7/23/2024 1:19 PM, Günther Noack пишет:
> > Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers.
> >
> > The intent is to bring the man pages mostly in line with the kernel
> > documentation again. I intentionally did not add networking support to the
> > usage example in landlock.7 - I feel that in the long run, we would be better
> > advised to maintain longer example code in the kernel samples.
> >
> > Closes: <https://github.com/landlock-lsm/linux/issues/32>
> > Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
> > Reviewed-by: Mickaël Salaün <mic@digikod.net>
> > Signed-off-by: Günther Noack <gnoack@google.com>
> > ---
> > man/man2/landlock_add_rule.2 | 74 ++++++++++++++++++++++++++----
> > man/man2/landlock_create_ruleset.2 | 12 ++++-
> > man/man7/landlock.7 | 23 ++++++++--
> > 3 files changed, 94 insertions(+), 15 deletions(-)
> >
> > diff --git a/man/man2/landlock_add_rule.2 b/man/man2/landlock_add_rule.2
> > index 7a83bb303..489e9c354 100644
> > --- a/man/man2/landlock_add_rule.2
> > +++ b/man/man2/landlock_add_rule.2
> > @@ -20,15 +20,14 @@ Standard C library
> > .BI " const void *" rule_attr ", uint32_t " flags );
> > .fi
> > .SH DESCRIPTION
> > -A Landlock rule describes an action on an object.
> > -An object is currently a file hierarchy,
> > -and the related filesystem actions
> > -are defined with a set of access rights.
> > -This
> > +A Landlock rule describes an action on an object
> > +which the process intends to perform.
> > +A set of rules is aggregated in a ruleset,
> > +which can then restrict the thread enforcing it, and its future children.
> > +.P
> > +The
> > .BR landlock_add_rule ()
> > -system call enables adding a new Landlock rule to an existing ruleset
> > -created with
> > -.BR landlock_create_ruleset (2).
> > +system call adds a new Landlock rule to an existing ruleset.
> > See
> > .BR landlock (7)
> > for a global overview.
> > @@ -42,10 +41,15 @@ identifies the structure type pointed to by
> > .IR rule_attr .
> > Currently, Linux supports the following
> > .I rule_type
> > -value:
> > +values:
> > .TP
> > .B LANDLOCK_RULE_PATH_BENEATH
> > -This defines the object type as a file hierarchy.
> > +For these rules,
> > +the object is a file hierarchy,
> > +and the related filesystem actions
> > +are defined with
> > +.IR "filesystem access rights" .
> > +.IP
> > In this case,
> > .I rule_attr
> > points to the following structure:
> > @@ -74,6 +78,45 @@ is an opened file descriptor, preferably with the
> > flag,
> > which identifies the parent directory of the file hierarchy or
> > just a file.
> > +.TP
> > +.B LANDLOCK_RULE_NET_PORT
> > +For these rules,
> > +the object is a TCP port,
> > +and the related actions are defined with
> > +.IR "network access rights" .
> > +.IP
> > +In this case,
> > +.I rule_attr
> > +points to the following structure:
> > +.IP
> > +.in +4n
> > +.EX
> > +struct landlock_net_port_attr {
> > + __u64 allowed_access;
> > + __u64 port;
> > +};
> > +.EE
> > +.in
> > +.IP
> > +.i allowed_access
> > +contains a bitmask of allowed network actions,
> > +which can be applied on the given port.
> > +.IP
> > +.i port
> > +is the network port in host endianness.
> > +.IP
> > +It should be noted that port 0 passed to
> > +.BR bind (2)
> > +will bind to an available port from the ephemeral port range.
> > +This can be configured in the
> > +.I /proc/sys/net/ipv4/ip_local_port_range
> > +sysctl (also used for IPv6).
> > +.IP
> > +A Landlock rule with port 0
> > +and the
> > +.B LANDLOCK_ACCESS_NET_BIND_TCP
> > +right means that requesting to bind on port 0 is allowed
> > +and it will automatically translate to binding on the related port range.
> > .P
> > .I flags
> > must be 0.
> > @@ -89,6 +132,12 @@ is set to indicate the error.
> > .BR landlock_add_rule ()
> > can fail for the following reasons:
> > .TP
> > +.B EAFNOSUPPORT
> > +.I rule_type
> > +is
> > +.BR LANDLOCK_RULE_NET_PORT ,
> > +but TCP is not supported by the running kernel.
> > +.TP
> > .B EOPNOTSUPP
> > Landlock is supported by the kernel but disabled at boot time.
> > .TP
> > @@ -111,6 +160,11 @@ are only applicable to directories, but
> > .I \%rule_attr\->parent_fd
> > does not refer to a directory).
> > .TP
> > +.B EINVAL
> > +In
> > +.IR \%struct\~landlock_net_port_attr ,
> > +the port number is greater than 65535.
> > +.TP
> > .B ENOMSG
> > Empty accesses (i.e.,
> > .I rule_attr\->allowed_access
> > diff --git a/man/man2/landlock_create_ruleset.2 b/man/man2/landlock_create_ruleset.2
> > index 105e9b062..ca635ddbc 100644
> > --- a/man/man2/landlock_create_ruleset.2
> > +++ b/man/man2/landlock_create_ruleset.2
> > @@ -41,6 +41,7 @@ It points to the following structure:
> > .EX
> > struct landlock_ruleset_attr {
> > __u64 handled_access_fs;
> > + __u64 handled_access_net;
> > };
> > .EE
> > .in
> > @@ -52,6 +53,13 @@ is a bitmask of handled filesystem actions
> > in
> > .BR landlock (7)).
> > .IP
> > +.I handled_access_net
> > +is a bitmask of handled network actions
> > +(see
> > +.B Network actions
> > +in
> > +.BR landlock (7)).
> > +.IP
> > This structure defines a set of
> > .IR "handled access rights" ,
> > a set of actions on different object types,
> > @@ -143,8 +151,8 @@ was not a valid address.
> > .TP
> > .B ENOMSG
> > Empty accesses (i.e.,
> > -.I attr\->handled_access_fs
> > -is 0).
> > +.I attr
> > +did not specify any access rights to restrict).
> > .SH STANDARDS
> > Linux.
> > .SH HISTORY
> > diff --git a/man/man7/landlock.7 b/man/man7/landlock.7
> > index 652054f15..52876a3de 100644
> > --- a/man/man7/landlock.7
> > +++ b/man/man7/landlock.7
> > @@ -189,6 +189,19 @@ If multiple requirements are not met, the
> > error code takes precedence over
> > .BR EXDEV .
> > .\"
> > +.SS Network flags
> > +These flags enable to restrict a sandboxed process
> > +to a set of network actions.
> > +This is supported since the Landlock ABI version 4.
> > +.P
> > +The following access rights apply to TCP port numbers:
> > +.TP
> > +.B LANDLOCK_ACCESS_NET_BIND_TCP
> > +Bind a TCP socket to a local port.
> > +.TP
> > +.B LANDLOCK_ACCESS_NET_CONNECT_TCP
> > +Connect an active TCP socket to a remote port.
> > +.\"
> > .SS Layers of file path access rights
> > Each time a thread enforces a ruleset on itself,
> > it updates its Landlock domain with a new layer of policy.
> > @@ -339,6 +352,9 @@ _ _ _
> > 2 5.19 LANDLOCK_ACCESS_FS_REFER
> > _ _ _
> > 3 6.2 LANDLOCK_ACCESS_FS_TRUNCATE
> > +_ _ _
> > +4 6.7 LANDLOCK_ACCESS_NET_BIND_TCP
> > +\^ \^ LANDLOCK_ACCESS_NET_CONNECT_TCP
> > .TE
> > .P
> > Users should use the Landlock ABI version rather than the kernel version
> > @@ -439,9 +455,10 @@ and only use the available subset of access rights:
> > * numbers hardcoded to keep the example short.
> > */
> > __u64 landlock_fs_access_rights[] = {
> > - (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> > - (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> > - (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> > + (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> > + (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v4: TCP support */ Double "LANDLOCK_ACCESS_FS_TRUNCATE << 1", I think its a mistype here.
> > };
> > \&
> > int abi = landlock_create_ruleset(NULL, 0,
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-08-06 10:19 ` Alejandro Colomar
@ 2024-08-06 10:34 ` Konstantin Meskhidze (A)
2024-08-08 9:28 ` Günther Noack
0 siblings, 1 reply; 29+ messages in thread
From: Konstantin Meskhidze (A) @ 2024-08-06 10:34 UTC (permalink / raw)
To: Alejandro Colomar
Cc: Günther Noack, Mickaël Salaün, linux-man,
Artem Kuzin, yusongping
8/6/2024 1:19 PM, Alejandro Colomar пишет:
> Hi Konstantin,
>
> You didn't write anything in this message, right? Was it an accident?
Sorry. I wrote a message but did it on the same line with the patch
code. Here below I rewrite it.
>
> Have a lovely day!
> Alex
>
> On Tue, Aug 06, 2024 at 11:38:57AM GMT, Konstantin Meskhidze (A) wrote:
>>
>>
>> 7/23/2024 1:19 PM, Günther Noack пишет:
>> > Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers.
>> >
>> > The intent is to bring the man pages mostly in line with the kernel
>> > documentation again. I intentionally did not add networking support to the
>> > usage example in landlock.7 - I feel that in the long run, we would be better
>> > advised to maintain longer example code in the kernel samples.
>> >
>> > Closes: <https://github.com/landlock-lsm/linux/issues/32>
>> > Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
>> > Reviewed-by: Mickaël Salaün <mic@digikod.net>
>> > Signed-off-by: Günther Noack <gnoack@google.com>
>> > ---
>> > man/man2/landlock_add_rule.2 | 74 ++++++++++++++++++++++++++----
>> > man/man2/landlock_create_ruleset.2 | 12 ++++-
>> > man/man7/landlock.7 | 23 ++++++++--
>> > 3 files changed, 94 insertions(+), 15 deletions(-)
>> >
>> > diff --git a/man/man2/landlock_add_rule.2 b/man/man2/landlock_add_rule.2
>> > index 7a83bb303..489e9c354 100644
>> > --- a/man/man2/landlock_add_rule.2
>> > +++ b/man/man2/landlock_add_rule.2
>> > @@ -20,15 +20,14 @@ Standard C library
>> > .BI " const void *" rule_attr ", uint32_t " flags );
>> > .fi
>> > .SH DESCRIPTION
>> > -A Landlock rule describes an action on an object.
>> > -An object is currently a file hierarchy,
>> > -and the related filesystem actions
>> > -are defined with a set of access rights.
>> > -This
>> > +A Landlock rule describes an action on an object
>> > +which the process intends to perform.
>> > +A set of rules is aggregated in a ruleset,
>> > +which can then restrict the thread enforcing it, and its future children.
>> > +.P
>> > +The
>> > .BR landlock_add_rule ()
>> > -system call enables adding a new Landlock rule to an existing ruleset
>> > -created with
>> > -.BR landlock_create_ruleset (2).
>> > +system call adds a new Landlock rule to an existing ruleset.
>> > See
>> > .BR landlock (7)
>> > for a global overview.
>> > @@ -42,10 +41,15 @@ identifies the structure type pointed to by
>> > .IR rule_attr .
>> > Currently, Linux supports the following
>> > .I rule_type
>> > -value:
>> > +values:
>> > .TP
>> > .B LANDLOCK_RULE_PATH_BENEATH
>> > -This defines the object type as a file hierarchy.
>> > +For these rules,
>> > +the object is a file hierarchy,
>> > +and the related filesystem actions
>> > +are defined with
>> > +.IR "filesystem access rights" .
>> > +.IP
>> > In this case,
>> > .I rule_attr
>> > points to the following structure:
>> > @@ -74,6 +78,45 @@ is an opened file descriptor, preferably with the
>> > flag,
>> > which identifies the parent directory of the file hierarchy or
>> > just a file.
>> > +.TP
>> > +.B LANDLOCK_RULE_NET_PORT
>> > +For these rules,
>> > +the object is a TCP port,
>> > +and the related actions are defined with
>> > +.IR "network access rights" .
>> > +.IP
>> > +In this case,
>> > +.I rule_attr
>> > +points to the following structure:
>> > +.IP
>> > +.in +4n
>> > +.EX
>> > +struct landlock_net_port_attr {
>> > + __u64 allowed_access;
>> > + __u64 port;
>> > +};
>> > +.EE
>> > +.in
>> > +.IP
>> > +.i allowed_access
>> > +contains a bitmask of allowed network actions,
>> > +which can be applied on the given port.
>> > +.IP
>> > +.i port
>> > +is the network port in host endianness.
>> > +.IP
>> > +It should be noted that port 0 passed to
>> > +.BR bind (2)
>> > +will bind to an available port from the ephemeral port range.
>> > +This can be configured in the
>> > +.I /proc/sys/net/ipv4/ip_local_port_range
>> > +sysctl (also used for IPv6).
>> > +.IP
>> > +A Landlock rule with port 0
>> > +and the
>> > +.B LANDLOCK_ACCESS_NET_BIND_TCP
>> > +right means that requesting to bind on port 0 is allowed
>> > +and it will automatically translate to binding on the related port range.
>> > .P
>> > .I flags
>> > must be 0.
>> > @@ -89,6 +132,12 @@ is set to indicate the error.
>> > .BR landlock_add_rule ()
>> > can fail for the following reasons:
>> > .TP
>> > +.B EAFNOSUPPORT
>> > +.I rule_type
>> > +is
>> > +.BR LANDLOCK_RULE_NET_PORT ,
>> > +but TCP is not supported by the running kernel.
>> > +.TP
>> > .B EOPNOTSUPP
>> > Landlock is supported by the kernel but disabled at boot time.
>> > .TP
>> > @@ -111,6 +160,11 @@ are only applicable to directories, but
>> > .I \%rule_attr\->parent_fd
>> > does not refer to a directory).
>> > .TP
>> > +.B EINVAL
>> > +In
>> > +.IR \%struct\~landlock_net_port_attr ,
>> > +the port number is greater than 65535.
>> > +.TP
>> > .B ENOMSG
>> > Empty accesses (i.e.,
>> > .I rule_attr\->allowed_access
>> > diff --git a/man/man2/landlock_create_ruleset.2 b/man/man2/landlock_create_ruleset.2
>> > index 105e9b062..ca635ddbc 100644
>> > --- a/man/man2/landlock_create_ruleset.2
>> > +++ b/man/man2/landlock_create_ruleset.2
>> > @@ -41,6 +41,7 @@ It points to the following structure:
>> > .EX
>> > struct landlock_ruleset_attr {
>> > __u64 handled_access_fs;
>> > + __u64 handled_access_net;
>> > };
>> > .EE
>> > .in
>> > @@ -52,6 +53,13 @@ is a bitmask of handled filesystem actions
>> > in
>> > .BR landlock (7)).
>> > .IP
>> > +.I handled_access_net
>> > +is a bitmask of handled network actions
>> > +(see
>> > +.B Network actions
>> > +in
>> > +.BR landlock (7)).
>> > +.IP
>> > This structure defines a set of
>> > .IR "handled access rights" ,
>> > a set of actions on different object types,
>> > @@ -143,8 +151,8 @@ was not a valid address.
>> > .TP
>> > .B ENOMSG
>> > Empty accesses (i.e.,
>> > -.I attr\->handled_access_fs
>> > -is 0).
>> > +.I attr
>> > +did not specify any access rights to restrict).
>> > .SH STANDARDS
>> > Linux.
>> > .SH HISTORY
>> > diff --git a/man/man7/landlock.7 b/man/man7/landlock.7
>> > index 652054f15..52876a3de 100644
>> > --- a/man/man7/landlock.7
>> > +++ b/man/man7/landlock.7
>> > @@ -189,6 +189,19 @@ If multiple requirements are not met, the
>> > error code takes precedence over
>> > .BR EXDEV .
>> > .\"
>> > +.SS Network flags
>> > +These flags enable to restrict a sandboxed process
>> > +to a set of network actions.
>> > +This is supported since the Landlock ABI version 4.
>> > +.P
>> > +The following access rights apply to TCP port numbers:
>> > +.TP
>> > +.B LANDLOCK_ACCESS_NET_BIND_TCP
>> > +Bind a TCP socket to a local port.
>> > +.TP
>> > +.B LANDLOCK_ACCESS_NET_CONNECT_TCP
>> > +Connect an active TCP socket to a remote port.
>> > +.\"
>> > .SS Layers of file path access rights
>> > Each time a thread enforces a ruleset on itself,
>> > it updates its Landlock domain with a new layer of policy.
>> > @@ -339,6 +352,9 @@ _ _ _
>> > 2 5.19 LANDLOCK_ACCESS_FS_REFER
>> > _ _ _
>> > 3 6.2 LANDLOCK_ACCESS_FS_TRUNCATE
>> > +_ _ _
>> > +4 6.7 LANDLOCK_ACCESS_NET_BIND_TCP
>> > +\^ \^ LANDLOCK_ACCESS_NET_CONNECT_TCP
>> > .TE
>> > .P
>> > Users should use the Landlock ABI version rather than the kernel version
>> > @@ -439,9 +455,10 @@ and only use the available subset of access rights:
>> > * numbers hardcoded to keep the example short.
>> > */
>> > __u64 landlock_fs_access_rights[] = {
>> > - (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
>> > - (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
>> > - (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
>> > + (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
>> > + (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
>> > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
>> > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v4: TCP support */ Double "LANDLOCK_ACCESS_FS_TRUNCATE << 1", I think its a mistype here.
Double "LANDLOCK_ACCESS_FS_TRUNCATE << 1", I think its a mistype here
or its ok??
>> > };
>> > \&
>> > int abi = landlock_create_ruleset(NULL, 0,
>
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-08-06 10:34 ` Konstantin Meskhidze (A)
@ 2024-08-08 9:28 ` Günther Noack
0 siblings, 0 replies; 29+ messages in thread
From: Günther Noack @ 2024-08-08 9:28 UTC (permalink / raw)
To: Konstantin Meskhidze (A)
Cc: Alejandro Colomar, Mickaël Salaün, linux-man,
Artem Kuzin, yusongping
Hello Konstantin!
On Tue, Aug 06, 2024 at 01:34:01PM +0300, Konstantin Meskhidze (A) wrote:
> 8/6/2024 1:19 PM, Alejandro Colomar пишет:
> > On Tue, Aug 06, 2024 at 11:38:57AM GMT, Konstantin Meskhidze (A) wrote:
> > > 7/23/2024 1:19 PM, Günther Noack пишет:
> > > > Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers.
> > > > > The intent is to bring the man pages mostly in line with the
> > > kernel
> > > > documentation again. I intentionally did not add networking support to the
> > > > usage example in landlock.7 - I feel that in the long run, we would be better
> > > > advised to maintain longer example code in the kernel samples.
> > > > > Closes: <https://github.com/landlock-lsm/linux/issues/32>
> > > > Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
> > > > Reviewed-by: Mickaël Salaün <mic@digikod.net>
> > > > Signed-off-by: Günther Noack <gnoack@google.com>
> > > > @@ -439,9 +455,10 @@ and only use the available subset of access rights:
> > > > * numbers hardcoded to keep the example short.
> > > > */
> > > > __u64 landlock_fs_access_rights[] = {
> > > > - (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> > > > - (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> > > > - (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> > > > + (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> > > > + (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> > > > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> > > > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v4: TCP support */ Double "LANDLOCK_ACCESS_FS_TRUNCATE << 1", I think its a mistype here.
> Double "LANDLOCK_ACCESS_FS_TRUNCATE << 1", I think its a mistype here or
> its ok??
No, this is intentionally the same as on the previous line.
This table is part of the example code in the landlock(7) man page. As I
mentioned in the commit message, the example code is (intentionally) still only
using Landlock's file system features, not the network access rights.
The table lists the file system(!) access rights which are available at
different Landlock ABI versions, but those did not change between v3 and v4.
—Günther
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-07-23 10:19 ` [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4 Günther Noack
2024-07-23 13:03 ` Alejandro Colomar
2024-08-06 8:38 ` Konstantin Meskhidze (A)
@ 2024-08-21 15:30 ` Konstantin Meskhidze (A)
2024-08-21 16:37 ` Günther Noack
2024-08-21 21:54 ` Alejandro Colomar
2 siblings, 2 replies; 29+ messages in thread
From: Konstantin Meskhidze (A) @ 2024-08-21 15:30 UTC (permalink / raw)
To: Günther Noack, Alejandro Colomar
Cc: Mickaël Salaün, linux-man, Artem Kuzin
7/23/2024 1:19 PM, Günther Noack wrote:
> Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers.
>
> The intent is to bring the man pages mostly in line with the kernel
> documentation again. I intentionally did not add networking support to the
> usage example in landlock.7 - I feel that in the long run, we would be better
> advised to maintain longer example code in the kernel samples.
>
> Closes: <https://github.com/landlock-lsm/linux/issues/32>
> Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
> Reviewed-by: Mickaël Salaün <mic@digikod.net>
> Signed-off-by: Günther Noack <gnoack@google.com>
> ---
> man/man2/landlock_add_rule.2 | 74 ++++++++++++++++++++++++++----
> man/man2/landlock_create_ruleset.2 | 12 ++++-
> man/man7/landlock.7 | 23 ++++++++--
> 3 files changed, 94 insertions(+), 15 deletions(-)
>
> diff --git a/man/man2/landlock_add_rule.2 b/man/man2/landlock_add_rule.2
> index 7a83bb303..489e9c354 100644
> --- a/man/man2/landlock_add_rule.2
> +++ b/man/man2/landlock_add_rule.2
> @@ -20,15 +20,14 @@ Standard C library
> .BI " const void *" rule_attr ", uint32_t " flags );
> .fi
> .SH DESCRIPTION
> -A Landlock rule describes an action on an object.
> -An object is currently a file hierarchy,
> -and the related filesystem actions
> -are defined with a set of access rights.
> -This
> +A Landlock rule describes an action on an object
> +which the process intends to perform.
> +A set of rules is aggregated in a ruleset,
> +which can then restrict the thread enforcing it, and its future children.
> +.P
> +The
> .BR landlock_add_rule ()
> -system call enables adding a new Landlock rule to an existing ruleset
> -created with
> -.BR landlock_create_ruleset (2).
> +system call adds a new Landlock rule to an existing ruleset.
> See
> .BR landlock (7)
> for a global overview.
> @@ -42,10 +41,15 @@ identifies the structure type pointed to by
> .IR rule_attr .
> Currently, Linux supports the following
> .I rule_type
> -value:
> +values:
> .TP
> .B LANDLOCK_RULE_PATH_BENEATH
> -This defines the object type as a file hierarchy.
> +For these rules,
> +the object is a file hierarchy,
> +and the related filesystem actions
> +are defined with
> +.IR "filesystem access rights" .
> +.IP
> In this case,
> .I rule_attr
> points to the following structure:
> @@ -74,6 +78,45 @@ is an opened file descriptor, preferably with the
> flag,
> which identifies the parent directory of the file hierarchy or
> just a file.
> +.TP
> +.B LANDLOCK_RULE_NET_PORT
> +For these rules,
> +the object is a TCP port,
> +and the related actions are defined with
> +.IR "network access rights" .
> +.IP
> +In this case,
> +.I rule_attr
> +points to the following structure:
> +.IP
> +.in +4n
> +.EX
> +struct landlock_net_port_attr {
> + __u64 allowed_access;
> + __u64 port;
> +};
> +.EE
> +.in
> +.IP
> +.i allowed_access
> +contains a bitmask of allowed network actions,
> +which can be applied on the given port.
> +.IP
> +.i port
> +is the network port in host endianness.
> +.IP
> +It should be noted that port 0 passed to
> +.BR bind (2)
> +will bind to an available port from the ephemeral port range.
> +This can be configured in the
> +.I /proc/sys/net/ipv4/ip_local_port_range
> +sysctl (also used for IPv6).
> +.IP
> +A Landlock rule with port 0
> +and the
> +.B LANDLOCK_ACCESS_NET_BIND_TCP
> +right means that requesting to bind on port 0 is allowed
> +and it will automatically translate to binding on the related port range.
> .P
> .I flags
> must be 0.
> @@ -89,6 +132,12 @@ is set to indicate the error.
> .BR landlock_add_rule ()
> can fail for the following reasons:
> .TP
> +.B EAFNOSUPPORT
> +.I rule_type
> +is
> +.BR LANDLOCK_RULE_NET_PORT ,
> +but TCP is not supported by the running kernel.
> +.TP
> .B EOPNOTSUPP
> Landlock is supported by the kernel but disabled at boot time.
> .TP
> @@ -111,6 +160,11 @@ are only applicable to directories, but
> .I \%rule_attr\->parent_fd
> does not refer to a directory).
> .TP
> +.B EINVAL
> +In
> +.IR \%struct\~landlock_net_port_attr ,
> +the port number is greater than 65535.
> +.TP
> .B ENOMSG
> Empty accesses (i.e.,
> .I rule_attr\->allowed_access
> diff --git a/man/man2/landlock_create_ruleset.2 b/man/man2/landlock_create_ruleset.2
> index 105e9b062..ca635ddbc 100644
> --- a/man/man2/landlock_create_ruleset.2
> +++ b/man/man2/landlock_create_ruleset.2
> @@ -41,6 +41,7 @@ It points to the following structure:
> .EX
> struct landlock_ruleset_attr {
> __u64 handled_access_fs;
> + __u64 handled_access_net;
> };
> .EE
> .in
> @@ -52,6 +53,13 @@ is a bitmask of handled filesystem actions
> in
> .BR landlock (7)).
> .IP
> +.I handled_access_net
> +is a bitmask of handled network actions
> +(see
> +.B Network actions
> +in
> +.BR landlock (7)).
> +.IP
> This structure defines a set of
> .IR "handled access rights" ,
> a set of actions on different object types,
> @@ -143,8 +151,8 @@ was not a valid address.
> .TP
> .B ENOMSG
> Empty accesses (i.e.,
> -.I attr\->handled_access_fs
> -is 0).
> +.I attr
> +did not specify any access rights to restrict).
> .SH STANDARDS
> Linux.
> .SH HISTORY
> diff --git a/man/man7/landlock.7 b/man/man7/landlock.7
> index 652054f15..52876a3de 100644
> --- a/man/man7/landlock.7
> +++ b/man/man7/landlock.7
> @@ -189,6 +189,19 @@ If multiple requirements are not met, the
> error code takes precedence over
> .BR EXDEV .
> .\"
> +.SS Network flags
> +These flags enable to restrict a sandboxed process
> +to a set of network actions.
> +This is supported since the Landlock ABI version 4.
> +.P
> +The following access rights apply to TCP port numbers:
> +.TP
> +.B LANDLOCK_ACCESS_NET_BIND_TCP
> +Bind a TCP socket to a local port.
> +.TP
> +.B LANDLOCK_ACCESS_NET_CONNECT_TCP
> +Connect an active TCP socket to a remote port.
> +.\"
> .SS Layers of file path access rights
> Each time a thread enforces a ruleset on itself,
> it updates its Landlock domain with a new layer of policy.
> @@ -339,6 +352,9 @@ _ _ _
> 2 5.19 LANDLOCK_ACCESS_FS_REFER
> _ _ _
> 3 6.2 LANDLOCK_ACCESS_FS_TRUNCATE
> +_ _ _
> +4 6.7 LANDLOCK_ACCESS_NET_BIND_TCP
> +\^ \^ LANDLOCK_ACCESS_NET_CONNECT_TCP
> .TE
> .P
> Users should use the Landlock ABI version rather than the kernel version
> @@ -439,9 +455,10 @@ and only use the available subset of access rights:
> * numbers hardcoded to keep the example short.
> */
> __u64 landlock_fs_access_rights[] = {
> - (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> - (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> - (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> + (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> + (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v4: TCP support */
> };
> \&
> int abi = landlock_create_ruleset(NULL, 0,
Co-developed-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
Signed-off-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-08-21 15:30 ` Konstantin Meskhidze (A)
@ 2024-08-21 16:37 ` Günther Noack
2024-08-22 8:46 ` Konstantin Meskhidze (A)
2024-08-21 21:54 ` Alejandro Colomar
1 sibling, 1 reply; 29+ messages in thread
From: Günther Noack @ 2024-08-21 16:37 UTC (permalink / raw)
To: Konstantin Meskhidze (A)
Cc: Alejandro Colomar, Mickaël Salaün, linux-man,
Artem Kuzin
On Wed, Aug 21, 2024 at 06:30:09PM +0300, Konstantin Meskhidze (A) wrote:
> 7/23/2024 1:19 PM, Günther Noack wrote:
> > [...]
> >
> > Users should use the Landlock ABI version rather than the kernel version
> > @@ -439,9 +455,10 @@ and only use the available subset of access rights:
> > * numbers hardcoded to keep the example short.
> > */
> > __u64 landlock_fs_access_rights[] = {
> > - (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> > - (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> > - (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> > + (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
> > + (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
> > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
> > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v4: TCP support */
> > };
> > \&
> > int abi = landlock_create_ruleset(NULL, 0,
>
> Co-developed-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
> Signed-off-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
Thank you very much, Konstantin! :)
—Günther
^ permalink raw reply [flat|nested] 29+ messages in thread* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-08-21 16:37 ` Günther Noack
@ 2024-08-22 8:46 ` Konstantin Meskhidze (A)
0 siblings, 0 replies; 29+ messages in thread
From: Konstantin Meskhidze (A) @ 2024-08-22 8:46 UTC (permalink / raw)
To: Günther Noack
Cc: Alejandro Colomar, Mickaël Salaün, linux-man,
Artem Kuzin
8/21/2024 7:37 PM, Günther Noack wrote:
> On Wed, Aug 21, 2024 at 06:30:09PM +0300, Konstantin Meskhidze (A) wrote:
>> 7/23/2024 1:19 PM, Günther Noack wrote:
>> > [...]
>> >
>> > Users should use the Landlock ABI version rather than the kernel version
>> > @@ -439,9 +455,10 @@ and only use the available subset of access rights:
>> > * numbers hardcoded to keep the example short.
>> > */
>> > __u64 landlock_fs_access_rights[] = {
>> > - (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
>> > - (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
>> > - (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
>> > + (LANDLOCK_ACCESS_FS_MAKE_SYM << 1) \- 1, /* v1 */
>> > + (LANDLOCK_ACCESS_FS_REFER << 1) \- 1, /* v2: add "refer" */
>> > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v3: add "truncate" */
>> > + (LANDLOCK_ACCESS_FS_TRUNCATE << 1) \- 1, /* v4: TCP support */
>> > };
>> > \&
>> > int abi = landlock_create_ruleset(NULL, 0,
>>
>> Co-developed-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
>> Signed-off-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
>
> Thank you very much, Konstantin! :)
>
> —Günther
Thank you, Günther!!! :)
Best regards,
Konstantin!
> .
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-08-21 15:30 ` Konstantin Meskhidze (A)
2024-08-21 16:37 ` Günther Noack
@ 2024-08-21 21:54 ` Alejandro Colomar
2024-08-22 8:47 ` Konstantin Meskhidze (A)
1 sibling, 1 reply; 29+ messages in thread
From: Alejandro Colomar @ 2024-08-21 21:54 UTC (permalink / raw)
To: Konstantin Meskhidze (A)
Cc: Günther Noack, Mickaël Salaün, linux-man,
Artem Kuzin
[-- Attachment #1: Type: text/plain, Size: 1076 bytes --]
Hi Günther, Konstantin,
On Wed, Aug 21, 2024 at 06:30:09PM GMT, Konstantin Meskhidze (A) wrote:
> 7/23/2024 1:19 PM, Günther Noack wrote:
> > Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers.
> >
> > The intent is to bring the man pages mostly in line with the kernel
> > documentation again. I intentionally did not add networking support to the
> > usage example in landlock.7 - I feel that in the long run, we would be better
> > advised to maintain longer example code in the kernel samples.
> >
> > Closes: <https://github.com/landlock-lsm/linux/issues/32>
> > Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
> > Reviewed-by: Mickaël Salaün <mic@digikod.net>
> > Signed-off-by: Günther Noack <gnoack@google.com>
> > ---
>
> Co-developed-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
> Signed-off-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
I've appended the tags, and pushed the changes to master. Thanks!
Have a lovely night!
Alex
--
<https://www.alejandro-colomar.es/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v3 1/2] landlock.7, landlock_*.2: Document Landlock ABI version 4
2024-08-21 21:54 ` Alejandro Colomar
@ 2024-08-22 8:47 ` Konstantin Meskhidze (A)
0 siblings, 0 replies; 29+ messages in thread
From: Konstantin Meskhidze (A) @ 2024-08-22 8:47 UTC (permalink / raw)
To: Alejandro Colomar
Cc: Günther Noack, Mickaël Salaün, linux-man,
Artem Kuzin
8/22/2024 12:54 AM, Alejandro Colomar wrote:
> Hi Günther, Konstantin,
>
> On Wed, Aug 21, 2024 at 06:30:09PM GMT, Konstantin Meskhidze (A) wrote:
>> 7/23/2024 1:19 PM, Günther Noack wrote:
>> > Landlock ABI 4 restricts bind(2) and connect(2) on TCP port numbers.
>> >
>> > The intent is to bring the man pages mostly in line with the kernel
>> > documentation again. I intentionally did not add networking support to the
>> > usage example in landlock.7 - I feel that in the long run, we would be better
>> > advised to maintain longer example code in the kernel samples.
>> >
>> > Closes: <https://github.com/landlock-lsm/linux/issues/32>
>> > Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
>> > Reviewed-by: Mickaël Salaün <mic@digikod.net>
>> > Signed-off-by: Günther Noack <gnoack@google.com>
>> > ---
>>
>> Co-developed-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
>> Signed-off-by: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
>
> I've appended the tags, and pushed the changes to master. Thanks!
>
> Have a lovely night!
> Alex
Thank you, Alex!!! :)
Best regards,
Konstantin
>
^ permalink raw reply [flat|nested] 29+ messages in thread