diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/rule.yml b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/rule.yml index f894eacfd990..d6c2ed6df1d8 100644 --- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/rule.yml +++ b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/rule.yml @@ -64,7 +64,7 @@ template: - /usr/lib/ - /usr/lib64/ recursive: 'true' -{{% if 'ol' in families or 'rhel' in product %}} +{{% if 'ol' in families or 'rhel' in product or 'ubuntu' in product %}} file_regex: ^.*\.so.*$ {{% else %}} file_regex: ^.*$ @@ -74,9 +74,15 @@ template: fixtext: |- Configure the system-wide shared library files (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. +{{%- if 'ubuntu' in product %}} + Run the following command: + +
$ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' ! -user root -exec chown root {} +
+{{%- else %}}
Run the following command, replacing "[FILE]" with any library file not owned by "root".
$ sudo chown root [FILE]
+{{%- endif %}}
srg_requirement:
{{{ full_name }}} library files must be owned by root.
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/tests/incorrect_owner.fail.sh b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/tests/incorrect_owner.fail.sh
index 07b5f77cc290..c552b5eacd68 100644
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/tests/incorrect_owner.fail.sh
+++ b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/tests/incorrect_owner.fail.sh
@@ -2,7 +2,7 @@
# platform = multi_platform_fedora,multi_platform_ol,multi_platform_rhel,multi_platform_sle,multi_platform_ubuntu,multi_platform_almalinux
useradd user_test
-{{% if 'ol' in families or 'rhel' in product %}}
+{{% if 'ol' in families or 'rhel' in product or 'ubuntu' in product %}}
for TESTFILE in /lib/test_me.so /lib64/test_me.so /usr/lib/test_me.so /usr/lib64/test_me.so
{{% else %}}
for TESTFILE in /lib/test_me /lib64/test_me /usr/lib/test_me /usr/lib64/test_me
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/tests/incorrect_owner_within_dir.fail.sh b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/tests/incorrect_owner_within_dir.fail.sh
index 8dededef2316..a8e577464bfc 100644
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/tests/incorrect_owner_within_dir.fail.sh
+++ b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_ownership_library_dirs/tests/incorrect_owner_within_dir.fail.sh
@@ -6,7 +6,7 @@ useradd user_test
TESTDIR="/usr/lib/dir/"
mkdir -p "${TESTDIR}"
-{{% if 'ol' in families or 'rhel' in product %}}
+{{% if 'ol' in families or 'rhel' in product or 'ubuntu' in product %}}
touch "${TESTDIR}"/test_me.so
chown user_test "${TESTDIR}"/test_me.so
{{% else %}}
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_permissions_library_dirs/rule.yml b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_permissions_library_dirs/rule.yml
index 840e8ab35a16..7f541885a066 100644
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_permissions_library_dirs/rule.yml
+++ b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_permissions_library_dirs/rule.yml
@@ -64,7 +64,7 @@ template:
- /usr/lib/
- /usr/lib64/
recursive: 'true'
-{{% if 'ol' in families or 'rhel' in product %}}
+{{% if 'ol' in families or 'rhel' in product or 'ubuntu' in product %}}
file_regex: ^.*\.so.*$
{{% else %}}
file_regex: ^.*$
@@ -72,9 +72,15 @@ template:
filemode: '7755'
fixtext: |-
+{{%- if 'ubuntu' in product %}}
+ Configure the systemwide shared library files contained in the directories "/lib", "/lib64", "/usr/lib", and "/usr/lib64" to have mode 0755 or less permissive with the following command:
+
+ $ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' -perm /022 -exec chmod go-w {} +
+{{%- else %}}
Configure the library files to be protected from unauthorized access. Run the following command, replacing "[FILE]" with any library file with a mode more permissive than 755.
$ sudo chmod 755 [FILE]
+{{%- endif %}}
srg_requirement:
{{{ full_name }}} library directories must have mode 755 or less permissive.
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_permissions_library_dirs/tests/lenient_permissions.fail.sh b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_permissions_library_dirs/tests/lenient_permissions.fail.sh
index f95ab977d6ec..d992d957b68f 100644
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_permissions_library_dirs/tests/lenient_permissions.fail.sh
+++ b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/file_permissions_library_dirs/tests/lenient_permissions.fail.sh
@@ -4,7 +4,7 @@ DIRS="/lib /lib64 /usr/lib /usr/lib64"
for dirPath in $DIRS; do
# Limit the test changes to a subset of file in the directory
# Remediation the whole library dirs is very time consuming
-{{% if 'ol' in families or 'rhel' in product %}}
+{{% if 'ol' in families or 'rhel' in product or 'ubuntu' in product %}}
find "$dirPath" -type f -regex ".*\.so" -exec chmod go+w '{}' \;
{{% else %}}
find "$dirPath" -type f -regex ".*\.txt" -exec chmod go+w '{}' \;
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/bash/ubuntu.sh b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/bash/ubuntu.sh
deleted file mode 100644
index 3f6a097a88d0..000000000000
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/bash/ubuntu.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-# platform = multi_platform_ubuntu
-find /lib/ /lib64/ /usr/lib/ /usr/lib64/ \! -gid -{{{ gid_min }}} -type f -exec chgrp --no-dereference root '{}' \;
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/oval/ubuntu.xml b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/oval/ubuntu.xml
deleted file mode 100644
index 37f6972f78d3..000000000000
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/oval/ubuntu.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-$ sudo chgrp root FILE@@ -50,14 +46,13 @@ references: stigid@sle12: SLES-12-010875 stigid@sle15: SLES-15-010355 -ocil_clause: any system wide shared library file is returned and is not group-owned by root{{{ gid_description }}} +ocil_clause: any system wide shared library file is returned and is not group-owned by root ocil: |- - Verify the system-wide shared library files are group-owned by root{{{ gid_description }}} with the following command: + Verify the system-wide shared library files are group-owned by root with the following command: $ sudo find -L /lib /lib64 /usr/lib /usr/lib64 ! -group root -exec ls -l {} \; -{{% if "ubuntu" not in product %}} template: name: file_groupowner vars: @@ -66,21 +61,26 @@ template: - /lib64/ - /usr/lib/ - /usr/lib64/ -{{% if 'ol' in families or 'rhel' in product %}} +{{% if 'ol' in families or 'rhel' in product or 'ubuntu' in product %}} file_regex: ^.*\.so.*$ {{% else %}} file_regex: ^.*$ {{% endif %}} recursive: 'true' gid_or_name: '0' -{{% endif %}} fixtext: |- Configure the system-wide shared library files (/lib, /lib64, /usr/lib and /usr/lib64) to be protected from unauthorized access. - Run the following command, replacing "[FILE]" with any library file not group-owned by root{{{ gid_description }}}. +{{%- if 'ubuntu' in product %}} + Run the following command: + +
$ sudo find /lib /lib64 /usr/lib /usr/lib64 -type f -name '*.so*' ! -group root -exec chgrp root {} +
+{{%- else %}}
+ Run the following command, replacing "[FILE]" with any library file not group-owned by root.
$ sudo chgrp root [FILE]
+{{%- endif %}}
srg_requirement:
- {{{ full_name }}} library files must be group-owned by root{{{ gid_description }}}.
+ {{{ full_name }}} library files must be group-owned by root.
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/excluded_groupowner.pass.sh b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/excluded_groupowner.pass.sh
deleted file mode 100644
index 575ffe353000..000000000000
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/excluded_groupowner.pass.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-# platform = multi_platform_ubuntu
-
-for SYSLIBDIRS in /lib /lib64 /usr/lib /usr/lib64
-do
- if [[ -d $SYSLIBDIRS ]]
- then
- find $SYSLIBDIRS ! -group root -type f -exec chgrp root '{}' \;
- fi
-done
-
-groupadd -r cac_sys
-touch /lib/test_me
-
-chgrp cac_sys /lib/test_me
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/incorrect_groupowner.fail.sh b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/incorrect_groupowner.fail.sh
index c469a2f6e7fa..acb94170fa53 100644
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/incorrect_groupowner.fail.sh
+++ b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/incorrect_groupowner.fail.sh
@@ -2,7 +2,7 @@
# platform = multi_platform_sle,multi_platform_rhel,multi_platform_fedora,multi_platform_ubuntu,multi_platform_ol
groupadd group_test
-{{% if 'ol' in families or 'rhel' in product %}}
+{{% if 'ol' in families or 'rhel' in product or 'ubuntu' in product %}}
for TESTFILE in /lib/test_me.so /lib64/test_me.so /usr/lib/test_me.so /usr/lib64/test_me.so
{{% else %}}
for TESTFILE in /lib/test_me /lib64/test_me /usr/lib/test_me /usr/lib64/test_me
diff --git a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/incorrect_symlink.pass.sh b/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/incorrect_symlink.pass.sh
deleted file mode 100644
index 44616551e68d..000000000000
--- a/linux_os/guide/system/permissions/files/permissions_within_important_dirs/root_permissions_syslibrary_files/tests/incorrect_symlink.pass.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-# platform = multi_platform_ubuntu
-
-groupadd group_test
-
-TESTDIR="/usr/lib64"
-
-mkdir -p "$TESTDIR"
-
-# The check ignores this symlink and results in pass
-ln -s $TESTDIR/missing_test_file $TESTDIR/faulty_symlink
-chgrp -h group_test $TESTDIR/faulty_symlink