Hello fellow lemmings

I am a long-time i3 user and have decided to switch to Sway. I have encountered a weird error which has left me utterly bamboozled.

I am using Ubuntu 24.04 which has gone from 20.04 -> 22.04 -> 24.04. It has Ubuntu-Gnome, i3 and Sway currently installed.

The issue

The error that I’m facing is when I’m using Sway, I simply don’t have sudo access.

This is what the error looks like

$ sudo visudo
[sudo] password for xavier666:
Sorry, user xavier666 is not allowed to execute '/usr/sbin/visudo' as root on <HOSTNAME>.

When I switch back to i3, my permissions are fine for the same user. I have not done any crazy modifications to the sudoer’s file as far as I can remember.

PS: I have added a command to no-sudo xavier666 ALL = NOPASSWD: /usr/bin/brightnessctl

The “fix”

I temporarily solved it by adding xavier666 ALL=(ALL:ALL) ALL to the sudoer’s file.

IMO, I think this should not be required. I don’t remember ever adding the default user to the file for all the installations that I have done. (But this is the first time I’ve installed Sway)

Logs/Outputs

Running sudo -l without the fix (on Sway)

Matching Defaults entries for xavier666 on <HOSTNAME>:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
    use_pty

User xavier666 may run the following commands on <HOSTNAME>:
    (root) NOPASSWD: /usr/bin/brightnessctl

When I run the same command on i3, i get this (ALL : ALL) ALL extra line in the output. And when I run sudo -l with my fix on Sway, (ALL : ALL) ALL is present and the permission issue is fixed.

What is causing Sway to remove the root permission for the user?

Note: I’m just asking for the standard sudo behaviour. I’m not trying to run GUI applications as root.

  • A_norny_mousse
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    9 hours ago

    This goes a little beyond me because I have no idea how gdm would differentiate Xorg or wayland sessions.

    Look into the session files themselves (.desktop) - they have an Exec= line. Then see if that’s maybe just a shell wrapper around something else, e.g.: file /usr/bin/sway and see what it does.

    That’s all I have.

    • xavier666@lemm.eeOP
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      6 hours ago

      For i3, the desktop file is like this (present in /usr/share/xsessions)

      [Desktop Entry]
      Name=i3
      Comment=improved dynamic tiling window manager
      Exec=i3
      TryExec=i3
      Type=Application
      X-LightDM-DesktopName=i3
      DesktopNames=i3
      Keywords=tiling;wm;windowmanager;window;manager;
      

      And sway (present in /usr/share/wayland-sessions)

      [Desktop Entry]
      Version=1.0
      Name=Sway
      Comment=An i3-compatible Wayland compositor
      Exec=/usr/bin/sway
      Type=Application
      DesktopNames=sway
      

      Gdm probably sums up all the DE from both the wayland and x11 sessions.

      There are some files & directories in /etc/gdm3 but I’m too lazy to go through all of them

      Init       PostSession  Prime     config-error-dialog.sh  greeter.dconf-defaults
      PostLogin  PreSession   PrimeOff  custom.conf             Xsession
      

      Thanks for your help.

      • A_norny_mousse
        link
        fedilink
        arrow-up
        1
        ·
        1 hour ago

        but I’m too lazy to go through all of them

        OK. But you did want to solve this just because you’re interested?