And this matters a lot because history is normally only accessible to the current user (and root), but process command line arguments are normally accessible to all users.
Individual units can opt-in to this behaviour with the ProtectProc= option though. But I don't think there's currently a good way to apply it to users' interactive processes.
Hi, great question.
Have not seen it being enabled break anything so far (only some cross user invouse written process monitoring scripts).
Linux has a flag for this for the /proc mountpoint: hidepid=2
Most other users nowadays are likely to be your webserver, your application process, your database, your crawler, and a myriad of other long-running processes.
> What if non-root could see their own processes in detail, but only the program name for other users' processes?
At which point you might as well ask why do you need to see other users processes at all? And indeed, that is an option in grsec. I don't think it causes any major breakage, but there are probably some xkcd #1172 sort of things that break.
curl -H/--header itself also takes a file name prefixed by @, including - for stdin. So you could go curl -H@- <<<'API-Key: Foobar', or if you need to specify multiple sensitive headers, curl -H@<(echo API-Key: Foo) -H@<(echo Pre-Shared: Bar)