Future and impact of ongoing projects in Linux world
Xen
list at xenhideout.nl
Sun Oct 9 11:56:54 UTC 2016
Colin Law schreef op 09-10-2016 9:28:
> On 8 October 2016 at 23:58, Xen <list at xenhideout.nl> wrote:
>> Colin Law schreef op 08-10-2016 18:29:
>>>
>>> On 8 October 2016 at 17:21, Xen <list at xenhideout.nl> wrote:
>>>>
>>>> Ralf Mardorf schreef op 06-10-2016 12:42:
>>>>>
>>>>>
>>>>> Just a very laste note.
>>>>>
>>>>> On Wed, 2016-10-05 at 22:29 +0200, Xen wrote:
>>>>>>
>>>>>>
>>>>>> >> In Windows
>>>>>>
>>>>>> Yes you conveniently break off my statement but (I had to look for
>>>>>> it)
>>>>>> it was about something that has *nothing* to do with security as
>>>>>> it
>>>>>> dealth with network shares.
>>>>>
>>>>>
>>>>>
>>>>> Yes, you mentioned Windows allows to do this and that, but Linux
>>>>> doesn't, so I pointed out, that Windows is insecure and Linux
>>>>> isn't. I
>>>>> assume causality. There are reasons that Linux does work different
>>>>> to
>>>>> Windows.
>>>>
>>>>
>>>>
>>>> And so whenever Linux can't do something, it is for security? Don't
>>>> make
>>>> me
>>>> laugh.
>>>
>>>
>>> I think there is a difference between *can't* meaning is not able to
>>> and *won't allow* meaning there is something specifically stopping
>>> that from happening. The *won't allow* features are generally for
>>> security reasons.
>>
>>
>> A root user also cannot do the things just mentioned.
>>
>> The required software does not exist, for the most part.
>>
>> There are also no security considerations whatsoever pertaining to the
>> local
>> system regarding the mounting of remote network shares on a user
>> supplied
>> home directory or equivalent. It is utter bull. You can make such
>> generalized statements all you want but I hear nothing that actually
>> addresses the topic.
>
> I was not commenting on any particular topic, merely pointing out that
> that Ralf (I think) said there are some things that Linux "does not
> allow" and you answered this with a post referring to things that
> Linux "can't" do and the two things are not the same. I also stated
> that things that Linux will not allow are generally security related.
>
> Is any of that untrue?
You might as well state that the sun is not green and that might also
not be untrue. But the question is whether that is relevant or related
or whether it is a showstopper.
These generalized statements are only meant to instill doubt in people
as to the validity of what has just been said.
Someone says "Linux can still not do this thing" and someone else says
"Linux is not Windows" as if that answers the thing.
If this topic at hand has *nothing* to do with security, then mentioning
security as a reason for certain features not to exist, is not a valid
thing to mention at all. It merely makes people believ "Oh, that's why,
I better stop complaining, there are good reasons for this." No, there
aren't. That was not valid.
Of course, the question between what a user is allowed to do (no gray
area) and what an admin is allowed to do, IS a security related
question. But consistently, current, we find that even when security is
*not* at play, we still cannot do a certain thing. After all, something
that is not possible quickly becomes possible when you use sudo. So why
can't we?
The answer lies in the fact that many system settings are system-wide
and that there is barely any infrastructure to keep settings per user.
That is what I had wanted to mention... and the example of mounting
personal network resources is actually something that has no reason
whatsoever as to why it cannot be done with a setuid program in complete
safety as the setuid program can simply check for user permissions
before mounting. The mount program does the same: when it is in fstab,
it is allowed, but when it is not in fstab, it is suddenly not allowed.
That doesn't make much sense, particularly if we were to be talking
about a mount point owned by the user, and when there are not actually
any system resources at play internally in the system, that are at risk
of being accessed (and perverted or destroyed). User mounting fails when
the user does not have access (write access) to the mount point. That
could be the same for network mounts, you know.
Dolphin et. al. already can access remote shares, they just cannot mount
them. There is the ability to automatically mount stuff in
/media/user/*, but this is a managed infrastructure where the user can't
write, the user directory is actually owned by root.
It is also not a very convenient place to access, these days. With mount
namepaces we could easily have per-user mount points. But the point was,
before I started editing this, that the /media structure is not actually
user-editable or user-configurable. There is no place wherever that can
remember these things, unless it was in the file manager, but that is
not a good place to remember anything "system wide" or even "user wide".
We can create high level solutions to these problems but where does that
leave the non-GUI user?
Any good solution is going to have to be a non-GUI solution in the first
place, that can then be managed by a GUI.
And the only facility that is needed to begin with is to mount network
shares by a user without any root rights to a directory owned or
controlled by the user.
Why has this traditionally been a problem? Because NFS shares are
system-controlled and they depend on the inability of a regular user to
mount a filesystem for their security -- they leverage security issues
to their clients. The client is responsible for the security of the
server. Bad design.
Regardless on a Linux system the ordinary user would not be able to
access files on the NFS server that did not coincide with its own user
ID on the local system.
The NFS system is just another example of bad design, but it is going
too far to discuss that here.
But it is another example of making the system the entire focus point
and not the user. The weight of Linux lies on the system, and not on the
user, and that is the problem. 90% of Linux weighs on the System. In
Windows, it is maybe 50-50, mostly because of what the user can't do,
but should be allowed (such as the intricate web of file permissions
that is such as mess these days).
> I was not commenting on any particular topic, merely pointing out that
> that Ralf (I think) said there are some things that Linux "does not
> allow" and you answered this with a post referring to things that
> Linux "can't" do and the two things are not the same. I also stated
> that things that Linux will not allow are generally security related.
>
> Is any of that untrue?
Linux allows mostly anything with a sudo password so that is untrue.
Even when it allows it, it still cannot do it. Using sudo is so easy
(and at the same time so annoying) that the full power of the super user
is at all times available, just very inconvenient to use.
You can use sudo to wipe your /usr within a second, but you cannot mount
a samba share in a convenient location no matter how hard you try. So it
is not a question of "allowance" but /ability/ because "allowance" is
EASY!.
Ralf said that my "Linux can't" are actually "Linux does not allow" so
you are turning it completely around here; the call is to Ralf to prove
that "can't do" is actually "doesn't allow", not to me to prove that
"doesn't allow" is actually "can't do". Or actually, if you are going to
berate me for linking the two, the fault is on someone else.
There is nothing Linux does not allow. Yes, present day RM will not
allow you to "rm -rf /" without an extra option. That's about it. You
are allowed to destroy your system all you want and it frequently
happens. There is no safety and safeguards at all, seeing the amount of
times you need to use sudo precisely /because/ the user is disallowed so
many things, but guess what, they are the SAME PERSON.
The inability of the regular user to do ANYTHING *mandates* the constant
use of sudo which defeats the ENTIRE separation you have been trying to
create. It mandates using *weak* user passwords which renders root
completely accessible to anyone who knows the account and has means to
crack it. The system generally protects against elevating the user
without a user password but a keylogger can be run without any sense of
privilege and so your user password is obtained within seconds to
minutes of you using the system in that sense.
The sudo password is no protection whatsoever and you might as well make
it a token "yes".
Basically, anyone who can crack your user account will have root access
within a very short time of you using the system. If you don't believe
me, you can download something like PyKeyLogger, which I just did to
prove the point.
My user password is now stored in unencrypted form on my system. Just
like that. Requires no user interface, just starting a service in the
background by the user itself (or its account).
So where is your great security now, you know. Where is your
disallowance now. There is none. If you are in the sudo group, there is
none.
So yes, "does not allow" and can't do are different things, but that was
the point Ralf was trying to blend. Linux allows everything, but still
can't do much (of user experience). Unless you are a server (and Linux
was designed for servers, in that sense) you will have no *actual*
separation between user and root. And I will tell you that on my
servers, I also have sudo rights.
With sudo and the ability to run any keylogger the actual separation
between user and root is /illusory/.
There *is* no separation if you are in the sudo group, it is just very
inconvenient to have to type your password all the time. You know full
well that a login can be scripted and so can a sudo prompt.
So:
- Linux allows everything
- Linux still cannot do some very basic user things.
And disallowing the user of keyloggers is also no solution, if you
venture there.
The problem is the weight placed on the system user (administrator)
while granting the actual user very few rights. This mandates the
constant use of sudo to do anything and this causes the actual
administrator account to become very accessible.
This is reflected in the inability of the user to make system-wide
changes (or at least reflected on his own user) or to have a way to
store configuration data for such changes (that would then still need to
be effectuated using a sudo or setuid program).
There is simply no configuration infrastructure for anything and what
SystemD can do today is a new thing. Windows has always had a "local
system" "current user" separation in the registry, we don't. Yes, there
are many places where you can configure stuff on a per-user account, but
apart from running unprivileged containers I haven't seen much of it.
But I think it is pretty much a proven fact that the "security" of a
Linux system is a farce. The system is no more secure than the main user
account.
And the only reason you think Linux is secure is because it is not
getting targetted by malware. Linux has at most 3% of the desktop
market, is what they say. Meanwhile devices everywhere are getting
hacked and the recent attack on security researcher Brian Krebs came
mostly from IoT devices all running Linux. He was hit by an attack so
large (620 Gbps) that his hosting provider (Akamai) couldn't cope with
it and shut his website down ;-). Now Google has taken it over promising
to be able to take the load ;-).
Linux is at 2.23% according to netmarketshare.com. You have 1/40 the
share Windows has. Windows is forty times more popular!
I mean let that dawn on you, you know. You can claim you are all so
amazing (and that I would be, if I use it, which I do of course) but the
stark reality is that for everyone of you there are 39 other people who
are using Windows and that is not counting the Mac even (at a mere
7.01%) so in total for every Linux user there are almost 44 people using
something else.
More information about the Ubuntu-devel-discuss
mailing list