Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix in sudo_require_reauthentication #10216

Merged
Original file line number Diff line number Diff line change
@@ -1,25 +1,31 @@
<def-group>
<definition class="compliance" id="{{{ rule_id }}}" version="1">
{{{ oval_metadata("'Ensure sudo timestamp_timeout is appropriate - sudo timestamp_timeout") }}}
<criteria comment="The timestamp_timeout should be configured" >
<criteria comment="The timestamp_timeout should be configured" operator="AND">
<criterion comment="check configuration in /etc/sudoers" test_ref="test_sudo_timestamp_timeout" />
<criterion comment="check for - sign in configuration" test_ref="test_sudo_timestamp_timeout_no_signs" />
</criteria>
</definition>

<!-- Define 1st test for sudo timestamp. -->
<ind:textfilecontent54_test check="all" check_existence="only_one_exists" comment="check correct configuration in /etc/sudoers" id="test_sudo_timestamp_timeout" version="1">
<ind:object object_ref="obj_sudo_timestamp_timeout"/>
<ind:state state_ref="state_sudo_timestamp_timeout" />
</ind:textfilecontent54_test>

<!-- Define 2nd test for sudo timestamp. -->
<ind:textfilecontent54_test check="all" check_existence="none_exist" comment="check correct configuration in /etc/sudoers" id="test_sudo_timestamp_timeout_no_signs" version="1">
<ind:object object_ref="obj_sudo_timestamp_timeout_no_signs"/>
</ind:textfilecontent54_test>

<ind:textfilecontent54_object id="obj_sudo_timestamp_timeout" version="1">
<ind:filepath operation="pattern match">^/etc/sudoers(\.d/.*)?$</ind:filepath>
<ind:pattern operation="pattern match">^[\s]*Defaults[\s]+timestamp_timeout[\s]*=[\s]*([-]?[\d]+)$</ind:pattern>
<ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
<ind:filepath operation="pattern match">^\/etc\/(sudoers|sudoers\.d\/.*)$</ind:filepath>
<ind:pattern operation="pattern match">^[\s]*Defaults[\s]+timestamp_timeout[\s]*=\s*[+]?(\d*\.\d+|\d+\.\d*|\d+)$</ind:pattern>
<ind:instance datatype="int">1</ind:instance>
</ind:textfilecontent54_object>

<ind:textfilecontent54_state id="state_sudo_timestamp_timeout"
version="1">
<ind:subexpression datatype="int" operation="greater than or equal">0</ind:subexpression>
</ind:textfilecontent54_state>

<ind:textfilecontent54_object id="obj_sudo_timestamp_timeout_no_signs" version="1">
<ind:filepath operation="pattern match">^\/etc\/(sudoers|sudoers\.d\/.*)$</ind:filepath>
<ind:pattern operation="pattern match">^[\s]*Defaults[\s]+timestamp_timeout[\s]*=\s*[\-](\d*\.\d+|\d+\.\d*|\d+)$</ind:pattern>
<ind:instance datatype="int">1</ind:instance>
</ind:textfilecontent54_object>
</def-group>
Original file line number Diff line number Diff line change
Expand Up @@ -64,3 +64,5 @@ fixtext: |-
Remove any duplicate or conflicting lines from /etc/sudoers and /etc/sudoers.d/ files.

srg_requirement: '{{{ full_name }}} must require re-authentication when using the "sudo" command.'

platform: package[sudo]
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Remove Defaults timestamp_timeout from sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=3/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=3" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=3/' /etc/sudoers
else
echo "Defaults timestamp_timeout=3" >> /etc/sudoers
fi

# Remove Defaults timestamp_timeout from /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=0/' /etc/sudoers
else
echo "Defaults timestamp_timeout=0" >> /etc/sudoers
fi

# Remove Defaults timestamp_timeout from /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Remove Defaults timestamp_timeout from sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=0/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=0" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=+0/' /etc/sudoers
else
echo "Defaults timestamp_timeout=+0" >> /etc/sudoers
fi

# Remove Defaults timestamp_timeout from /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=+3/' /etc/sudoers
else
echo "Defaults timestamp_timeout=+3" >> /etc/sudoers
fi

# Remove Defaults timestamp_timeout from /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Remove Defaults timestamp_timeout from sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=+3/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=+3" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Remove Defaults timestamp_timeout from sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=+0/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=+0" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout = +2.5/' /etc/sudoers
else
echo "Defaults timestamp_timeout = +2.5" >> /etc/sudoers
fi

# Remove Defaults timestamp_timeout from /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Remove Defaults timestamp_timeout from sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout = +2.5/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout = +2.5" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,3 @@
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers
fi

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash
# packages = sudo

# Remove Defaults timestamp_timeout from /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers
fi

# Remove Defaults timestamp_timeout from /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
# packages = sudo

if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=3/' /etc/sudoers
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=-1/' /etc/sudoers
else
echo "Defaults timestamp_timeout=-1" >> /etc/sudoers
echo "Defaults timestamp_timeout=-1" >> /etc/sudoers
fi

echo "Defaults timestamp_timeout=3" > /etc/sudoers.d/00-complianceascode-test.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=0/' /etc/sudoers
else
echo "Defaults timestamp_timeout=0" >> /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=-1/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=-1" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=-1/' /etc/sudoers
else
echo "Defaults timestamp_timeout=-1" >> /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=0/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=0" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=1/' /etc/sudoers
else
echo "Defaults timestamp_timeout=1" >> /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=3/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=3" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=0/' /etc/sudoers
else
echo "Defaults timestamp_timeout=0" >> /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=3/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=3" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=3/' /etc/sudoers
else
echo "Defaults timestamp_timeout=3" >> /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=3/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=3" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Remove Defaults timestamp_timeout from sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers
fi

# Set Defaults timestamp_timeout in /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=-3/' /etc/sudoers.d/00-complianceascode-test.conf
else
echo "Defaults timestamp_timeout=-3" >> /etc/sudoers.d/00-complianceascode-test.conf
fi
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
# packages = sudo

# Set Defaults timestamp_timeout in /etc/sudoers
if grep -q 'timestamp_timeout' /etc/sudoers; then
sed -i 's/.*timestamp_timeout.*/Defaults timestamp_timeout=-3/' /etc/sudoers
else
echo "Defaults timestamp_timeout=-3" >> /etc/sudoers
fi

# Remove Defaults timestamp_timeout from /etc/sudoers.d/00-complianceascode-test.conf
if grep -q 'timestamp_timeout' /etc/sudoers.d/00-complianceascode-test.conf; then
sed -i '/.*timestamp_timeout.*/d' /etc/sudoers.d/00-complianceascode-test.conf
fi