sudo -u needs escaped hash when /usr/lib/pm-utils/sleep.d/01PulseAudio uses bash

Bug #414385 reported by Christoph Kurrat
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pulseaudio (Ubuntu)
Fix Released
Undecided
Daniel T Chen

Bug Description

Description: Ubuntu 9.04
Release: 9.04

pm-utils:
  Installed: 1.2.2.4-0ubuntu4
  Candidate: 1.2.2.4-0ubuntu4
  Version table:
 *** 1.2.2.4-0ubuntu4 0
        500 http://de.archive.ubuntu.com jaunty/main Packages
        100 /var/lib/dpkg/status

pulseaudio:
  Installed: 1:0.9.14-0ubuntu20.2
  Candidate: 1:0.9.14-0ubuntu20.2
  Version table:
 *** 1:0.9.14-0ubuntu20.2 0
        500 http://de.archive.ubuntu.com jaunty-updates/main Packages
        500 http://security.ubuntu.com jaunty-security/main Packages
        100 /var/lib/dpkg/status
     1:0.9.14-0ubuntu20 0
        500 http://de.archive.ubuntu.com jaunty/main Packages

I am using /bin/bash instead of /bin/dash as /bin/sh

=================================

Using the command "sudo pm-suspend", only the screen is locked.

This seems to be caused by /usr/lib/pm-utils/sleep.d/01PulseAudio

From the /var/log/pm-suspend.log:
+ suspend_pulse
++ get_pulse_users
+++ ps aux
+++ awk '/\/usr\/bin\/pulseaudio --start/ {print $1}'
++ echo 1000
+ for i in '$(get_pulse_users)'
+ sudo -H -u 1000 pactl suspend-sink 1
+ sudo -H -u 1000 pactl suspend-source 1
+ hook_exit_status 1

executing sudo -H -u 1000 pactl suspend-sink 1 from a root-console resulted in:

sudo: no passwd entry for 1000!

man sudo told me, that the -u flag has to be used with the username or the uid preceded by an escaped hash symbol (\#)

This does not seem to be the case using dash.

Changing the four occurrences of the sudo -u call in 01PulseAudio solved the problem. This fix does work with dash, too.

Revision history for this message
Christoph Kurrat (c.kurrat) wrote :
Revision history for this message
Christoph Kurrat (c.kurrat) wrote :
Revision history for this message
Daniel T Chen (crimsun) wrote :

Great catch, thanks!

Changed in pulseaudio (Ubuntu):
assignee: nobody → Daniel T Chen (crimsun)
status: New → Fix Committed
summary: - pm-suspend does not work, caused by /usr/lib/pm-
- utils/sleep.d/01PulseAudio
+ sudo -u needs escaped hash when /usr/lib/pm-utils/sleep.d/01PulseAudio
+ uses bash
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package pulseaudio - 1:0.9.16~test5-0ubuntu1

---------------
pulseaudio (1:0.9.16~test5-0ubuntu1) karmic; urgency=low

  * New upstream release
  * debian/patches/0050-backport-git-post-test4.patch: drop
  * debian/patches/0050-revert-pacmd-poll-argv.patch: revert pacmd
    changesets due to excessive cpu usage (poll()) with resume:
    - aae7054b1c442e62cc1154d15a4b7a569d60d8f4
    - 5fcb8a3c0838a4ecdb00a0af09b6e1a358b114d0
  * debian/01PulseAudio: Escape hash when passed to sudo -u
    (LP: #414385). Thanks, Christoph Kurrat and Dana Goyette!
  * debian/pulseaudio.init: Add NetworkManager to
    Should-St{art,op} to fix sink/source publishing with Avahi
    (LP: #413443). Thanks, Martin-Éric Racine!

 -- Daniel T Chen <email address hidden> Wed, 19 Aug 2009 17:43:48 -0400

Changed in pulseaudio (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.