[Bug 2131153] [NEW] wrong /dev/pts owner for login shell (and $HOME)

Jonas Jelten 2131153 at bugs.launchpad.net
Wed Nov 12 14:47:15 UTC 2025


Public bug reported:

sudo-rs doesn't set a login shells /dev/pts owner correctly and doesn't
set its $HOME, while sudo.ws does.

sudo.ws:

jj at host % lxc exec canonical -- sudo.ws -i -u ubuntu
ubuntu at canonical ~ % pwd
/home/ubuntu
ubuntu at canonical ~ % echo $HOME
/home/ubuntu
ubuntu at canonical ~ % tty
/dev/pts/4
ubuntu at canonical ~ % ls -la /dev/pts/4
crw--w---- 1 ubuntu tty  136, 4 Nov 12 15:37 4

sudo-rs:

jj at host % lxc exec canonical -- sudo-rs -i -u ubuntu
canonical% pwd
/home/ubuntu
canonical% echo $HOME
/root
canonical% tty
/dev/pts/4
ubuntu at canonical ~ % ls -l /dev/pts/4
crw--w---- 1 root tty  136, 4 Nov 12 15:28 4

two bugs in sudo-rs:
- pty owner is wrong (should be the login user, not root)
- HOME is not set (it is in env_keep) (and it works with: lxc exec canonical -- sudo-rs HOME=/home/ubuntu -i -u ubuntu)

correct pty owning is important, otherwise e.g. gpg-agent can't show
pinentry on the terminal where gpg was invoked on!

** Affects: rust-sudo-rs (Ubuntu)
     Importance: Undecided
         Status: New

** Description changed:

- sudo-rs doesn't set a login shells PTY ownser correctly and doesn't set
+ sudo-rs doesn't set a login shells PTY owner correctly and doesn't set
  its $HOME, while sudo.ws does.
  
  sudo.ws:
  
  jj at host % lxc exec canonical -- sudo.ws -i -u ubuntu
  ubuntu at canonical ~ % pwd
  /home/ubuntu
  ubuntu at canonical ~ % echo $HOME
  /home/ubuntu
  ubuntu at canonical ~ % tty
  /dev/pts/4
- ubuntu at canonical ~ % ls -la /dev/pts/4                                                                                                                                                                                                                                                                               
+ ubuntu at canonical ~ % ls -la /dev/pts/4
  crw--w---- 1 ubuntu tty  136, 4 Nov 12 15:37 4
- 
  
  sudo-rs:
  
  jj at host % lxc exec canonical -- sudo-rs -i -u ubuntu
  canonical% pwd
  /home/ubuntu
  canonical% echo $HOME
  /root
  canonical% tty
  /dev/pts/4
  ubuntu at canonical ~ % ls -l /dev/pts/4
  crw--w---- 1 root tty  136, 4 Nov 12 15:28 4
  
  two bugs in sudo-rs:
  - pty owner is wrong (should be the login user, not root)
  - HOME is not set (it is in env_keep) (and it works with: lxc exec canonical -- sudo-rs HOME=/home/ubuntu -i -u ubuntu)
  
- 
- correct pty owning is important, otherwise e.g. gpg-agent can't show pinentry on the terminal where gpg was invoked on!
+ correct pty owning is important, otherwise e.g. gpg-agent can't show
+ pinentry on the terminal where gpg was invoked on!

** Summary changed:

- login shell doesn't own pts and set homedir
+ wrong /dev/pty owner for login shell (and $HOME)

** Summary changed:

- wrong /dev/pty owner for login shell (and $HOME)
+ wrong /dev/pts owner for login shell (and $HOME)

** Description changed:

- sudo-rs doesn't set a login shells PTY owner correctly and doesn't set
- its $HOME, while sudo.ws does.
+ sudo-rs doesn't set a login shells /dev/pts owner correctly and doesn't
+ set its $HOME, while sudo.ws does.
  
  sudo.ws:
  
  jj at host % lxc exec canonical -- sudo.ws -i -u ubuntu
  ubuntu at canonical ~ % pwd
  /home/ubuntu
  ubuntu at canonical ~ % echo $HOME
  /home/ubuntu
  ubuntu at canonical ~ % tty
  /dev/pts/4
  ubuntu at canonical ~ % ls -la /dev/pts/4
  crw--w---- 1 ubuntu tty  136, 4 Nov 12 15:37 4
  
  sudo-rs:
  
  jj at host % lxc exec canonical -- sudo-rs -i -u ubuntu
  canonical% pwd
  /home/ubuntu
  canonical% echo $HOME
  /root
  canonical% tty
  /dev/pts/4
  ubuntu at canonical ~ % ls -l /dev/pts/4
  crw--w---- 1 root tty  136, 4 Nov 12 15:28 4
  
  two bugs in sudo-rs:
  - pty owner is wrong (should be the login user, not root)
  - HOME is not set (it is in env_keep) (and it works with: lxc exec canonical -- sudo-rs HOME=/home/ubuntu -i -u ubuntu)
  
  correct pty owning is important, otherwise e.g. gpg-agent can't show
  pinentry on the terminal where gpg was invoked on!

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to rust-sudo-rs in Ubuntu.
https://bugs.launchpad.net/bugs/2131153

Title:
  wrong /dev/pts owner for login shell (and $HOME)

Status in rust-sudo-rs package in Ubuntu:
  New

Bug description:
  sudo-rs doesn't set a login shells /dev/pts owner correctly and
  doesn't set its $HOME, while sudo.ws does.

  sudo.ws:

  jj at host % lxc exec canonical -- sudo.ws -i -u ubuntu
  ubuntu at canonical ~ % pwd
  /home/ubuntu
  ubuntu at canonical ~ % echo $HOME
  /home/ubuntu
  ubuntu at canonical ~ % tty
  /dev/pts/4
  ubuntu at canonical ~ % ls -la /dev/pts/4
  crw--w---- 1 ubuntu tty  136, 4 Nov 12 15:37 4

  sudo-rs:

  jj at host % lxc exec canonical -- sudo-rs -i -u ubuntu
  canonical% pwd
  /home/ubuntu
  canonical% echo $HOME
  /root
  canonical% tty
  /dev/pts/4
  ubuntu at canonical ~ % ls -l /dev/pts/4
  crw--w---- 1 root tty  136, 4 Nov 12 15:28 4

  two bugs in sudo-rs:
  - pty owner is wrong (should be the login user, not root)
  - HOME is not set (it is in env_keep) (and it works with: lxc exec canonical -- sudo-rs HOME=/home/ubuntu -i -u ubuntu)

  correct pty owning is important, otherwise e.g. gpg-agent can't show
  pinentry on the terminal where gpg was invoked on!

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rust-sudo-rs/+bug/2131153/+subscriptions




More information about the foundations-bugs mailing list