diff options
Diffstat (limited to 'debian/openssh-client.postinst')
-rw-r--r-- | debian/openssh-client.postinst | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/debian/openssh-client.postinst b/debian/openssh-client.postinst new file mode 100644 index 0000000..dd4d95a --- /dev/null +++ b/debian/openssh-client.postinst @@ -0,0 +1,48 @@ +#!/bin/sh +set -e + +action="$1" + +umask 022 + + +update_ssh_group_name() { + # The _ssh group used to be called ssh, but that could clash with + # locally-created user accounts. Since this only exists as an + # otherwise-empty group to which ssh-agent is installed setgid, it's + # easy to rename. + if getent group ssh >/dev/null && ! getent group _ssh >/dev/null; then + groupmod -n _ssh ssh + fi +} + +set_ssh_agent_permissions() { + if ! getent group _ssh >/dev/null; then + addgroup --system --quiet --force-badname _ssh + fi + if ! dpkg-statoverride --list /usr/bin/ssh-agent >/dev/null; then + chgrp _ssh /usr/bin/ssh-agent + chmod 2755 /usr/bin/ssh-agent + fi +} + +remove_obsolete_alternatives() { + update-alternatives --remove rcp /usr/bin/scp + update-alternatives --remove rlogin /usr/bin/slogin + update-alternatives --remove rsh /usr/bin/ssh +} + + +if [ "$action" = configure ]; then + if dpkg --compare-versions "$2" lt-nl 1:8.4p1-6~; then + update_ssh_group_name + fi + set_ssh_agent_permissions + if dpkg --compare-versions "$2" lt-nl 1:9.1p1-1~; then + remove_obsolete_alternatives + fi +fi + +#DEBHELPER# + +exit 0 |