{{Header}}
{{title|title=
Unrestricted Admin Mode
}}
{{#seo:
|description={{project_name_short}} allows configuration for unrestricted admin mode, enabling the default user account to access privilege escalation tools like sudo and pkexec.
}}
{{passwords_mininav}}
{{intro|
'''{{project_name_short}} can be configured for unrestricted admin mode.'''
In this mode, traditional access to privilege escalation tools such as sudo
and pkexec
is possible for the {{project_name_short}} default limited account user
.
Most other operating systems do not even call this "unrestricted admin mode" because they do not come with user-sysmaint-split
by default. In such systems, unrestricted admin mode is implied. However, {{project_name_short}} provides the flexibility to switch between user-sysmaint-split
and unrestricted admin mode depending on your needs.
Starting from {{project_name_short}} version TODO
Xfce and above, {{project_name_short}} comes with [[sysmaint|user-sysmaint-split
]] by default.
}}
__FORCETOC__
= Uninstalling user-sysmaint-split and Enabling Unrestricted Admin Mode =
This chapter documents how to disable user-sysmaint-split
and revert to unrestricted admin mode, where the user user
can use sudo
.
'''Optional.''' Discouraged.
Warnings:
* Reverting to unrestricted admin mode increases the risk of privilege escalation attacks and may weaken system security.
* It is discouraged to use apt
for this purpose, to avoid meta-package removal issues ([[Debian Packages]]). Instead, it is recommended to proceed as per instructions below.
Platform specific. Select your platform.
{{Tab
|type=controller
|content=
{{Tab
|title= == {{project_name_short}} ==
|image=[[File:{{project_name_short}}-logo-icon.svg]]
|content=
If the user-sysmaint-split
package is installed by default, the easiest way to remove it is by using the REMOVE user-sysmaint-split
boot option on the GRUB screen.
{{Box|text=
'''1.''' Reboot the machine.
'''2.''' Select {{project_name_short}} REMOVE user-sysmaint-split GNU/Linux
from the list of boot options.
'''3.''' Authenticate as necessary to log in as the sysmaint
account. You may have to provide a disk encryption passphrase and/or the user password for the sysmaint
account, if either or both passwords are set.
'''4.''' Type the word yes
into the dialog box confirming that you really do want to uninstall user-sysmaint-split
.
'''5.''' Click "OK". A terminal window will appear, showing the logs generated while uninstalling user-sysmaint-split
.
'''6.''' When the text Command exited. You may close this window safely
appears, close the terminal window. The system will automatically reboot.
'''7.''' Done.
The process of removing user-sysmaint-split
is now complete.
}}
Alternatively, you can use [[Debian_Packages#dummy-dependency|dummy-dependency
]] to remove the user-sysmaint-split
package while booted in PERSISTENT Mode - SYSMAINT Session
. [
The ]--purge
option is optional and not required in this case when using dummy-dependency
, because user-sysmaint-split
has been designed without configuration files in the /etc
folder. Instead, user-sysmaint-split
uses symlinks, which are deleted upon removal. This design ensures that a standard apt remove user-sysmaint-split
will not result in unexpected functionality, such as parts of user-sysmaint-split
(e.g., boot menu entries) still being active.
{{CodeSelect|code=
sudo dummy-dependency user-sysmaint-split
}}
}}
{{Tab
|title= == {{q_project_name_long}} ==
|image=[[File:Qubes-logo-icon.png]]
|content=
{{Box|text=
'''1.''' Qubes version specific.
* Qubes R4.2: Open a [[Root#Qubes_Root_Console|Qubes Root Console]].
* Qubes R4.3 and above: Ensure that the {{project_name_workstation_template}}
Template is booted in PERSISTENT Mode - SYSMAINT Session
.
'''2.''' Run:
{{CodeSelect|code=
sudo dummy-dependency user-sysmaint-split
}}
'''3.''' Install qubes-core-agent-passwordless-root
to allow the user
account to elevate to root.
{{CodeSelect|code=
sudo apt install qubes-core-agent-passwordless-root
}}
'''4.''' Shut down the qube template.
'''5.''' Reboot any AppVMs that are based on the qube template.
'''6.''' Done.
The process of removing user-sysmaint-split
is now complete.
}}
}}
}}
= Impact =
This removes the sysmaint mode-related [[Grub|GRUB]] boot menu modifications and reverts back to a "normal" boot menu.
Security impact? This is hard to quantify. It is important to contextualize user-sysmaint-split
for what it is: an additional security feature, not magic.
The security concept of user versus administrative account isolation, implemented by the user-sysmaint-split
package, is a many-years-old and standard security feature on mainstream mobile operating systems such as Android and iOS. These mobile operating systems degrade device owners to limited rights and provide administrative rights to the device manufacturer (OEM) only. The purpose of this, among other security aspects, is to enforce [[Miscellaneous_Threats_to_User_Freedom#mobile_devices_restrictions|mobile device restrictions]], prioritizing the wishes of OEMs and application developers over user preferences. See also the [[Miscellaneous_Threats_to_User_Freedom|General Threats to User Freedom]] wiki chapter [[Miscellaneous_Threats_to_User_Freedom#Administrative_Rights|Administrative Rights]].
user-sysmaint-split
improved security in many contexts. For example, if a user is using a dedicated {{VM}} in a session only for the purpose of web browsing, then there is no need for that VM to ever gain root rights. However, in other contexts such as on a server or development environment, user-sysmaint-split
might provide less or no security or degrade usability to unproductive levels.
There have been times where user-sysmaint-split
was unavailable and nothing catastrophic took place. At worst, this reduces the security level to {{project_name_short}} versions equal to or lower than version 17.2.8.5
.
See also [[Root#Rationale_for_Protecting_the_Root_Account|Rationale for Protecting the Root Account]].
= Optional Restrictions =
After removal the user can configure sudo
and/or other privilege escalation tools etc as per usual.
= Footnotes =
{{Footer}}
[[Category: Design]]
[[Category: Development]]