Skip to content

Commit c1e6005

Browse files
committed
[Sudoers] Restrict permissions for plcuster-admin user to execute systemctl poweroff only on Ubuntu24.04, as this is the only OS where pcluster-admin will shutdown the node using that command.
1 parent cc2aeb2 commit c1e6005

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
Cmnd_Alias SLURM_COMMANDS = <%= node['cluster']['slurm']['install_dir'] %>/bin/scontrol, <%= node['cluster']['slurm']['install_dir'] %>/bin/sinfo
22
Cmnd_Alias SLURM_HOOKS_COMMANDS = <%= node_virtualenv_path %>/bin/slurm_suspend, <%= node_virtualenv_path %>/bin/slurm_resume, <%= node_virtualenv_path %>/bin/slurm_fleet_status_manager
33
Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown
4-
Cmnd_Alias SYSTEMCTL_POWEROFF = /usr/bin/systemctl poweroff --force
5-
64
<%= node['cluster']['cluster_admin_user'] %> ALL = (root) NOPASSWD: SLURM_COMMANDS
75
<%= node['cluster']['cluster_admin_user'] %> ALL = (root) NOPASSWD: SHUTDOWN
8-
<%= node['cluster']['cluster_admin_user'] %> ALL = (root) NOPASSWD: SYSTEMCTL_POWEROFF
96

107
<%= node['cluster']['slurm']['user'] %> ALL = (<%= node['cluster']['cluster_admin_user'] %>) NOPASSWD:SETENV: SLURM_HOOKS_COMMANDS
8+
9+
<% if node['cluster']['os'] == "ubuntu2404" %>
10+
Cmnd_Alias SYSTEMCTL_POWEROFF = /usr/bin/systemctl poweroff --force
11+
<%= node['cluster']['cluster_admin_user'] %> ALL = (root) NOPASSWD: SYSTEMCTL_POWEROFF
12+
<% end %>

cookbooks/aws-parallelcluster-slurm/test/controls/slurm_users_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,5 +71,9 @@
7171
its('content') { should match %r{Cmnd_Alias SHUTDOWN = /usr/sbin/shutdown} }
7272
its('content') { should match /#{node['cluster']['slurm']['user']} ALL = \(#{node['cluster']['cluster_admin_user']}\) NOPASSWD:SETENV: SLURM_HOOKS_COMMANDS/ }
7373
its('content') { should match %r{Cmnd_Alias SLURM_HOOKS_COMMANDS = #{venv_bin}/slurm_suspend, #{venv_bin}/slurm_resume, #{venv_bin}/slurm_fleet_status_manager} } unless redhat_on_docker
74+
if os_properties.ubuntu2404?
75+
its('content') { should match %r{Cmnd_Alias SYSTEMCTL_POWEROFF = /usr/bin/systemctl poweroff --force} }
76+
its('content') { should match /#{node['cluster']['cluster_admin_user']} ALL = \(root\) NOPASSWD: SYSTEMCTL_POWEROFF/ }
77+
end
7478
end
7579
end

0 commit comments

Comments
 (0)