SELinux userspace 3.6-rc1 release

Resolves: RHEL-16236
This commit is contained in:
Petr Lautrbach 2023-11-13 13:48:08 +01:00
parent 7ca971658b
commit 1e855763bc
7 changed files with 2398 additions and 41 deletions

1
.gitignore vendored
View File

@ -226,3 +226,4 @@ libselinux-2.0.96.tgz
/libselinux-3.5-rc2.tar.gz /libselinux-3.5-rc2.tar.gz
/libselinux-3.5-rc3.tar.gz /libselinux-3.5-rc3.tar.gz
/libselinux-3.5.tar.gz /libselinux-3.5.tar.gz
/libselinux-3.6-rc1.tar.gz

View File

@ -1,4 +1,4 @@
From 1dbd23dc2566b3fe9113bf09fd9e190dfd4651b6 Mon Sep 17 00:00:00 2001 From 5d257019cb4de4681e60f6e15bf2c1be73275b9c Mon Sep 17 00:00:00 2001
From: Petr Lautrbach <plautrba@redhat.com> From: Petr Lautrbach <plautrba@redhat.com>
Date: Fri, 30 Jul 2021 14:14:37 +0200 Date: Fri, 30 Jul 2021 14:14:37 +0200
Subject: [PATCH] Use SHA-2 instead of SHA-1 Subject: [PATCH] Use SHA-2 instead of SHA-1
@ -30,7 +30,7 @@ The use of SHA-1 in RHEL9 is deprecated
create mode 100644 libselinux/src/sha256.h create mode 100644 libselinux/src/sha256.h
diff --git a/libselinux/include/selinux/label.h b/libselinux/include/selinux/label.h diff --git a/libselinux/include/selinux/label.h b/libselinux/include/selinux/label.h
index e8983606d93b..a35d84d63b0a 100644 index ce189a3ae2fe..ce77d32dfed1 100644
--- a/libselinux/include/selinux/label.h --- a/libselinux/include/selinux/label.h
+++ b/libselinux/include/selinux/label.h +++ b/libselinux/include/selinux/label.h
@@ -120,13 +120,13 @@ extern int selabel_lookup_best_match_raw(struct selabel_handle *rec, char **con, @@ -120,13 +120,13 @@ extern int selabel_lookup_best_match_raw(struct selabel_handle *rec, char **con,
@ -185,23 +185,23 @@ index c56326814b94..098c840fc59b 100644
.BR selabel_open (3) .BR selabel_open (3)
must be called specifying the required must be called specifying the required
diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile diff --git a/libselinux/src/Makefile b/libselinux/src/Makefile
index 70ba063ada5d..0c803d8d4aae 100644 index 7aadb822afb0..d906c8811017 100644
--- a/libselinux/src/Makefile --- a/libselinux/src/Makefile
+++ b/libselinux/src/Makefile +++ b/libselinux/src/Makefile
@@ -125,7 +125,7 @@ DISABLE_FLAGS+= -DNO_MEDIA_BACKEND -DNO_DB_BACKEND -DNO_X_BACKEND \ @@ -130,7 +130,7 @@ DISABLE_FLAGS+= -DNO_MEDIA_BACKEND -DNO_DB_BACKEND -DNO_X_BACKEND \
-DBUILD_HOST -DBUILD_HOST
SRCS= callbacks.c freecon.c label.c label_file.c \ SRCS= callbacks.c freecon.c label.c label_file.c \
label_backends_android.c regex.c label_support.c \ label_backends_android.c regex.c label_support.c \
- matchpathcon.c setrans_client.c sha1.c booleans.c - matchpathcon.c setrans_client.c sha1.c booleans.c
+ matchpathcon.c setrans_client.c sha256.c booleans.c + matchpathcon.c setrans_client.c sha256.c booleans.c
else
LABEL_BACKEND_ANDROID=y LABEL_BACKEND_ANDROID=y
endif endif
diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c diff --git a/libselinux/src/label_file.c b/libselinux/src/label_file.c
index 74ae9b9feb70..33d395e414f0 100644 index 4778f8f8cd4a..b902ff06a502 100644
--- a/libselinux/src/label_file.c --- a/libselinux/src/label_file.c
+++ b/libselinux/src/label_file.c +++ b/libselinux/src/label_file.c
@@ -1010,7 +1010,7 @@ static struct spec *lookup_common(struct selabel_handle *rec, @@ -1093,7 +1093,7 @@ static struct spec *lookup_common(struct selabel_handle *rec,
/* /*
* Returns true if the digest of all partial matched contexts is the same as * Returns true if the digest of all partial matched contexts is the same as
@ -210,7 +210,7 @@ index 74ae9b9feb70..33d395e414f0 100644
* digest will always be returned. The caller must free any returned digests. * digest will always be returned. The caller must free any returned digests.
*/ */
static bool get_digests_all_partial_matches(struct selabel_handle *rec, static bool get_digests_all_partial_matches(struct selabel_handle *rec,
@@ -1019,39 +1019,39 @@ static bool get_digests_all_partial_matches(struct selabel_handle *rec, @@ -1102,39 +1102,39 @@ static bool get_digests_all_partial_matches(struct selabel_handle *rec,
uint8_t **xattr_digest, uint8_t **xattr_digest,
size_t *digest_len) size_t *digest_len)
{ {
@ -261,7 +261,7 @@ index 74ae9b9feb70..33d395e414f0 100644
return true; return true;
return false; return false;
@@ -1071,22 +1071,22 @@ static bool hash_all_partial_matches(struct selabel_handle *rec, const char *key @@ -1154,22 +1154,22 @@ static bool hash_all_partial_matches(struct selabel_handle *rec, const char *key
return false; return false;
} }
@ -293,7 +293,7 @@ index 74ae9b9feb70..33d395e414f0 100644
free(matches); free(matches);
return true; return true;
diff --git a/libselinux/src/label_internal.h b/libselinux/src/label_internal.h diff --git a/libselinux/src/label_internal.h b/libselinux/src/label_internal.h
index 782c6aa8cc0c..304e8d96490a 100644 index ea60cd9a058f..77ac8173c7a9 100644
--- a/libselinux/src/label_internal.h --- a/libselinux/src/label_internal.h
+++ b/libselinux/src/label_internal.h +++ b/libselinux/src/label_internal.h
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
@ -334,10 +334,10 @@ index 782c6aa8cc0c..304e8d96490a 100644
}; };
diff --git a/libselinux/src/label_support.c b/libselinux/src/label_support.c diff --git a/libselinux/src/label_support.c b/libselinux/src/label_support.c
index 54fd49a5b7b9..4003eb8dc7af 100644 index f7ab9292562e..1c3c1728f6ba 100644
--- a/libselinux/src/label_support.c --- a/libselinux/src/label_support.c
+++ b/libselinux/src/label_support.c +++ b/libselinux/src/label_support.c
@@ -115,7 +115,7 @@ int read_spec_entries(char *line_buf, const char **errbuf, int num_args, ...) @@ -114,7 +114,7 @@ int read_spec_entries(char *line_buf, const char **errbuf, int num_args, ...)
/* Once all the specfiles are in the hash_buf, generate the hash. */ /* Once all the specfiles are in the hash_buf, generate the hash. */
void digest_gen_hash(struct selabel_digest *digest) void digest_gen_hash(struct selabel_digest *digest)
{ {
@ -346,7 +346,7 @@ index 54fd49a5b7b9..4003eb8dc7af 100644
size_t remaining_size; size_t remaining_size;
const unsigned char *ptr; const unsigned char *ptr;
@@ -123,19 +123,19 @@ void digest_gen_hash(struct selabel_digest *digest) @@ -122,19 +122,19 @@ void digest_gen_hash(struct selabel_digest *digest)
if (!digest) if (!digest)
return; return;
@ -369,9 +369,9 @@ index 54fd49a5b7b9..4003eb8dc7af 100644
+ Sha256Finalise(&context, (SHA256_HASH *)digest->digest); + Sha256Finalise(&context, (SHA256_HASH *)digest->digest);
free(digest->hashbuf); free(digest->hashbuf);
digest->hashbuf = NULL; digest->hashbuf = NULL;
return; }
diff --git a/libselinux/src/selinux_restorecon.c b/libselinux/src/selinux_restorecon.c diff --git a/libselinux/src/selinux_restorecon.c b/libselinux/src/selinux_restorecon.c
index 6b5f6921b82b..24604776974e 100644 index 38f10f1c7edd..111b89aa8dc9 100644
--- a/libselinux/src/selinux_restorecon.c --- a/libselinux/src/selinux_restorecon.c
+++ b/libselinux/src/selinux_restorecon.c +++ b/libselinux/src/selinux_restorecon.c
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
@ -383,7 +383,7 @@ index 6b5f6921b82b..24604776974e 100644
#define STAR_COUNT 1024 #define STAR_COUNT 1024
@@ -305,7 +305,7 @@ static uint64_t exclude_non_seclabel_mounts(void) @@ -304,7 +304,7 @@ static uint64_t exclude_non_seclabel_mounts(void)
static int add_xattr_entry(const char *directory, bool delete_nonmatch, static int add_xattr_entry(const char *directory, bool delete_nonmatch,
bool delete_all) bool delete_all)
{ {
@ -392,7 +392,7 @@ index 6b5f6921b82b..24604776974e 100644
size_t i, digest_len = 0; size_t i, digest_len = 0;
int rc; int rc;
enum digest_result digest_result; enum digest_result digest_result;
@@ -329,15 +329,15 @@ static int add_xattr_entry(const char *directory, bool delete_nonmatch, @@ -328,15 +328,15 @@ static int add_xattr_entry(const char *directory, bool delete_nonmatch,
} }
/* Convert entry to a hex encoded string. */ /* Convert entry to a hex encoded string. */
@ -411,7 +411,7 @@ index 6b5f6921b82b..24604776974e 100644
digest_result = match ? MATCH : NOMATCH; digest_result = match ? MATCH : NOMATCH;
@@ -357,7 +357,7 @@ static int add_xattr_entry(const char *directory, bool delete_nonmatch, @@ -356,7 +356,7 @@ static int add_xattr_entry(const char *directory, bool delete_nonmatch,
/* Now add entries to link list. */ /* Now add entries to link list. */
new_entry = malloc(sizeof(struct dir_xattr)); new_entry = malloc(sizeof(struct dir_xattr));
if (!new_entry) { if (!new_entry) {
@ -420,7 +420,7 @@ index 6b5f6921b82b..24604776974e 100644
goto oom; goto oom;
} }
new_entry->next = NULL; new_entry->next = NULL;
@@ -365,15 +365,15 @@ static int add_xattr_entry(const char *directory, bool delete_nonmatch, @@ -364,15 +364,15 @@ static int add_xattr_entry(const char *directory, bool delete_nonmatch,
new_entry->directory = strdup(directory); new_entry->directory = strdup(directory);
if (!new_entry->directory) { if (!new_entry->directory) {
free(new_entry); free(new_entry);
@ -439,7 +439,7 @@ index 6b5f6921b82b..24604776974e 100644
goto oom; goto oom;
} }
@@ -387,7 +387,7 @@ static int add_xattr_entry(const char *directory, bool delete_nonmatch, @@ -386,7 +386,7 @@ static int add_xattr_entry(const char *directory, bool delete_nonmatch,
dir_xattr_last = new_entry; dir_xattr_last = new_entry;
} }
@ -448,7 +448,7 @@ index 6b5f6921b82b..24604776974e 100644
return 0; return 0;
oom: oom:
@@ -775,7 +775,7 @@ err: @@ -776,7 +776,7 @@ err:
struct dir_hash_node { struct dir_hash_node {
char *path; char *path;
@ -457,7 +457,7 @@ index 6b5f6921b82b..24604776974e 100644
struct dir_hash_node *next; struct dir_hash_node *next;
}; };
/* /*
@@ -1281,7 +1281,7 @@ static int selinux_restorecon_common(const char *pathname_orig, @@ -1282,7 +1282,7 @@ static int selinux_restorecon_common(const char *pathname_orig,
if (setxattr(current->path, if (setxattr(current->path,
RESTORECON_PARTIAL_MATCH_DIGEST, RESTORECON_PARTIAL_MATCH_DIGEST,
current->digest, current->digest,
@ -1179,7 +1179,7 @@ index 000000000000..406ed869cd82
+ SHA256_HASH* Digest // [in] + SHA256_HASH* Digest // [in]
+ ); + );
diff --git a/libselinux/utils/selabel_digest.c b/libselinux/utils/selabel_digest.c diff --git a/libselinux/utils/selabel_digest.c b/libselinux/utils/selabel_digest.c
index 6a8313a2c88d..a69331f1c6b5 100644 index bf22b472856c..b992d4230eb3 100644
--- a/libselinux/utils/selabel_digest.c --- a/libselinux/utils/selabel_digest.c
+++ b/libselinux/utils/selabel_digest.c +++ b/libselinux/utils/selabel_digest.c
@@ -15,8 +15,8 @@ static __attribute__ ((__noreturn__)) void usage(const char *progname) @@ -15,8 +15,8 @@ static __attribute__ ((__noreturn__)) void usage(const char *progname)
@ -1193,8 +1193,8 @@ index 6a8313a2c88d..a69331f1c6b5 100644
"-B Use base specfiles only (valid for \"-b file\" only).\n\t" "-B Use base specfiles only (valid for \"-b file\" only).\n\t"
"-i Do not request a digest.\n\t" "-i Do not request a digest.\n\t"
"-f Optional file containing the specs (defaults to\n\t" "-f Optional file containing the specs (defaults to\n\t"
@@ -62,12 +62,12 @@ int main(int argc, char **argv) @@ -63,12 +63,12 @@ int main(int argc, char **argv)
int backend = 0, rc, opt, validate = 0; int rc, opt, validate = 0;
char *baseonly = NULL, *file = NULL, *digest = (char *)1; char *baseonly = NULL, *file = NULL, *digest = (char *)1;
char **specfiles = NULL; char **specfiles = NULL;
- unsigned char *sha1_digest = NULL; - unsigned char *sha1_digest = NULL;
@ -1208,7 +1208,7 @@ index 6a8313a2c88d..a69331f1c6b5 100644
struct selabel_handle *hnd; struct selabel_handle *hnd;
struct selinux_opt selabel_option[] = { struct selinux_opt selabel_option[] = {
@@ -137,7 +137,7 @@ int main(int argc, char **argv) @@ -138,7 +138,7 @@ int main(int argc, char **argv)
return -1; return -1;
} }
@ -1217,7 +1217,7 @@ index 6a8313a2c88d..a69331f1c6b5 100644
&num_specfiles); &num_specfiles);
if (rc) { if (rc) {
@@ -152,19 +152,19 @@ int main(int argc, char **argv) @@ -153,19 +153,19 @@ int main(int argc, char **argv)
goto err; goto err;
} }
@ -1242,7 +1242,7 @@ index 6a8313a2c88d..a69331f1c6b5 100644
printf("calculated using the following specfile(s):\n"); printf("calculated using the following specfile(s):\n");
if (specfiles) { if (specfiles) {
@@ -177,13 +177,13 @@ int main(int argc, char **argv) @@ -178,13 +178,13 @@ int main(int argc, char **argv)
cmd_ptr += strlen(specfiles[i]) + 1; cmd_ptr += strlen(specfiles[i]) + 1;
printf("%s\n", specfiles[i]); printf("%s\n", specfiles[i]);
} }
@ -1260,10 +1260,10 @@ index 6a8313a2c88d..a69331f1c6b5 100644
selabel_close(hnd); selabel_close(hnd);
return rc; return rc;
diff --git a/libselinux/utils/selabel_get_digests_all_partial_matches.c b/libselinux/utils/selabel_get_digests_all_partial_matches.c diff --git a/libselinux/utils/selabel_get_digests_all_partial_matches.c b/libselinux/utils/selabel_get_digests_all_partial_matches.c
index c4e0f836b260..80723f714264 100644 index e2733b4195ff..98e533dc2692 100644
--- a/libselinux/utils/selabel_get_digests_all_partial_matches.c --- a/libselinux/utils/selabel_get_digests_all_partial_matches.c
+++ b/libselinux/utils/selabel_get_digests_all_partial_matches.c +++ b/libselinux/utils/selabel_get_digests_all_partial_matches.c
@@ -18,8 +18,8 @@ static __attribute__ ((__noreturn__)) void usage(const char *progname) @@ -16,8 +16,8 @@ static __attribute__ ((__noreturn__)) void usage(const char *progname)
"-v Validate file_contxts entries against loaded policy.\n\t" "-v Validate file_contxts entries against loaded policy.\n\t"
"-r Recursively descend directories.\n\t" "-r Recursively descend directories.\n\t"
"-f Optional file_contexts file (defaults to current policy).\n\t" "-f Optional file_contexts file (defaults to current policy).\n\t"
@ -1274,7 +1274,7 @@ index c4e0f836b260..80723f714264 100644
"<path> against\na newly generated digest based on the " "<path> against\na newly generated digest based on the "
"file_context entries for that node\n(using the regx, mode " "file_context entries for that node\n(using the regx, mode "
"and path entries).\n", progname); "and path entries).\n", progname);
@@ -37,7 +37,7 @@ int main(int argc, char **argv) @@ -35,7 +35,7 @@ int main(int argc, char **argv)
char *paths[2] = { NULL, NULL }; char *paths[2] = { NULL, NULL };
uint8_t *xattr_digest = NULL; uint8_t *xattr_digest = NULL;
uint8_t *calculated_digest = NULL; uint8_t *calculated_digest = NULL;
@ -1283,7 +1283,7 @@ index c4e0f836b260..80723f714264 100644
struct selabel_handle *hnd; struct selabel_handle *hnd;
struct selinux_opt selabel_option[] = { struct selinux_opt selabel_option[] = {
@@ -106,27 +106,27 @@ int main(int argc, char **argv) @@ -104,27 +104,27 @@ int main(int argc, char **argv)
&xattr_digest, &xattr_digest,
&digest_len); &digest_len);
@ -1317,7 +1317,7 @@ index c4e0f836b260..80723f714264 100644
ftsent->fts_path); ftsent->fts_path);
printf("as file_context entry is \"<<none>>\"\n"); printf("as file_context entry is \"<<none>>\"\n");
goto cleanup; goto cleanup;
@@ -136,25 +136,25 @@ int main(int argc, char **argv) @@ -134,25 +134,25 @@ int main(int argc, char **argv)
ftsent->fts_path); ftsent->fts_path);
for (i = 0; i < digest_len; i++) for (i = 0; i < digest_len; i++)
@ -1349,5 +1349,5 @@ index c4e0f836b260..80723f714264 100644
} }
default: default:
-- --
2.39.0 2.41.0

View File

@ -0,0 +1,25 @@
From a87290f734ba136e7b648a9ce9754767cbb5eed3 Mon Sep 17 00:00:00 2001
From: Petr Lautrbach <lautrbach@redhat.com>
Date: Mon, 13 Nov 2023 13:37:36 +0100
Subject: [PATCH] Revert "Do not automatically install Russian translations"
Content-type: text/plain
This reverts commit 14f35fde50cd080650ac3b0136234464a3ea6fbe.
---
libselinux/man/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libselinux/man/Makefile b/libselinux/man/Makefile
index fdc0825f4204..4b3626d2f332 100644
--- a/libselinux/man/Makefile
+++ b/libselinux/man/Makefile
@@ -1,5 +1,5 @@
# Installation directories.
-LINGUAS ?=
+LINGUAS ?= ru
PREFIX ?= /usr
MANDIR ?= $(PREFIX)/share/man
MAN3SUBDIR ?= man3
--
2.41.0

View File

@ -0,0 +1,583 @@
From e51435e095fcd2dbde3c7a0a4398012d037b9aa7 Mon Sep 17 00:00:00 2001
From: Petr Lautrbach <lautrbach@redhat.com>
Date: Mon, 13 Nov 2023 13:38:00 +0100
Subject: [PATCH] Revert "libselinux: Remove the Russian translations"
Content-type: text/plain
This reverts commit 84c195e18ccd9735c4eb947b1268d6d2b982cb5a.
---
libselinux/man/ru/man8/avcstat.8 | 35 +++++++
libselinux/man/ru/man8/booleans.8 | 46 +++++++++
libselinux/man/ru/man8/getenforce.8 | 19 ++++
libselinux/man/ru/man8/getsebool.8 | 40 ++++++++
libselinux/man/ru/man8/matchpathcon.8 | 62 ++++++++++++
libselinux/man/ru/man8/sefcontext_compile.8 | 70 +++++++++++++
libselinux/man/ru/man8/selinux.8 | 106 ++++++++++++++++++++
libselinux/man/ru/man8/selinuxenabled.8 | 21 ++++
libselinux/man/ru/man8/selinuxexeccon.8 | 28 ++++++
libselinux/man/ru/man8/setenforce.8 | 32 ++++++
libselinux/man/ru/man8/togglesebool.8 | 23 +++++
11 files changed, 482 insertions(+)
create mode 100644 libselinux/man/ru/man8/avcstat.8
create mode 100644 libselinux/man/ru/man8/booleans.8
create mode 100644 libselinux/man/ru/man8/getenforce.8
create mode 100644 libselinux/man/ru/man8/getsebool.8
create mode 100644 libselinux/man/ru/man8/matchpathcon.8
create mode 100644 libselinux/man/ru/man8/sefcontext_compile.8
create mode 100644 libselinux/man/ru/man8/selinux.8
create mode 100644 libselinux/man/ru/man8/selinuxenabled.8
create mode 100644 libselinux/man/ru/man8/selinuxexeccon.8
create mode 100644 libselinux/man/ru/man8/setenforce.8
create mode 100644 libselinux/man/ru/man8/togglesebool.8
diff --git a/libselinux/man/ru/man8/avcstat.8 b/libselinux/man/ru/man8/avcstat.8
new file mode 100644
index 000000000000..b6d84964e7eb
--- /dev/null
+++ b/libselinux/man/ru/man8/avcstat.8
@@ -0,0 +1,35 @@
+.TH "avcstat" "8" "18 ноября 2004" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+avcstat \- показать статистику AVC (Access Vector Cache, кэш вектора доступа) SELinux
+.
+.SH "ОБЗОР"
+.B avcstat
+.RB [ \-c ]
+.RB [ \-f
+.IR status_file ]
+.RI [ interval ]
+.
+.SH "ОПИСАНИЕ"
+Показать статистику AVC SELinux. Если указан параметр
+.I interval
+, программа будет выполняться циклами, показывая обновлённую статистику каждые
+.I interval
+секунд.
+По умолчанию показываются относительные значения.
+.
+.SH ПАРАМЕТРЫ
+.TP
+.B \-c
+Показать совокупные значения.
+.TP
+.B \-f
+Указывает расположение файла статистики AVC, по умолчанию это
+.IR /sys/fs/selinux/avc/cache_stats .
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR selinux (8)
+.
+.SH АВТОРЫ
+Эта страница руководства была написана Dan Walsh <dwalsh@redhat.com>.
+Программа была написана James Morris <jmorris@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/booleans.8 b/libselinux/man/ru/man8/booleans.8
new file mode 100644
index 000000000000..20e5b00da25f
--- /dev/null
+++ b/libselinux/man/ru/man8/booleans.8
@@ -0,0 +1,46 @@
+.TH "booleans" "8" "11 августа 2004" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+booleans \- логические переключатели политики позволяют настраивать политику SELinux в среде выполнения
+.
+.SH "ОПИСАНИЕ"
+Эта страница руководства описывает логические переключатели политики SELinux.
+.BR
+Политика SELinux может включать условные правила, которое включены или отключены в зависимости от текущих значений набора логических переключателей политики.
+Эти логические переключатели политики позволяют изменять политику безопасности в среде выполнения без загрузки новой политики.
+
+Например, логический переключатель httpd_enable_cgi (если он включён) позволяет управляющей программе httpd запускать сценарии cgi. Если администратору требуется запретить исполнение сценариев cgi, можно просто установить соответствующее значение этого переключателя.
+
+Политика определяет значение по умолчанию для каждого логического переключателя, обычно это false.
+Эти значения по умолчанию можно переопределить через локальные параметры, созданные с помощью утилиты
+.BR setsebool (8)
+, используя
+.B \-P
+для сохранения параметра после перезагрузок. Средство
+.B system\-config\-securitylevel
+предоставляет графический интерфейс для изменения параметров. Программа
+.BR load_policy (8)
+по умолчанию сохранит текущие параметры логических переключателей после перезагрузки политики по умолчанию. При необходимости также можно сбросить значения логических переключателей на их значения по умолчанию при загрузке, для этого используется параметр
+.B \-b.
+
+Для получения и вывода списка логических значений служит утилита
+.BR getsebool (8)
+с параметром
+.B \-a.
+
+Логические значения также можно изменить во время выполнения с помощью утилиты
+.BR setsebool (8)
+или утилиты
+.BR togglesebool (8).
+По умолчанию эти утилиты изменяют только текущее логическое значение и не влияют на постоянные параметры, если в setsebool не используется параметр
+.B \-P.
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR getsebool (8),
+.BR setsebool (8),
+.BR selinux (8),
+.BR togglesebool (8)
+.
+.SH АВТОРЫ
+Эта страница руководства была написана Dan Walsh <dwalsh@redhat.com>.
+Поддержка условной политики SELinux была разработана Tresys Technology.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/getenforce.8 b/libselinux/man/ru/man8/getenforce.8
new file mode 100644
index 000000000000..13589e19ae37
--- /dev/null
+++ b/libselinux/man/ru/man8/getenforce.8
@@ -0,0 +1,19 @@
+.TH "getenforce" "8" "7 апреля 2004" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+getenforce \- получить текущий режим SELinux
+.
+.SH "ОБЗОР"
+.B getenforce
+.
+.SH "ОПИСАНИЕ"
+.B getenforce
+сообщает, в каком режиме работает SELinux (принудительный, разрешительный, отключённый).
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR selinux (8),
+.BR setenforce (8),
+.BR selinuxenabled (8)
+.
+.SH АВТОРЫ
+Dan Walsh, <dwalsh@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/getsebool.8 b/libselinux/man/ru/man8/getsebool.8
new file mode 100644
index 000000000000..04d9820ee49d
--- /dev/null
+++ b/libselinux/man/ru/man8/getsebool.8
@@ -0,0 +1,40 @@
+.TH "getsebool" "8" "11 августа 2004" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+getsebool \- получить логические значения SELinux
+.
+.SH "ОБЗОР"
+.B getsebool
+.RB [ \-a ]
+.RI [ boolean ]
+.
+.SH "ОПИСАНИЕ"
+.B getsebool
+сообщает, где включён или отключён конкретный логический переключатель
+или все логические переключатели SELinux.
+В некоторых ситуациях для логического переключателя может существовать
+ожидающее изменение (переход из одного состояние в другое) - getsebool
+сообщит об этом.
+Ожидающее значение - то значение, которое будет применено при
+следующей фиксации логического переключателя.
+
+Установка значений логических переключателей выполняется в два этапа;
+сначала изменяется ожидающее значение, а затем логические переключатели
+фиксируются, в результате чего их активные значения заменяются
+ожидающими значениями. Это позволяет изменить группу логических
+переключателей за одну транзацию, задав все необходимые ожидающие
+значения и затем одновременно зафиксировав их.
+.
+.SH ПАРАМЕТРЫ
+.TP
+.B \-a
+Показать все логические переключатели SELinux.
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR selinux (8),
+.BR setsebool (8),
+.BR booleans (8)
+.
+.SH АВТОРЫ
+Эта страница руководства была написана Dan Walsh <dwalsh@redhat.com>.
+Программа была написана Tresys Technology.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/matchpathcon.8 b/libselinux/man/ru/man8/matchpathcon.8
new file mode 100644
index 000000000000..5bd586d47db9
--- /dev/null
+++ b/libselinux/man/ru/man8/matchpathcon.8
@@ -0,0 +1,62 @@
+.TH "matchpathcon" "8" "21 апреля 2005" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+matchpathcon \- получить текущий контекст безопасности SELinux для указанного пути из конфигурации контекстов файлов
+.
+.SH "ОБЗОР"
+.B matchpathcon
+.RB [ \-V ]
+.RB [ \-N ]
+.RB [ \-n ]
+.RB [ \-m
+.IR type ]
+.RB [ \-f
+.IR file_contexts_file ]
+.RB [ \-p
+.IR prefix ]
+.RB [ \-P
+.IR policy_root_path ]
+.I filepath...
+.
+.SH "ОПИСАНИЕ"
+.BR matchpathcon
+опрашивает системную политику и выводит контекст безопасности по умолчанию, связанный с путём к файлу.
+
+.B Примечание:
+Одинаковые пути могут иметь разные контексты безопасности в зависимости от типа файла (обычный файл, каталог, файл связи, файл знаков ...).
+
+.B matchpathcon
+также будет учитывать тип файла при определении контекста безопасности по умолчанию (если файл существует). Если файл не существует, сопоставление по типу файла не будет выполнено.
+.
+.SH ПАРАМЕТРЫ
+.TP
+.BI \-m " type"
+Принудительно указать тип файла для поиска.
+Действительные типы:
+.BR file ", " dir ", "pipe ", " chr_file ", " blk_file ", "
+.BR lnk_file ", " sock_file .
+.TP
+.B \-n
+Не показывать путь.
+.TP
+.B \-N
+Не использовать преобразования.
+.TP
+.BI \-f " file_context_file"
+Использовать альтернативный файл file_context
+.TP
+.BI \-p " prefix"
+Использовать префикс для ускорения преобразований
+.TP
+.BI \-P " policy_root_path"
+Использовать альтернативный корневой путь к политике
+.TP
+.B \-V
+Проверить контекст файла на диске на соответствие параметрам по умолчанию
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR selinux "(8), "
+.BR matchpathcon (3)
+.
+.SH АВТОРЫ
+Эта страница руководства была написана Dan Walsh <dwalsh@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/sefcontext_compile.8 b/libselinux/man/ru/man8/sefcontext_compile.8
new file mode 100644
index 000000000000..3a6b832a5319
--- /dev/null
+++ b/libselinux/man/ru/man8/sefcontext_compile.8
@@ -0,0 +1,70 @@
+.TH "sefcontext_compile" "8" "12 августа 2015" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+sefcontext_compile \- скомпилировать файлы регулярных выражений контекстов файлов
+.
+.SH "ОБЗОР"
+.B sefcontext_compile
+.RB [ \-o
+.IR outputfile ]
+.RB [ \-p
+.IR policyfile ]
+.I inputfile
+.
+.SH "ОПИСАНИЕ"
+.B sefcontext_compile
+используется для компиляции регулярных выражений контекстов файлов в формат
+.BR pcre (3).
+.sp
+Скомпилированный файл используется функциями проставления меток файлов libselinux.
+.sp
+По умолчанию
+.B sefcontext_compile
+записывает скомпилированный файл pcre с суффиксом
+.B .bin
+в конце (например, \fIinputfile\fB.bin\fR).
+.SH ПАРАМЕТРЫ
+.TP
+.B \-o
+Указать
+.I outputfile
+- должно быть полным именем файла, так как суффикс
+.B .bin
+не добавляется автоматически.
+.TP
+.B \-p
+Указать двоичный
+.I policyfile
+для использования при проверке записей контекста в
+.I inputfile
+.br
+Если найден недействительный контекст, запись файла в формате pcre не будет выполнена и появится сообщение об ошибке.
+
+.SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ"
+При ошибке возвращается -1. При успешном завершении возвращается 0.
+
+.SH "ПРИМЕРЫ"
+.B Пример 1:
+.br
+sefcontext_compile /etc/selinux/targeted/contexts/files/file_contexts
+.sp
+В результате создаётся следующий файл:
+.RS
+/etc/selinux/targeted/contexts/files/file_contexts.bin
+.RE
+.sp
+.B Пример 2:
+.br
+sefcontext_compile -o new_fc.bin /etc/selinux/targeted/contexts/files/file_contexts
+.sp
+В результате в текущем рабочем каталоге создаётся следующий файл:
+.RS
+new_fc.bin
+.RE
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR selinux (8),
+.BR semanage (8)
+.
+.SH АВТОРЫ
+Dan Walsh, <dwalsh@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/selinux.8 b/libselinux/man/ru/man8/selinux.8
new file mode 100644
index 000000000000..4ab642768be4
--- /dev/null
+++ b/libselinux/man/ru/man8/selinux.8
@@ -0,0 +1,106 @@
+.TH "selinux" "8" "29 апреля 2005" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+SELinux \- Linux с улучшенной безопасностью от (SELinux)
+.
+.SH "ОПИСАНИЕ"
+Linux с улучшенной безопасностью от - это реализация гибкой архитектуры мандатного
+управления доступом в операционной системе Linux. Архитектура SELinux предоставляет
+общую поддержку использования различных видов политик мандатного управления доступом,
+включая основанные на концепциях Type Enforcement® (принудительное присвоение типов),
+Role-Based Access Control (управление доступом на основе ролей) и Multi-Level Security
+(многоуровневая безопасность). Дополнительная информация и техническая документация по
+SELinux доступна по адресу https://github.com/SELinuxProject.
+
+Файл конфигурации
+.I /etc/selinux/config
+позволяет управлять включением и отключением SELinux и, если SELinux включён,
+устанавливать режим его работы - разрешительный или принудительный. Переменной
+.B SELINUX
+можно задать значение отключённой, разрешительной или принудительной, чтобы выбрать
+один из этих вариантов. Если выбрать отключение режима, код ядра и приложения SELinux
+будет полностью отключён, система будет работать без какой-либо защиты SELinux.
+При установке разрешительного режима код SELinux включён, но не выполняет отказы в
+доступе, а только журналирует те действия, которые были бы запрещены при
+принудительном режиме. При установке принудительного режима код SELinux включён,
+выполняет отказы в доступе и журналирует соответствующие попытки доступа. Набор
+отказов в доступе в разрешительном режиме может отличаться от этого набора в
+принудительном режиме как по причине того, что принудительный режим предотвращает
+дальнейшее выполнение операции после первого отказа, так и из-за того, что после
+получения отказа в доступе часть кода приложения вернётся к работе в менее
+привилегированном режиме.
+
+Файл конфигурации
+.I /etc/selinux/config
+также управляет тем, какая политика активна в системе. SELinux позволяет установить
+в системе несколько политик, но одновременно можно использовать только одну из них.
+В настоящее время имеется несколько видов политики SELinux, например, целевая политика
+(targeted), политика многоуровневой безопасности (mls). Целевая политика позволяет
+большинству процессов пользователя выполняться без ограничений, помещая в отдельные
+домены безопасности, ограниченные политикой, только отдельные службы. Например, процессы
+пользователя выполняются в никак не ограниченном домене, в то время как именованная
+управляющая программа или управляющая программа apache будет выполняться в отдельном
+специально настроенном домене. Если используется политика MLS (Multi-Level Security),
+все процессы будут разделены по детально настроенным доменам безопасности и ограничены
+политикой. MLS также поддерживает модель Белла — Лападулы, в которой процессы
+ограничиваются не только по типу, но и по уровню данных.
+
+Чтобы определить, какая политика будет выполняться, следует установить переменную среды
+.B SELINUXTYPE
+.IR /etc/selinux/config .
+Чтобы применить к системе изменение типа политики, необходимо перезагрузить систему и,
+возможно, повторно проставить метки. В каталогах
+.I /etc/selinux/{SELINUXTYPE}/
+необходимо установить для каждой такой политики соответствующую конфигурацию.
+
+Дальнейшую настройку отдельной политики SELinux можно выполнить с помощью набора настраиваемых
+при компиляции параметров и набора логических переключателей среды выполнения политики.
+.B \%system\-config\-selinux
+позволяет настроить эти логические переключатели и настраиваемые параметры.
+
+Многие домены, которые защищены SELinux, также содержат man-страницы SELinux с информацией
+о настройке соответствующей политики.
+.
+.SH "ПРОСТАВЛЕНИЕ МЕТОК ДЛЯ ФАЙЛОВ"
+Всем файлам, каталогам, устройствам ... назначены контексты безопасности/метки. Эти контексты хранятся в расширенных атрибутах файловой системы.
+Проблемы с SELinux часто возникают из-за неправильного проставления меток в файловой системе. Это может быть вызвано загрузкой компьютера с ядром, отличным от SELinux. Появление сообщения об ошибке, содержащего file_t, обычно означает серьёзную проблему с проставлением меток в файловой системе.
+
+Лучшим способом повторного проставления меток в файловой системе является создание файла флага
+.I /.autorelabel
+и последующая перезагрузка.
+.BR system\-config\-selinux
+также имеет эту функциональность. Кроме того, для повторного проставления меток для файлов можно использовать команды
+.BR restorecon / fixfiles.
+.
+.SH ФАЙЛЫ
+.I /etc/selinux/config
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.ad l
+.nh
+.BR booleans (8),
+.BR setsebool (8),
+.BR sepolicy (8),
+.BR system-config-selinux (8),
+.BR togglesebool (8),
+.BR restorecon (8),
+.BR fixfiles (8),
+.BR setfiles (8),
+.BR semanage (8),
+.BR sepolicy (8)
+
+Для каждой ограниченной службы в системе имеется man-cтраница следующего формата:
+.br
+
+.BR <servicename>_selinux (8)
+
+Например, для службы httpd имеется страница
+.BR httpd_selinux (8).
+
+.B man -k selinux
+
+Выведет список всех man-страниц SELinux.
+
+.SH АВТОРЫ
+Эта страница руководства была написана Dan Walsh <dwalsh@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/selinuxenabled.8 b/libselinux/man/ru/man8/selinuxenabled.8
new file mode 100644
index 000000000000..9c4af18b0151
--- /dev/null
+++ b/libselinux/man/ru/man8/selinuxenabled.8
@@ -0,0 +1,21 @@
+.TH "selinuxenabled" "8" "7 апреля 2004" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+selinuxenabled \- утилита для использования внутри сценариев оболочки, которая позволяет определить, включён ли selinux
+.
+.SH "ОБЗОР"
+.B selinuxenabled
+.
+.SH "ОПИСАНИЕ"
+Показывает, включён или отключён SELinux.
+.
+.SH "СОСТОЯНИЕ ВЫХОДА"
+Выход с состоянием 0, если SELinux включён, и 1, если он отключён.
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR selinux (8),
+.BR setenforce (8),
+.BR getenforce (8)
+.
+.SH АВТОРЫ
+Dan Walsh, <dwalsh@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/selinuxexeccon.8 b/libselinux/man/ru/man8/selinuxexeccon.8
new file mode 100644
index 000000000000..3ddfe97b2b0d
--- /dev/null
+++ b/libselinux/man/ru/man8/selinuxexeccon.8
@@ -0,0 +1,28 @@
+.TH "selinuxexeccon" "8" "14 мая 2011" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+selinuxexeccon \- сообщить контекст SELinux, который используется для этого исполняемого файла
+.
+.SH "ОБЗОР"
+.B selinuxexeccon
+.I command
+.RI [ fromcon ]
+.
+.SH "ОПИСАНИЕ"
+.B selinuxexeccon
+сообщает контекст SELinux для указанной команды из указанного контекста или текущего контекста.
+.
+.SH ПРИМЕР
+.nf
+# selinuxexeccon /usr/bin/passwd
+staff_u:staff_r:passwd_t:s0-s0:c0.c1023
+
+# selinuxexeccon /usr/sbin/sendmail system_u:system_r:httpd_t:s0
+system_u:system_r:system_mail_t:s0
+.fi
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR secon (8)
+.
+.SH АВТОРЫ
+Эта страница руководства была написана Dan Walsh <dwalsh@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/setenforce.8 b/libselinux/man/ru/man8/setenforce.8
new file mode 100644
index 000000000000..e0daad9a25f2
--- /dev/null
+++ b/libselinux/man/ru/man8/setenforce.8
@@ -0,0 +1,32 @@
+.TH "setenforce" "8" "7 апреля 2004" "dwalsh@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+setenforce \- изменить режим, в котором выполняется SELinux
+.
+.SH "ОБЗОР"
+.B setenforce
+.RB [ Enforcing | Permissive | 1 | 0 ]
+.
+.SH "ОПИСАНИЕ"
+Используйте
+.B Enforcing
+или
+.B 1
+для установки SELinux в принудительный режим.
+.br
+Используйте
+.B Permissive
+или
+.B 0
+для установки SELinux в разрешительный режим.
+
+Если SELinux отключён и требуется его включить (или если SELinux включён и требуется его отключить), обратитесь к странице руководства
+.BR selinux (8).
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR selinux (8),
+.BR getenforce (8),
+.BR selinuxenabled (8)
+.
+.SH АВТОРЫ
+Dan Walsh, <dwalsh@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
diff --git a/libselinux/man/ru/man8/togglesebool.8 b/libselinux/man/ru/man8/togglesebool.8
new file mode 100644
index 000000000000..1da9bcc47147
--- /dev/null
+++ b/libselinux/man/ru/man8/togglesebool.8
@@ -0,0 +1,23 @@
+.TH "togglesebool" "8" "26 октября 2004" "sgrubb@redhat.com" "Документация по командной строке SELinux"
+.SH "ИМЯ"
+togglesebool \- переключить текущее значение логического переключателя SELinux
+.
+.SH "ОБЗОР"
+.B togglesebool
+.I boolean...
+.
+.SH "ОПИСАНИЕ"
+.B togglesebool
+переключает текущее значение списка логических переключателей. Если текущее значение 1,
+то оно будет заменено на 0, и наоборот. Меняются только "находящиеся в памяти" значения;
+параметры загрузки остаются без изменений.
+.
+.SH "СМОТРИТЕ ТАКЖЕ"
+.BR selinux (8),
+.BR booleans (8),
+.BR getsebool (8),
+.BR setsebool (8)
+.
+.SH АВТОРЫ
+Эта страница руководства была написана Steve Grubb <sgrubb@redhat.com>.
+Перевод на русский язык выполнила Герасименко Олеся <gammaray@basealt.ru>.
--
2.41.0

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,25 @@
%define ruby_inc %(pkg-config --cflags ruby) %define ruby_inc %(pkg-config --cflags ruby)
%define libsepolver 3.5-1 %define libsepolver 3.6-0
Summary: SELinux library and simple utilities Summary: SELinux library and simple utilities
Name: libselinux Name: libselinux
Version: 3.5 Version: 3.6
Release: 1%{?dist} Release: 0.rc1.1%{?dist}
License: Public Domain License: Public Domain
# https://github.com/SELinuxProject/selinux/wiki/Releases # https://github.com/SELinuxProject/selinux/wiki/Releases
Source0: https://github.com/SELinuxProject/selinux/releases/download/3.5/libselinux-3.5.tar.gz Source0: https://github.com/SELinuxProject/selinux/releases/download/3.6-rc1/libselinux-3.6-rc1.tar.gz
Source1: selinuxconlist.8 Source1: selinuxconlist.8
Source2: selinuxdefcon.8 Source2: selinuxdefcon.8
Url: https://github.com/SELinuxProject/selinux/wiki Url: https://github.com/SELinuxProject/selinux/wiki
# $ git clone https://github.com/fedora-selinux/selinux.git # $ git clone https://github.com/fedora-selinux/selinux.git
# $ cd selinux # $ cd selinux
# $ git format-patch -N 3.5 -- libselinux # $ git format-patch -N 3.6-rc1 -- libselinux
# $ i=1; for j in 00*patch; do printf "Patch%04d: %s\n" $i $j; i=$((i+1));done # $ i=1; for j in 00*patch; do printf "Patch%04d: %s\n" $i $j; i=$((i+1));done
# Patch list start # Patch list start
Patch0001: 0001-Use-SHA-2-instead-of-SHA-1.patch Patch0001: 0001-Use-SHA-2-instead-of-SHA-1.patch
Patch0002: 0002-Revert-Do-not-automatically-install-Russian-translat.patch
Patch0003: 0003-Revert-libselinux-Remove-the-Russian-translations.patch
Patch0004: 0004-Revert-libselinux-Remove-the-Russian-translations.patch
# Patch list end # Patch list end
BuildRequires: gcc make BuildRequires: gcc make
BuildRequires: ruby-devel ruby libsepol-static >= %{libsepolver} swig pcre2-devel xz-devel BuildRequires: ruby-devel ruby libsepol-static >= %{libsepolver} swig pcre2-devel xz-devel
@ -87,7 +90,7 @@ The libselinux-static package contains the static libraries
needed for developing SELinux applications. needed for developing SELinux applications.
%prep %prep
%autosetup -p 2 -n libselinux-%{version} %autosetup -p 2 -n libselinux-%{version}-rc1
%build %build
export DISABLE_RPM="y" export DISABLE_RPM="y"
@ -176,6 +179,7 @@ rm -f %{buildroot}%{_mandir}/man8/togglesebool*
%{_sbindir}/avcstat %{_sbindir}/avcstat
%{_sbindir}/getenforce %{_sbindir}/getenforce
%{_sbindir}/getpidprevcon %{_sbindir}/getpidprevcon
%{_sbindir}/getpolicyload
%{_sbindir}/getsebool %{_sbindir}/getsebool
%{_sbindir}/matchpathcon %{_sbindir}/matchpathcon
%{_sbindir}/sefcontext_compile %{_sbindir}/sefcontext_compile
@ -214,6 +218,9 @@ rm -f %{buildroot}%{_mandir}/man8/togglesebool*
%{ruby_vendorarchdir}/selinux.so %{ruby_vendorarchdir}/selinux.so
%changelog %changelog
* Mon Nov 13 2023 Petr Lautrbach <lautrbach@redhat.com> - 3.6-0.rc1.1
- SELinux userspace 3.6-rc1 release
* Thu Feb 23 2023 Petr Lautrbach <lautrbach@redhat.com> - 3.5-1 * Thu Feb 23 2023 Petr Lautrbach <lautrbach@redhat.com> - 3.5-1
- SELinux userspace 3.5 release - SELinux userspace 3.5 release

View File

@ -1 +1 @@
SHA512 (libselinux-3.5.tar.gz) = 4e13261a5821018a5f3cdce676f180bb62e5bc225981ca8a498ece0d1c88d9ba8eaa0ce4099dd0849309a8a7c5a9a0953df841a9922f2c284e5a109e5d937ba7 SHA512 (libselinux-3.6-rc1.tar.gz) = a7a8dc9c95cfbe96700b5508ba63214d75c817f0ca90076c3171c1dc809786b9d2fd6f5b6cef458b4a0ae5969a0472c0781f84d0b330f54e6603a896665b3adb