I haven't really used Linux, but I feel it might be useful for a potential project. Is it possible, and how doable is it, to have a password locked admin account and an open user account which is heavily restricted on what they can do? As in, not even browse files. Preferrably only desktop access where they can launch the apps placed there. Which Linux would be the best for this while still being on the easier side to figure out? I do understand tech somewhat well and quite enjoy problem solving, so doesn't need to be ELI5 territory.

  • drugo@sh.itjust.works
    link
    fedilink
    arrow-up
    29
    ·
    edit-2
    1 year ago

    Yeah, Linux was built as a multi-user system, so user and group permissions have always been a core aspect of it. The "password locked admin account" is just the root user, although you should maybe leave that as a "failsafe" account and create a separate user with sudoer permissions. Every file and folder in Linux has an owner and read/write/execute permissions for the owner, members of its group, and others. By default, users are limited to their own home folder (/home/username, where folders like Documents are stored) and a handful of world-writable locations (like /tmp) If you need more specific permissions, ACLs are also available. Or SELinux.

    The biggest difference regarding distribution choice is that some distros ship with SELinux enabled, while most don't. For everything else there's not much difference, so maybe start with Debian for its community support/resources?

    • Hedgehawk@lemmy.worldOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Thanks for the advice! The premission stuff sounds perfect. So by default, basic account can't really mess anything up, even if it's a tech literate person using it?

      • vidarh@lemmy.world
        link
        fedilink
        arrow-up
        7
        ·
        edit-2
        1 year ago

        In theory if there are no security holes, a user account can only mess up its own account.

        Note that what steps you want to take will really depend on who these users are and what you want to achieve. There's a vast chasm between allowing in, say, friends or colleagues, vs. letting random people on the internet access it. The latter will mean someone will intentionally look for exploits, which means e.g. regularly applying security updates becomes far more pressing.

        If you are letting in random strangers, I'd look into only giving them access within a separate container or ideally virtual machine per user as an extra precaution unless what you're making available is very stripped down.

        • Hedgehawk@lemmy.worldOP
          link
          fedilink
          arrow-up
          4
          ·
          1 year ago

          From past experiences, the worst I'm expecting is kids that think they know what hacking is because of some whacky Tiktok or Youtube video they saw. So there may be some intention to mess with things, it's just not very likely they truly know what they're doing. There won't be internet involved, hopefully.

          I like the idea of a separate container or the like, will need to look into it, thanks.

          • vidarh@lemmy.world
            link
            fedilink
            arrow-up
            6
            ·
            1 year ago

            If it's not connected to the internet, that certainly does take away a significant cause of problems. Good luck

      • drugo@sh.itjust.works
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        Correct, users that are not explicitly configured as sudoers are limited both in files they can access and commands they can run.

  • makeasnek@lemmy.ml
    link
    fedilink
    arrow-up
    9
    ·
    edit-2
    1 year ago

    There are several Linux distributions specifically made for "kiosk" type applications. I don't have any specific ones to suggest, but if you search "Linux distro for kiosk" that should return plenty of results. Might be easier to use one of those to suit your needs than modifying a normal distro like Debian, Fedora, Ubuntu, etc

    • Hedgehawk@lemmy.worldOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      I'll have to see if they'll fit better. It all really depends what way the project ends up going. Thanks for the suggestion!

      • rufus@discuss.tchncs.de
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        1 year ago

        Yeah, came here to also say this is called Kiosk mode. You can also not have the filesystem writable and only have user files in (volatile/temporary) memory and everything set back to default once the user logs out. This is used in libraries and on computers in schools. Like a "Live-CD". And in my library the computer just logs out the user after 5 minutes of inactivity. Clears everything, sets everything back to default, opens the browser fresh with the homepage of the library.

        The concept with the files in RAM ins usually called 'ramdisk'. It is a virtual filesystem on top of the write-protected one that doesn't ever change.

        I think you can also prevent write access in general, but there are some caveats to that. Depends on the use-case.

  • hottari@lemmy.ml
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    Gnome has a feature in the settings for selecting which current applications can be made available to other users. I think it may be a flatpak only feature though.

    Also another user will not be able to access another user's files if they are encrypted with LUKS or systemd-homed.

  • RegalPotoo@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year ago

    Along with the restrictions others have mentioned, you could look at running your system as a "live" install:

    • Actual OS boots directly off media like a USB stick or DVD
    • Operating system is mounted "read only" - even the super admin can't change files in the root partition
    • Even if a clever user finds a way to run programs, their changes don't persist after a reboot
    • If you need some persistence (eg, allowing users to save documents) you could mount a network share as the /home partition, but mount it "noexec" so if users manage to download programs from the internet, they aren't able to run them
  • bionicjoey@lemmy.ca
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago

    "Cannot even browse files" could imply being unable to run binaries like a shell. Could you expand a bit on your desired use case?

    • Hedgehawk@lemmy.worldOP
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      Poor wording on my part. Simply don't want them to excecute anything I don't want them to or get into some directories. Access to something like My Files would be fine and in some cases may be needed, but nothing past that.

      • bionicjoey@lemmy.ca
        link
        fedilink
        arrow-up
        3
        ·
        1 year ago

        Check out bash restricted mode. Try running man bash and find the section RESTRICTED SHELL