<story><title>Moved ~/.local/share/steam. Ran steam. It deleted everything owned by user</title><url>https://github.com/ValveSoftware/steam-for-linux/issues/3671</url></story><parent_chain><item><author>Chris_Newton</author><text>This seems like yet another good example of why robust application-level access control would be a helpful thing to build into modern operating systems, in addition to the typical user-based controls. This may have been both a rookie mistake and a regrettable failure of code review processes, but in any case it simply shouldn’t be possible for an application running on a modern system to wipe out all user data without warning in such a sweeping way.&lt;p&gt;I have often made this argument in the context of sandboxing communications software like browsers and e-mail clients, where it is relatively unusual to need access to local files except for their own data. In that context, restricting access to other parts of the filesystem unless explicitly approved would be a useful defence against security vulnerabilities being exploited by data from remote sources. It’s hard to encrypt someone’s data and hold it for ransom or to upload sensitive documents if your malware-infected process gets killed the moment it starts poking around where it has no business being.&lt;p&gt;More generally, I see no reason that we shouldn’t limit applications’ access to any system by default, following the basic security principle of least privilege. We have useful access control lists based on concepts of ownership by users and groups and reserving different parts of the filesystem for different people. Why can’t we also have something analogous where different files or other system resources are only accessible to applications that have been approved for that access?</text></item></parent_chain><comment><author>andrewfong</author><text>Isn&amp;#x27;t this the basic idea behind the sandbox in OS X?&lt;p&gt;I think OS X (and mobile app development in general) shows both that this is great in theory and a net improvement over not having it, but that there are some common pitfalls to address.&lt;p&gt;First, there are a handful of apps where this model doesn&amp;#x27;t work so well -- e.g. text editors, FTP clients, etc. So you&amp;#x27;re inconveniencing quite a few legit apps which need broader access.&lt;p&gt;Second, as a corollary of the first, that means you&amp;#x27;re going to have a lot of apps that legitimately need to ask users to approve broader access. And as the number of apps asking for approval goes up, the more likely users are to simply ignore the warning and approve all. This is especially problematic since we can assume the average user is a good judge of which apps need which access.&lt;p&gt;Edit: One way of reducing user acceptance fatigue might to introduce greater granularity into the requested permissions and then tier the permissions requested -- e.g. commonly asked vs. uncommon. E.g. an app may legitimately need permission to write to any file in your home directory, but it&amp;#x27;s highly unlikely they&amp;#x27;ll need permission to write to more than X number of files per second. Or at least they shouldn&amp;#x27;t be able to do so without the OS throwing up lots of warnings outside of the app.</text></comment>
<story><title>Moved ~/.local/share/steam. Ran steam. It deleted everything owned by user</title><url>https://github.com/ValveSoftware/steam-for-linux/issues/3671</url></story><parent_chain><item><author>Chris_Newton</author><text>This seems like yet another good example of why robust application-level access control would be a helpful thing to build into modern operating systems, in addition to the typical user-based controls. This may have been both a rookie mistake and a regrettable failure of code review processes, but in any case it simply shouldn’t be possible for an application running on a modern system to wipe out all user data without warning in such a sweeping way.&lt;p&gt;I have often made this argument in the context of sandboxing communications software like browsers and e-mail clients, where it is relatively unusual to need access to local files except for their own data. In that context, restricting access to other parts of the filesystem unless explicitly approved would be a useful defence against security vulnerabilities being exploited by data from remote sources. It’s hard to encrypt someone’s data and hold it for ransom or to upload sensitive documents if your malware-infected process gets killed the moment it starts poking around where it has no business being.&lt;p&gt;More generally, I see no reason that we shouldn’t limit applications’ access to any system by default, following the basic security principle of least privilege. We have useful access control lists based on concepts of ownership by users and groups and reserving different parts of the filesystem for different people. Why can’t we also have something analogous where different files or other system resources are only accessible to applications that have been approved for that access?</text></item></parent_chain><comment><author>falcolas</author><text>Like AppArmor, or SELinux, or any of the other applications which have their hooks in the LSM? They do a fantastic job of this, if you can figure out how to use them.&lt;p&gt;The truth is that they are too hard for even your average Sysadmin to configure &amp;amp; manage, let alone your average desktop user.&lt;p&gt;setenforce=1 (yeah, right).</text></comment>