The Haiku devs auditing the syscalls for permissions and access checks so only root can do nasty things:

The Haiku devs auditing the syscalls for permissions and access checks so only root can do nasty things:
dev.haiku-os.org/ticket/14961
This is an important work for the future multi-user support.
Lets talk about multi-user implementation ITT: everybody knows how is it done on unix-like systems, but is it the best way? Is there any way to make it better? How would a modern, non-legacy, clean multiuser system work in your imagination? What should they do to make it better, safer, nicer, to make the life of the users easier?

Attached: 512080D5-49F5-4BA2-88B2-B241C91BC169.png (316x102, 7K)

Other urls found in this thread:

en.m.wikipedia.org/wiki/Capability-based_security
github.com/haikuports/haikuports
github.com/haiku/haiku?files=1
twitter.com/SFWRedditVideos

Bomp for haiku

Multi user OS is retarded concept for desktop in times when every person has 1 or more devices. Fuck Unix.

the best way is the plan 9/inferno approach, in which there is no root user. instead permissions are granted by the authentication server

Ooh, love this topic.
The best way I’ve seen would probably be capability-based security
>in a system with capabilities, the mere fact that a user program possesses that capability entitles it to use the referenced object in accordance with the rights that are specified by that capability. In theory, a system with capabilities removes the need for any access control list or similar mechanism by giving all entities all and only the capabilities they will actually need.
en.m.wikipedia.org/wiki/Capability-based_security

It's not.
At the very least you need 3 users for an OS: administrator, you and a guest for the occasion when you allow someone else to use your device.
Sitting all the time with admin rights or letting others into your own user is a security nightmare.
>just don't let anyone to access your device
That's a fine approach, but if you have any social life it's going to be not really viable. Like, letting someone your smartphone to make a call, when their own is out of battery or maybe broken is something that just happens sometimes.

i get why a server needs multi user but why does my desktop need it?
also haiku will never be deployed in education/offices either so theres no need for any network multi-users

>Like, letting someone your smartphone to make a call
And your phone has a root, user and guest profile? At least use an example that makes sense to backup your bullshit.
Multiuser matters for security but not because of muh friend snooping through the porn on my desktop.

>At the very least you need 3 users for an OS: administrator, you and a guest for the occasion when you allow someone else to use your device
Why does every OS have to be built for the most general case scenario though? Realistically, normalfags aren't ever going to use anything other than Windows and MacOS anyway. Why not design an OS for power users/developers?

>Being a power user means running with no security protections at all because thats living on the edge, maaan!
Commit sudoku

Will Haiku ever get a C API binding so people can actually make shit for it?
I don't want to fucking use sepples or have to deal with interop'ing to it.

>running with no security protections at all
I didn't say that though, did I?

not him but guest accounts are fucking bloat though. They're simply an outdated concept.
And surely we can come up with something better than root/user, that's nearly half a century old at this point.

>And your phone has a root, user and guest profile? At least use an example that makes sense to backup your bullshit.
I'm not sure how Android handles root, but I'm pretty sure that there is a some kind of a guest mode, either in stock Android or added to some devices by manufacturers.
Even without administratior access, normalfags need a personal and a guest profile.

>And surely we can come up with something better than root/user, that's nearly half a century old at this point.
Indeed:

>but guest accounts are fucking bloat though
You really don't care if your bro sees a pop-up message with your gf sending you suggesive pic of herself while he borrows your device, huh?

What would they need to do on your computer that they can't on their phone?

>normalfag friend needs to look something up on the internet
>but they can't use their phone for whatever reason
>and they can't use their laptop or tablet for whatever reason
>and you don't have your phone or tablet for whatever reason
>so they ask to use your main computer real quick
>"Sure, bro. Just let me shut down everything and sign you in as a guest so you don't accidentally see anything I don't want you too"
Yeah, that seems like a realistic scenario

you cant even open chromium without showing your bookmarks to whoever wants to look up something on your laptop
pic related

Attached: bookmarks.png (687x40, 5K)

Phones are stupidly easy to break nowadays, and maybe they were asking to borrow your phone for a call.
It doesn't have to be your computer they are asking to borrow.
>Just let me shut down everything and sign you in as a guest so you don't accidentally see anything I don't want you too
You don't have to shut down anything and getting guest session up is really fast and easy, whether it's your PC or phone.
Also
>bringing your laptop when you go hang out with friends
>having tablets at all
Why?

you have given 0 rational arguments for why guest accounts should still exist in the current year.
Are you nostalgically attached or something?
And you're so deep in your delusion, that you're now arguing for inconvenience.

The point is that this is just one paradigm and a secure system could definitely be built another way.

