-screen=$(which screen 2>/dev/null)
-if [ ! -z "$screen" ]; then
- # Override SCREENDIR iff screen is not setuid.
- if ! ls -l "$screen" | cut -d ' ' -f 1 | grep s >/dev/null; then
- export SCREENDIR="$HOME/.screen/$HOSTNAME"
+screen=$(find_working screen 2>/dev/null)
+if [ $? = 0 ]; then
+ # Override SCREENDIR iff screen is not setgid (but not under sudo).
+ if [ ! -g "$screen" ]; then
+ if [ -n "$SUDO_USER" ]; then
+ unset SCREENDIR
+ else
+ export SCREENDIR="$HOME/.screen/$HOSTNAME"
+ mkdir -p "$SCREENDIR"
+ fi