Explanation for newbies: setuid is a special permission bit that makes an executable run with the permissions of its owner rather than the user executing it. This is often used to let a user run a specific program as root without having sudo access.

If this sounds like a security nightmare, that’s because it is.

In linux, setuid is slowly being phased out by Capabilities. An example of this is the ping command which used to need setuid in order to create raw sockets, but now just needs the cap_net_raw capability. More info: https://unix.stackexchange.com/questions/382771/why-does-ping-need-setuid-permission. Nevertheless, many linux distros still ship with setuid executables, for example passwd from the shadow-utils package.

  • uranibaba@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    3 days ago

    You can also create a custom keyboard layout in Linux. From what I have written down, here is how to do it (can’t double check because work computer).

    I suspect this could be X11 only because it is X keyboard extension, pop_OS! didn’t adopt Wayland as early Ubuntu.

    • Start by navigating to /usr/share/X11/xkb/symbols/.
    • Open the file that corresponds to your keyboard layout (I think it is us for American).
    • Add a new layout:
    partial alphanumeric_keys
    xkb_symbols "custom" {
        include "us(basic)" // includes another configuration to build on, see current file you are editing.
    
        name[Group1]="US (custom)"; // will be the name of your configration/layout.
    
        key <LSGT>  { [ greater,        less,               bar,            brokenbar  ] }; // <
        key <SPCE>  { [ space,          space,              nobreakspace,   space      ] }; // Space
        // Add more key maps as you see fit.
    };
    
    • Go to /usr/share/X11/xkb/rules/
    • Locate evdev.xml and base.xml
    • Edit both and look for the following block
    <layout>
      <configItem>
        <name>us</name>
       <!--- some comment --->
    
    • Add the following to both files on the row after the comment:
    <variant>
      <configItem>
        <name>custom</name>
        <description>US (custom)</description>
      </configItem>
    </variant>
    

    You might have to reboot afterwards.