For example, what about a system with mandatory access controls, where no processes have full system access. For administrative actions to happen, a secure handover from a less capable process to a more capable process would need to happen. So for example, you'd have a "package management" service/protocol, that only a few processes have rights to send messages to, for packages to be changed a password would be required and after it is correctly entered temporary control over a process capable of changing packages would be granted. Another way to describe this model would be: rather than users and groups, it's as if every application is it's own user and instead of groups you have mandatory lists of files and syscalls each process is allowed to use. Instead of running "sudo apt-get," your shell would have the access to apt-get and apt-get would require authentication to run any commands. Ideally, there'd be no "administrative shell," except for maybe if booted in "rescue mode." A guest account would be replicated by having a guest shell with no access to administrative functions, this could be implemented simply by linking to the normal shell like /bin/guest-sh -> /bin/sh, and in the MAC setup you only grant it very basic access to the system.

It is C++, deal with it.

except you can hide the bookmark bar and disable suggestions from bookmarks and history. Or you could stop being a pussy and just own up to the fact that your a weeaboo that watches porn. Stand up for yourself, fuck man, have some integrity, if you are afraid to admit to parts of your character then you've got some unsolved cognitive dissonance, own up to yourself by either being proud of who you are or becoming different.

>haha i don't want developers to support my OS anyway :^)
ripip

Are you really telling me that you both lead an active social life and never lend your desktop/laptop/phone to anyone (friends/family/coworkers/etc) ever?
I mean, sure, theoretically this kind of thing shouldn't happen when everyone at the very least has their phone on them all the time.
Practically though this shit happens at least once in a month.
If you want an another usecase for it is the set-up of your home media center. Limiting access to certain things is important, especially if you got kids.

haiku is getting memed

Why are B L A T A N T L Y ignoring the very real fact that 95% of middle-class+ people have phones of their own that can do everything a normalfag wants to do with a computer?
i literally can not even remember the last time someone asked to use my computer.
>kids and and a media center
your kids going to guess your sudo password?

OP here.
I imagine the following:
Current Haiku uses packages, which never gets extracted, just mounted. Signing planed for the packages.
Like this it would be possible to create an encrypted automatically growing disk-image for the user home folders (no other place is actually writeable, even for root).
At login the system would unlock and mount the home folder, the disk-image could reside on a remote server too.
Guest login is easy, just create a ramdisk as home and shred it after the logoff.
Any input to this?

I have honestly never let anyone use my main computer before. There has simply never been a need for it.
>If you want an another usecase for it is the set-up of your home media center. Limiting access to certain things is important, especially if you got kids.
Parental controls should be the responsibility of the media applications. Who would want to sign into completely different guest accounts just to change parental controls? That's so silly

>Why are B L A T A N T L Y ignoring the very real fact that 95% of middle-class+ people have phones of their own that can do everything a normalfag wants to do with a computer?
Learn to read you faggot.
I don't ignore it, but modern phones (especially those used by normalfags) are fucking crap that has close to no battery life and is almost so fragile that it can break from wind gently blowing on it.
And even if you assume that phones are always fine, stuff like
>user, can you pass me your laptop, so I could show this clip on a bigger screen?
happens pretty regularly when I hang out with friends.
>i literally can not even remember the last time someone asked to use my computer.
Well, maybe you're lucky.
>your kids going to guess your sudo password?
No, but I want them to watch their 13+ shit without seeing folders with movies/shows I watch with my wife, friends or by myself.

>Any input to this?
incredibly convoluted bullshit.
at this point just have a spare laptop with Qubes installed.

ah yes because when someone breaks their phone, their first thought is they just HAVE TO use their friends computer to look up inane bullshit instead of leaving to go buy a new one, or waiting until they get home later.
Also why the fuck can't you just change ownership of folders to require a sudo on read?

>ah yes because when someone breaks their phone, their first thought is they just HAVE TO use their friends computer to look up inane bullshit instead of leaving to go buy a new one, or waiting until they get home later.
It doesn't even have to be a computer, dipshit.
Guest mode on smartphones is a thing.
>Also why the fuck can't you just change ownership of folders to require a sudo on read?
Less convenient than having just one really simple way to get all your confidential data locked.

>one command and a password is less convenient than having to switch accounts
wew.
So your defense is pretty much
>guest accounts should be a thing because i need to be able to do things my shitty way

Actually this is what OSX does with the guest accounts.

Wtf is wrong with you? The GUI is c++, learn it or create a C wrapper or what with ffi or something and use it, or write GUI-less programs with C.
I am not Haiku dev, so do not extrapolate.

I can also lock certain programs and stuff that usually runs in background this way.
I have no real reason to fuck with password every time I have to access part of my stuff, when I can use a keyboard shortcut + quick re-login without even having to close whatever I'm using at the moment instead.
Why are you trying to fix this problem with hackery, when a fairly elegant solution already exists?

