summaryrefslogtreecommitdiffstats
path: root/templates/man7/landlock.7.pot
blob: db7c1366c6ae4db0408d210d1dd6dc01283aea46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
# SOME DESCRIPTIVE TITLE
# Copyright (C) YEAR Free Software Foundation, Inc.
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2024-06-01 05:59+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. type: TH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Landlock"
msgstr ""

#. type: TH
#: archlinux debian-unstable opensuse-tumbleweed
#, no-wrap
msgid "2024-05-02"
msgstr ""

#. type: TH
#: archlinux debian-unstable
#, no-wrap
msgid "Linux man-pages 6.8"
msgstr ""

#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "NAME"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Landlock - unprivileged access-control"
msgstr ""

#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "DESCRIPTION"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Landlock is an access-control system that enables any processes to securely "
"restrict themselves and their future children.  Because Landlock is a "
"stackable Linux Security Module (LSM), it makes it possible to create safe "
"security sandboxes as new security layers in addition to the existing system-"
"wide access-controls.  This kind of sandbox is expected to help mitigate the "
"security impact of bugs, and unexpected or malicious behaviors in "
"applications."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A Landlock security policy is a set of access rights (e.g., open a file in "
"read-only, make a directory, etc.)  tied to a file hierarchy.  Such policy "
"can be configured and enforced by processes for themselves using three "
"system calls:"
msgstr ""

#. type: IP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "\\[bu]"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "B<landlock_create_ruleset>(2)  creates a new ruleset;"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "B<landlock_add_rule>(2)  adds a new rule to a ruleset;"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "B<landlock_restrict_self>(2)  enforces a ruleset on the calling thread."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"To be able to use these system calls, the running kernel must support "
"Landlock and it must be enabled at boot time."
msgstr ""

#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Landlock rules"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A Landlock rule describes an action on an object.  An object is currently a "
"file hierarchy, and the related filesystem actions are defined with access "
"rights (see B<landlock_add_rule>(2)).  A set of rules is aggregated in a "
"ruleset, which can then restrict the thread enforcing it, and its future "
"children."
msgstr ""

#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Filesystem actions"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"These flags enable to restrict a sandboxed process to a set of actions on "
"files and directories.  Files or directories opened before the sandboxing "
"are not subject to these restrictions.  See B<landlock_add_rule>(2)  and "
"B<landlock_create_ruleset>(2)  for more context."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "A file can only receive these access rights:"
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_EXECUTE>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Execute a file."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_WRITE_FILE>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Open a file with write access."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"When opening files for writing, you will often additionally need the "
"B<LANDLOCK_ACCESS_FS_TRUNCATE> right.  In many cases, these system calls "
"truncate existing files when overwriting them (e.g., B<creat>(2))."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_READ_FILE>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Open a file with read access."
msgstr ""

#. type: TP
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_TRUNCATE>"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Truncate a file with B<truncate>(2), B<ftruncate>(2), B<creat>(2), or "
"B<open>(2)  with B<O_TRUNC>.  Whether an opened file can be truncated with "
"B<ftruncate>(2)  is determined during B<open>(2), in the same way as read "
"and write permissions are checked during B<open>(2)  using "
"B<LANDLOCK_ACCESS_FS_READ_FILE> and B<LANDLOCK_ACCESS_FS_WRITE_FILE>.  This "
"access right is available since the third version of the Landlock ABI."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A directory can receive access rights related to files or directories.  The "
"following access right is applied to the directory itself, and the "
"directories beneath it:"
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_READ_DIR>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Open a directory or list its content."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"However, the following access rights only apply to the content of a "
"directory, not the directory itself:"
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_REMOVE_DIR>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Remove an empty directory or rename one."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_REMOVE_FILE>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Unlink (or rename) a file."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_MAKE_CHAR>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Create (or rename or link) a character device."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_MAKE_DIR>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Create (or rename) a directory."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_MAKE_REG>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Create (or rename or link) a regular file."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_MAKE_SOCK>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Create (or rename or link) a UNIX domain socket."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_MAKE_FIFO>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Create (or rename or link) a named pipe."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_MAKE_BLOCK>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Create (or rename or link) a block device."
msgstr ""

#. type: TP
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_MAKE_SYM>"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "Create (or rename or link) a symbolic link."
msgstr ""

#. type: TP
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "B<LANDLOCK_ACCESS_FS_REFER>"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Link or rename a file from or to a different directory (i.e., reparent a "
"file hierarchy)."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This access right is available since the second version of the Landlock ABI."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"This is the only access right which is denied by default by any ruleset, "
"even if the right is not specified as handled at ruleset creation time.  The "
"only way to make a ruleset grant this right is to explicitly allow it for a "
"specific directory by adding a matching rule to the ruleset."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"In particular, when using the first Landlock ABI version, Landlock will "
"always deny attempts to reparent files between different directories."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"In addition to the source and destination directories having the "
"B<LANDLOCK_ACCESS_FS_REFER> access right, the attempted link or rename "
"operation must meet the following constraints:"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The reparented file may not gain more access rights in the destination "
"directory than it previously had in the source directory.  If this is "
"attempted, the operation results in an B<EXDEV> error."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"When linking or renaming, the B<LANDLOCK_ACCESS_FS_MAKE_>I<*> right for the "
"respective file type must be granted for the destination directory.  "
"Otherwise, the operation results in an B<EACCES> error."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"When renaming, the B<LANDLOCK_ACCESS_FS_REMOVE_>I<*> right for the "
"respective file type must be granted for the source directory.  Otherwise, "
"the operation results in an B<EACCES> error."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If multiple requirements are not met, the B<EACCES> error code takes "
"precedence over B<EXDEV>."
msgstr ""

#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Layers of file path access rights"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Each time a thread enforces a ruleset on itself, it updates its Landlock "
"domain with a new layer of policy.  Indeed, this complementary policy is "
"composed with the potentially other rulesets already restricting this "
"thread.  A sandboxed thread can then safely add more constraints to itself "
"with a new enforced ruleset."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"One policy layer grants access to a file path if at least one of its rules "
"encountered on the path grants the access.  A sandboxed thread can only "
"access a file path if all its enforced policy layers grant the access as "
"well as all the other system access controls (e.g., filesystem DAC, other "
"LSM policies, etc.)."
msgstr ""

#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Bind mounts and OverlayFS"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Landlock enables restricting access to file hierarchies, which means that "
"these access rights can be propagated with bind mounts (cf.  "
"B<mount_namespaces>(7))  but not with OverlayFS."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A bind mount mirrors a source file hierarchy to a destination.  The "
"destination hierarchy is then composed of the exact same files, on which "
"Landlock rules can be tied, either via the source or the destination path.  "
"These rules restrict access when they are encountered on a path, which means "
"that they can restrict access to multiple file hierarchies at the same time, "
"whether these hierarchies are the result of bind mounts or not."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"An OverlayFS mount point consists of upper and lower layers.  These layers "
"are combined in a merge directory, result of the mount point.  This merge "
"hierarchy may include files from the upper and lower layers, but "
"modifications performed on the merge hierarchy only reflect on the upper "
"layer.  From a Landlock policy point of view, each of the OverlayFS layers "
"and merge hierarchies is standalone and contains its own set of files and "
"directories, which is different from a bind mount.  A policy restricting an "
"OverlayFS layer will not restrict the resulted merged hierarchy, and vice "
"versa.  Landlock users should then only think about file hierarchies they "
"want to allow access to, regardless of the underlying filesystem."
msgstr ""

#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Inheritance"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Every new thread resulting from a B<clone>(2)  inherits Landlock domain "
"restrictions from its parent.  This is similar to the B<seccomp>(2)  "
"inheritance or any other LSM dealing with tasks' B<credentials>(7).  For "
"instance, one process's thread may apply Landlock rules to itself, but they "
"will not be automatically applied to other sibling threads (unlike POSIX "
"thread credential changes, cf.  B<nptl>(7))."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"When a thread sandboxes itself, we have the guarantee that the related "
"security policy will stay enforced on all this thread's descendants.  This "
"allows creating standalone and modular security policies per application, "
"which will automatically be composed between themselves according to their "
"run-time parent policies."
msgstr ""

#. type: SS
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Ptrace restrictions"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A sandboxed process has less privileges than a non-sandboxed process and "
"must then be subject to additional restrictions when manipulating another "
"process.  To be allowed to use B<ptrace>(2)  and related syscalls on a "
"target process, a sandboxed process should have a subset of the target "
"process rules, which means the tracee must be in a sub-domain of the tracer."
msgstr ""

#. type: SS
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Truncating files"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"The operations covered by B<LANDLOCK_ACCESS_FS_WRITE_FILE> and "
"B<LANDLOCK_ACCESS_FS_TRUNCATE> both change the contents of a file and "
"sometimes overlap in non-intuitive ways.  It is recommended to always "
"specify both of these together."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"A particularly surprising example is B<creat>(2).  The name suggests that "
"this system call requires the rights to create and write files.  However, it "
"also requires the truncate right if an existing file under the same name is "
"already present."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"It should also be noted that truncating files does not require the "
"B<LANDLOCK_ACCESS_FS_WRITE_FILE> right.  Apart from the B<truncate>(2)  "
"system call, this can also be done through B<open>(2)  with the flags "
"I<O_RDONLY\\ |\\ O_TRUNC>."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"When opening a file, the availability of the B<LANDLOCK_ACCESS_FS_TRUNCATE> "
"right is associated with the newly created file descriptor and will be used "
"for subsequent truncation attempts using B<ftruncate>(2).  The behavior is "
"similar to opening a file for reading or writing, where permissions are "
"checked during B<open>(2), but not during the subsequent B<read>(2)  and "
"B<write>(2)  calls."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"As a consequence, it is possible to have multiple open file descriptors for "
"the same file, where one grants the right to truncate the file and the other "
"does not.  It is also possible to pass such file descriptors between "
"processes, keeping their Landlock properties, even when these processes do "
"not have an enforced Landlock ruleset."
msgstr ""

#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "VERSIONS"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid "Landlock was introduced in Linux 5.13."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"To determine which Landlock features are available, users should query the "
"Landlock ABI version:"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "ABI"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Kernel"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "Newly introduced access rights"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "_"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "1"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "5.13"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_EXECUTE"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "\\^"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_WRITE_FILE"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_READ_FILE"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_READ_DIR"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_REMOVE_DIR"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_REMOVE_FILE"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_MAKE_CHAR"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_MAKE_DIR"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_MAKE_REG"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_MAKE_SOCK"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_MAKE_FIFO"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_MAKE_BLOCK"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_MAKE_SYM"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "2"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "5.19"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_REFER"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "3"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "6.2"
msgstr ""

#. type: tbl table
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "LANDLOCK_ACCESS_FS_TRUNCATE"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Users should use the Landlock ABI version rather than the kernel version to "
"determine which features are available.  The mainline kernel versions listed "
"here are only included for orientation.  Kernels from other sources may "
"contain backported features, and their version numbers may not match."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"To query the running kernel's Landlock ABI version, programs may pass the "
"B<LANDLOCK_CREATE_RULESET_VERSION> flag to B<landlock_create_ruleset>(2)."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"When building fallback mechanisms for compatibility with older kernels, "
"users are advised to consider the special semantics of the "
"B<LANDLOCK_ACCESS_FS_REFER> access right: In ABI v1, linking and moving of "
"files between different directories is always forbidden, so programs relying "
"on such operations are only compatible with Landlock ABI v2 and higher."
msgstr ""

#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "NOTES"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Landlock is enabled by B<CONFIG_SECURITY_LANDLOCK>.  The I<lsm=lsm1,...,"
"lsmN> command line parameter controls the sequence of the initialization of "
"Linux Security Modules.  It must contain the string I<landlock> to enable "
"Landlock.  If the command line parameter is not specified, the "
"initialization falls back to the value of the deprecated I<security=> "
"command line parameter and further to the value of B<CONFIG_LSM>.  We can "
"check that Landlock is enabled by looking for I<landlock: Up and running.> "
"in kernel logs."
msgstr ""

#. type: SH
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "CAVEATS"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"It is currently not possible to restrict some file-related actions "
"accessible through these system call families: B<chdir>(2), B<stat>(2), "
"B<flock>(2), B<chmod>(2), B<chown>(2), B<setxattr>(2), B<utime>(2), "
"B<ioctl>(2), B<fcntl>(2), B<access>(2).  Future Landlock evolutions will "
"enable to restrict them."
msgstr ""

#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "EXAMPLES"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid "We first need to create the ruleset that will contain our rules."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"For this example, the ruleset will contain rules that only allow read "
"actions, but write actions will be denied.  The ruleset then needs to handle "
"both of these kinds of actions.  See the B<DESCRIPTION> section for the "
"description of filesystem actions."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"struct landlock_ruleset_attr attr = {0};\n"
"int ruleset_fd;\n"
"\\&\n"
"attr.handled_access_fs =\n"
"        LANDLOCK_ACCESS_FS_EXECUTE |\n"
"        LANDLOCK_ACCESS_FS_WRITE_FILE |\n"
"        LANDLOCK_ACCESS_FS_READ_FILE |\n"
"        LANDLOCK_ACCESS_FS_READ_DIR |\n"
"        LANDLOCK_ACCESS_FS_REMOVE_DIR |\n"
"        LANDLOCK_ACCESS_FS_REMOVE_FILE |\n"
"        LANDLOCK_ACCESS_FS_MAKE_CHAR |\n"
"        LANDLOCK_ACCESS_FS_MAKE_DIR |\n"
"        LANDLOCK_ACCESS_FS_MAKE_REG |\n"
"        LANDLOCK_ACCESS_FS_MAKE_SOCK |\n"
"        LANDLOCK_ACCESS_FS_MAKE_FIFO |\n"
"        LANDLOCK_ACCESS_FS_MAKE_BLOCK |\n"
"        LANDLOCK_ACCESS_FS_MAKE_SYM |\n"
"        LANDLOCK_ACCESS_FS_REFER |\n"
"        LANDLOCK_ACCESS_FS_TRUNCATE;\n"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"To be compatible with older Linux versions, we detect the available Landlock "
"ABI version, and only use the available subset of access rights:"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"/*\n"
" * Table of available file system access rights by ABI version,\n"
" * numbers hardcoded to keep the example short.\n"
" */\n"
"__u64 landlock_fs_access_rights[] = {\n"
"    (LANDLOCK_ACCESS_FS_MAKE_SYM E<lt>E<lt> 1) - 1,  /* v1                 */\n"
"    (LANDLOCK_ACCESS_FS_REFER    E<lt>E<lt> 1) - 1,  /* v2: add \"refer\"    */\n"
"    (LANDLOCK_ACCESS_FS_TRUNCATE E<lt>E<lt> 1) - 1,  /* v3: add \"truncate\" */\n"
"};\n"
"\\&\n"
"int abi = landlock_create_ruleset(NULL, 0,\n"
"                                  LANDLOCK_CREATE_RULESET_VERSION);\n"
"if (abi == -1) {\n"
"    /*\n"
"     * Kernel too old, not compiled with Landlock,\n"
"     * or Landlock was not enabled at boot time.\n"
"     */\n"
"    perror(\"Unable to use Landlock\");\n"
"    return;  /* Graceful fallback: Do nothing. */\n"
"}\n"
"abi = MIN(abi, 3);\n"
"\\&\n"
"/* Only use the available rights in the ruleset. */\n"
"attr.handled_access_fs &= landlock_fs_access_rights[abi - 1];\n"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"The available access rights for each ABI version are listed in the "
"B<VERSIONS> section."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"If our program needed to create hard links or rename files between different "
"directories (B<LANDLOCK_ACCESS_FS_REFER>), we would require the following "
"change to the backwards compatibility logic: Directory reparenting is not "
"possible in a process restricted with Landlock ABI version 1.  Therefore, if "
"the program needed to do file reparenting, and if only Landlock ABI version "
"1 was available, we could not restrict the process."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"Now that the ruleset attributes are determined, we create the Landlock "
"ruleset and acquire a file descriptor as a handle to it, using "
"B<landlock_create_ruleset>(2):"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"ruleset_fd = landlock_create_ruleset(&attr, sizeof(attr), 0);\n"
"if (ruleset_fd == -1) {\n"
"    perror(\"Failed to create a ruleset\");\n"
"    exit(EXIT_FAILURE);\n"
"}\n"
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"We can now add a new rule to the ruleset through the ruleset's file "
"descriptor.  The requested access rights must be a subset of the access "
"rights which were specified in I<attr.handled_access_fs> at ruleset creation "
"time."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
msgid ""
"In this example, the rule will only allow reading the file hierarchy I</"
"usr>.  Without another rule, write actions would then be denied by the "
"ruleset.  To add I</usr> to the ruleset, we open it with the I<O_PATH> flag "
"and fill the I<struct landlock_path_beneath_attr> with this file descriptor."
msgstr ""

#. type: Plain text
#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
#: opensuse-tumbleweed
#, no-wrap
msgid ""
"struct landlock_path_beneath_attr path_beneath = {0};\n"
"int err;\n"
"\\&\n"
"path_beneath.allowed_access =\n"
"        LANDLOCK_ACCESS_FS_EXECUTE |\n"
"        LANDLOCK_ACCESS_FS_READ_FILE |\n"
"        LANDLOCK_ACCESS_FS_READ_DIR;\n"
"\\&\n"
"path_beneath.parent_fd = open(\"/usr\", O_PATH | O_CLOEXEC);\n"
"if (path_beneath.parent_fd == -1) {\n"
"    perror(\"Failed to open file\");\n"
"    close(ruleset_fd);\n"
"    exit(EXIT_FAILURE);\n"
"}\n"
"err = landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH,\n"
"                        &path_beneath, 0);\n"
"close(path_beneath.parent_fd);\n"
"if (err) {\n"
"    perror(\"Failed to update ruleset\");\n"
"    close(ruleset_fd);\n"
"    exit(EXIT_FAILURE);\n"
"}\n"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"We now have a ruleset with one rule allowing read access to I</usr> while "
"denying all other handled accesses for the filesystem.  The next step is to "
"restrict the current thread from gaining more privileges (e.g., thanks to a "
"set-user-ID binary)."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0)) {\n"
"    perror(\"Failed to restrict privileges\");\n"
"    close(ruleset_fd);\n"
"    exit(EXIT_FAILURE);\n"
"}\n"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "The current thread is now ready to sandbox itself with the ruleset."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid ""
"if (landlock_restrict_self(ruleset_fd, 0)) {\n"
"    perror(\"Failed to enforce ruleset\");\n"
"    close(ruleset_fd);\n"
"    exit(EXIT_FAILURE);\n"
"}\n"
"close(ruleset_fd);\n"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"If the B<landlock_restrict_self>(2)  system call succeeds, the current "
"thread is now restricted and this policy will be enforced on all its "
"subsequently created children as well.  Once a thread is landlocked, there "
"is no way to remove its security policy; only adding more restrictions is "
"allowed.  These threads are now in a new Landlock domain, merge of their "
"parent one (if any) with the new ruleset."
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"Full working code can be found in E<.UR https://git.kernel.org/\\:pub/\\:scm/"
"\\:linux/\\:kernel/\\:git/\\:stable/\\:linux.git/\\:tree/\\:samples/\\:"
"landlock/\\:sandboxer.c> E<.UE>"
msgstr ""

#. type: SH
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
#, no-wrap
msgid "SEE ALSO"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid ""
"B<landlock_create_ruleset>(2), B<landlock_add_rule>(2), "
"B<landlock_restrict_self>(2)"
msgstr ""

#. type: Plain text
#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
msgid "E<.UR https://landlock.io/> E<.UE>"
msgstr ""

#. type: TH
#: debian-bookworm
#, no-wrap
msgid "2023-02-05"
msgstr ""

#. type: TH
#: debian-bookworm
#, no-wrap
msgid "Linux man-pages 6.03"
msgstr ""

#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
msgid ""
"When a thread sandboxes itself, we have the guarantee that the related "
"security policy will stay enforced on all this thread's descendants.  This "
"allows creating standalone and modular security policies per application, "
"which will automatically be composed between themselves according to their "
"runtime parent policies."
msgstr ""

#. type: Plain text
#: debian-bookworm
msgid "Landlock was added in Linux 5.13."
msgstr ""

#. type: Plain text
#: debian-bookworm
msgid ""
"It is currently not possible to restrict some file-related actions "
"accessible through these system call families: B<chdir>(2), B<truncate>(2), "
"B<stat>(2), B<flock>(2), B<chmod>(2), B<chown>(2), B<setxattr>(2), "
"B<utime>(2), B<ioctl>(2), B<fcntl>(2), B<access>(2).  Future Landlock "
"evolutions will enable to restrict them."
msgstr ""

#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
msgid ""
"We first need to create the ruleset that will contain our rules.  For this "
"example, the ruleset will contain rules that only allow read actions, but "
"write actions will be denied.  The ruleset then needs to handle both of "
"these kinds of actions.  See below for the description of filesystem actions."
msgstr ""

#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"struct landlock_ruleset_attr attr = {0};\n"
"int ruleset_fd;\n"
msgstr ""

#. type: Plain text
#: debian-bookworm
#, no-wrap
msgid ""
"attr.handled_access_fs =\n"
"        LANDLOCK_ACCESS_FS_EXECUTE |\n"
"        LANDLOCK_ACCESS_FS_WRITE_FILE |\n"
"        LANDLOCK_ACCESS_FS_READ_FILE |\n"
"        LANDLOCK_ACCESS_FS_READ_DIR |\n"
"        LANDLOCK_ACCESS_FS_REMOVE_DIR |\n"
"        LANDLOCK_ACCESS_FS_REMOVE_FILE |\n"
"        LANDLOCK_ACCESS_FS_MAKE_CHAR |\n"
"        LANDLOCK_ACCESS_FS_MAKE_DIR |\n"
"        LANDLOCK_ACCESS_FS_MAKE_REG |\n"
"        LANDLOCK_ACCESS_FS_MAKE_SOCK |\n"
"        LANDLOCK_ACCESS_FS_MAKE_FIFO |\n"
"        LANDLOCK_ACCESS_FS_MAKE_BLOCK |\n"
"        LANDLOCK_ACCESS_FS_MAKE_SYM;\n"
msgstr ""

#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
msgid ""
"We can now add a new rule to this ruleset thanks to the returned file "
"descriptor referring to this ruleset.  The rule will only allow reading the "
"file hierarchy I</usr>.  Without another rule, write actions would then be "
"denied by the ruleset.  To add I</usr> to the ruleset, we open it with the "
"I<O_PATH> flag and fill the I<struct landlock_path_beneath_attr> with this "
"file descriptor."
msgstr ""

#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"struct landlock_path_beneath_attr path_beneath = {0};\n"
"int err;\n"
msgstr ""

#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"path_beneath.allowed_access =\n"
"        LANDLOCK_ACCESS_FS_EXECUTE |\n"
"        LANDLOCK_ACCESS_FS_READ_FILE |\n"
"        LANDLOCK_ACCESS_FS_READ_DIR;\n"
msgstr ""

#. type: Plain text
#: debian-bookworm opensuse-leap-15-6
#, no-wrap
msgid ""
"path_beneath.parent_fd = open(\"/usr\", O_PATH | O_CLOEXEC);\n"
"if (path_beneath.parent_fd == -1) {\n"
"    perror(\"Failed to open file\");\n"
"    close(ruleset_fd);\n"
"    exit(EXIT_FAILURE);\n"
"}\n"
"err = landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH,\n"
"                        &path_beneath, 0);\n"
"close(path_beneath.parent_fd);\n"
"if (err) {\n"
"    perror(\"Failed to update ruleset\");\n"
"    close(ruleset_fd);\n"
"    exit(EXIT_FAILURE);\n"
"}\n"
msgstr ""

#. type: TH
#: fedora-40 fedora-rawhide mageia-cauldron
#, no-wrap
msgid "2023-10-31"
msgstr ""

#. type: TH
#: fedora-40 mageia-cauldron
#, no-wrap
msgid "Linux man-pages 6.06"
msgstr ""

#. type: TH
#: fedora-rawhide
#, no-wrap
msgid "Linux man-pages 6.7"
msgstr ""

#. type: TH
#: opensuse-leap-15-6
#, no-wrap
msgid "2023-04-02"
msgstr ""

#. type: TH
#: opensuse-leap-15-6
#, no-wrap
msgid "Linux man-pages 6.04"
msgstr ""

#. type: Plain text
#: opensuse-leap-15-6
#, no-wrap
msgid ""
"attr.handled_access_fs =\n"
"        LANDLOCK_ACCESS_FS_EXECUTE |\n"
"        LANDLOCK_ACCESS_FS_WRITE_FILE |\n"
"        LANDLOCK_ACCESS_FS_READ_FILE |\n"
"        LANDLOCK_ACCESS_FS_READ_DIR |\n"
"        LANDLOCK_ACCESS_FS_REMOVE_DIR |\n"
"        LANDLOCK_ACCESS_FS_REMOVE_FILE |\n"
"        LANDLOCK_ACCESS_FS_MAKE_CHAR |\n"
"        LANDLOCK_ACCESS_FS_MAKE_DIR |\n"
"        LANDLOCK_ACCESS_FS_MAKE_REG |\n"
"        LANDLOCK_ACCESS_FS_MAKE_SOCK |\n"
"        LANDLOCK_ACCESS_FS_MAKE_FIFO |\n"
"        LANDLOCK_ACCESS_FS_MAKE_BLOCK |\n"
"        LANDLOCK_ACCESS_FS_MAKE_SYM |\n"
"        LANDLOCK_ACCESS_FS_REFER |\n"
"        LANDLOCK_ACCESS_FS_TRUNCATE;\n"
msgstr ""

#. type: TH
#: opensuse-tumbleweed
#, no-wrap
msgid "Linux man-pages (unreleased)"
msgstr ""