>fairly elegant
it's not, unless we dramatically reinvent userspace and accounts. Also, a whole OS shouldn't bend to the whims of a minority like you.

>Also why the fuck can't you just change ownership of folders to require a sudo on read?
Yeah, just run your whole system on su, that's a great idea.

>wrap idiomatic C++ 98 in C, and then wrap that C wrapper in your actual language
"no". C is the standard language for low-level APIs for a reason. I love haiku, but the devs are REALLY fucking up with this.

>reinvent
>a whole OS shouldn't bend to the whims of a minority like you
Windows, MacOS, Android, GNU/Linux and Unix families of operating systems don't have this problem.
Why should your toy OS ignore a standard feature?

you've literally given 0 solid arguments.
All you've attempted to argue are anecdotal bullshit specific to you. So let me know when you actually have an argument that's not a literal fallacy.

I disagree. You should block access to the data and not to the application using it. They might as well find a replacement for the media player. Even assuming that they won't (kids without permissions to install programs probably won't be creative enough to make it work), I think it's much better to have one central point of verification. You have multiple users and they have different permissions. They are verified just once when they login and not every time they try to open something, that sounds retarded.
>Who would want to sign into completely different guest accounts just to change parental controls?
What scenario are we talking about now? If I was setting up media center, I'd make accounts for my kids. If I want to watch something, I log in and log out after I'm done (potentially just have my PC log in after I log in to the PC).

If we're talking about guest account for occasional lending of a device, yes, I don't see any problem with a guest account. I mean, what the fuck are you people running that you see a problem with locking the account? It's like 2 mouse clicks away and you can just give the laptop away without wondering if you left something on there.

Sure, if you think so.
Let me know when Haiku will be usable outside of VM.

it already is. Web+ could be a bit more stable, but that's about it.
Not everyone is an absolute normie with a wife and kids constantly over their shoulder.

also it's pretty silly you have zero concept of multiple OS's having multiple uses.

What is your problem with C++?

Wouldn't you need users at some point anyway? I mean, you have person A which owns the device and authenticates themselves and person B who just accesses the guest account. What else would you call the thing associated with person A's password if not a user? And then you still need someone called system administrator that installed the system and created these accounts (even if you allowed for administrator capabilities only in rescue mode, they still would need to be authenticated to avoid abuse).

I think what you described is just "finer grained" than users but I can't imagine a system where you can't outline the concept of users. Well, maybe if you verified for each capability separately and users wouldn't set up their password (when having the account setup by administrator) but instead would be given a password for every capability they are allowed to access. But that sounds like a nightmare in a bigger scale, having a separate password for like everything. It's essentially shifting the work that user-based system is doing onto the users themselves.

>C+bloat
>good

It exists.

it's not enjoyable to use.
having to do everything twice.
no actual package manager or build system (meson doesn't count)
and Haiku being in mostly '98(right?), complicates what kind of C++ and features you can use in the first place if you even wanted to.
But if you don't then good luck getting 100% compatibility because no language to my knowledge can even inter-op with c++ 100%.
Whereas if you have a C API, there are no issues, and developers from just about any language can contribute to your OS and write nice things for it.
Go have a look at some of the binding attempts for Haiku, and you'll get why most are now abandoned.

Explain this to me, please, why is it so lunatic idea in your eyes?
As i told this is how osx guest account works, but it is RO, we can make it RW for non-guest accounts.
It is even possible to create a base-package, which will be copied and used, so it will have the basic folders like music, docs, settings, etc. And you will be able to carry the diskimage with you.

Because not having the concept of guest accounts makes this a non-problem

This is no answer, you just shat in your hands while telling us we are stupid if we dont do that.

Read the HaikuBook, C++ is really nice in Haiku.
But what kind of package manager do you mean? Something like npm for c++?
I dont know C, is there anything like that for C?

And what about disk-image based homes for regular users?

>Something like npm for c++?
yes, just about every modern language now has a sane dependency + build tool. And no matter how nice it is, it's still c++.

You’re very attached to the idea of the user metaphor for security. The problem though is that we don’t really have multi-user systems. We have security contexts hacked together using a legacy user model.
How many people use your computer? It’s pretty much just you. What about servers? Surely they truly make use of multiuser, right? Well not in the age of automation, IaaS, and DevOps. All it ends up being is an unprivileged level and a privileged level. Nobody has time to get comfy with a single “mainframe” system because they’re being dynamically spun up, spun down, auto-scaled and load-balanced, etc as more or less computing is required.

I like it as an option.
i think NixOS is also on the right track with its config files.

Also, this system wouldn’t involve
>a password for every capability they are allowed to access.
A password is a type of authentication, but not all authentications are passwords. This can be transparent, like using keys for SSH instead of typing in a password.

Jam is the preferred build system on Haiku, but you can use the Haiku unique makefile-engine (cool!) or cmake, scons, qmake, auto*, anything.
If you need to fight with deps just write a recipe. Gor examples check the HaikuPorts: github.com/haikuports/haikuports

But then you need to authenticate access to those keys, don't you? Wouldn't that essentially be user authentication?

This actually sounds nice.
Would that be hard to implement?

Yes and no. The devs have their plates already full, so while it is not hard, it would take plenty time. And as i am not a Haiku dev i cant tell if my idea would be accepted by the devs or not.

So why should I use a horribly incomplete and perpetual-alpha OS that lacks basic security, when I can use OpenBSD? Nobody programs for BeOS anymore, hardly anyone programs for Haiku enough to port anything useful besides Apache (which is pointless to use on Haiku as there's no security,) plus this adds to the reason why people aren't as willing to fund Haiku as they are to fund ReactOS (since ReactOS came out with more usable features at an earlier time, thus giving investors a reason to invest).

Contrast this to OpenBSD; greater security dependent on a better security model, a decent-sized library of useful programs both native and ported from Linux, a decent amount of financial backing because they came out with better features earlier...

tldr: what makes Haiku better or more useful than other OSes, in your opinion?

You shouldn't use Haiku yet.
For now it's just a project that does stuff differently from Unix and GNU/Linux systems, so it's exciting to see it becoming more mature.
Personally, I see the way Haiku handles graphics compared to other open source projects as a breath of fresh air. I'm also kinda interested in it's kernel.

>You shouldn't use Haiku yet.
So why shill the OS if nobody should use it? What's the point of it existing when nobody's using it enough to encourage it becoming more mature?

>when nobody's using it enough to encourage it becoming more mature?
From what I saw there's a small, but dedicated following, so I'm not really worried on that department.
It made it to beta, so when devs will make security tighter and port some more programs it will be more interesting to look at.
Considering current Linux trends that are being set by Red Hat and Canonical and fading relevance of Unix, I don't think that having Haiku around is completely useless anyway.

The ironic thing is that even though Haiku "made it into beta," ReactOS is still more usable and it's been in perpetual alpha for over a decade now. Just face it; Haiku as a project isn't going to amount to anything until it has a greater following. And that can only be done once the developers focus on the more important things in the OS (including security and overall usefulness through expanding its software library).

Pretty sure that ReactOS still kills your hardware and struggles to do whatever it's supposed to.
Haiku feels fine in comparison.

ReactOS works fine for me, both on bare metal with 32-bit CPU, bare metal with 64-bit CPU and with VM. And for the most part, a lot of software works on it, without needing new stu

Carry on, brave one.
Hopefully your experiences are helpful to the devteam.

"No" C is the standard language api for Unix like operating systems Cnile. Haiku is wiritten in C++ so that's what the api is. Get over it .

haiku is fucking amazing, i hope someday it gets in a state where i can present it to my friends.

Attached: lehukvqo4w731.jpg (2200x1596, 495K)

Does anyone remember when the Haiku general before this one was trolled into oblivion for a couple of weeks? That retard who kept on sperging about his mom not getting him tendies, while he was being egged on by someone else quoting all of his shitposts until there were 20 separate quotes?

The great wall of gringe, that was.

The sad state of Jow Forums

>Gringe
I see what you did there...

>Jow Forumscringe

Soul.

>Haiku has a CoC
>Soul
Also, why are you so pathetic, that you have to wait until your thread's on page 9 to bump it? Nobody's interested in Haiku.

Show us on the doll where the CoC touched you: github.com/haiku/haiku?files=1

Haiku is not interesting, and nobody cares about it.

Thanks for the bump.

well, at least someone's looking into it
there's plenty of ways to handle multi-user, or at the absolute least to handle access control
the straight *nix style "root can do anything" system is a bit of a mess and you'd really want separate administration users for doing various tasks (although this might be hard to deal with in practice -- eg, if a program can directly write data on the disk as a whole, it can be used to jump the gap between administrative contexts)

>i literally can not even remember the last time someone asked to use my computer.
you only know people who don't actually do anything

Haiku has a reasonable selection of ported software, it has an actual user interface that's dramatically more polished than any other FOSS system, period (full disclosure: Be gave them the source for Tracker, the BeOS desktop environment), and it has fairly pleasant APIs for developing new software.
It doesn't use X11 or a lot of old Unix things, but still has POSIX coverage (because some *nix things are pretty useful, and it helps with software portability).

Your phone assigns each program its own Linux user account.
On a higher level,

The Be API is C++.
The Be API has always been C++.

whoops
>On a higher level,
should be
>On a higher level, my phone does support multiple user accounts for different people using the phone.
it's a common feature for families using one device (eg, the kids)