Root access

(notes about debugging ssh connections and xauth needed for X forwarding)
m (Reverted edits by 5.188.211.16 (Talk) to last revision by sixwheeledbeast)
 
(58 intermediate revisions not shown)
Line 1: Line 1:
-
'''Warning: The steps described on this page ''could'' lead to severe damage to your system and/or device. Proceed at your own peril. It is ''likely'' that any breakage would be fixed by [[Upgrading tablet OS|reflashing your device]]: however this will lose any settings not backed up.'''
+
{{danger}}
-
Having [http://en.wikipedia.org/wiki/Root_user root] access is an important step for users interested in modifying things "under the covers" of their tablets; without it, you wont have the necessary permissions to make those modifications. Unfortunately, root access is disabled by default on new tablets. Thankfully, the steps to enable root access are simple.
+
Having [[:wikipedia:Superuser|root]] access is an important step for users interested in modifying things "under the covers" of their tablets; without it, you won't have the necessary permissions to make those modifications. Root access is disabled by default on new tablets. Thankfully, the steps to enable root access are simple.
== Why do I want root? ==
== Why do I want root? ==
-
root access is ''not'' required to install additional applications through Application Manager, open X Terminal or use your tablet in day-to-day operation.
+
Root access is ''not'' required to install additional applications through Application Manager, open X Terminal or use your tablet in day-to-day operation.
If you want to edit the underlying system configuration, install applications ''through the command line'' or other low-level tasks, you ''will'' require root access.
If you want to edit the underlying system configuration, install applications ''through the command line'' or other low-level tasks, you ''will'' require root access.
Line 12: Line 12:
<small>''Note: As rootsh is the simplest option, and does not require a desktop computer or running additional services, it is the recommended method for gaining root access.''</small>
<small>''Note: As rootsh is the simplest option, and does not require a desktop computer or running additional services, it is the recommended method for gaining root access.''</small>
-
rootsh is available in Extras, and can be installed from the Application manager if you have [[Extras]] enabled.
+
<code>rootsh</code> is available in [[Extras]], and can be installed from the Application manager if you have the Extras repository enabled. It is also available directly from [http://maemo.org/downloads/product/Maemo5/rootsh/ maemo.org].
-
Then, from the shell, run <code>sudo gainroot</code> (or <code>root</code> for short). This will give you a root shell.
+
Then, from the [[terminal|shell]], run:
 +
sudo gainroot
 +
(or <code>root</code> for short). This will give you a root shell.
 +
 
 +
== sudser ==
 +
<small>''Note: Some scripts require rootsh to run properly, so it's recommended to have both sudser and rootsh installed if you're using sudser.''</small>
 +
 
 +
sudser adds the user to sudoers so you can use the <code>sudo</code> command to run commands as root.
 +
 
 +
It is available in Extras, and can be installed from the Application manager if you have Extras enabled.
 +
 
 +
 
 +
Then, from the shell, run <code>sudo ''command''</code>. This will execute <code>''command''</code> with root privileges.
 +
 
 +
<small>''Note: Adding user to the sudoers without a password isn't best for security so use at own risk.''</small>
== OpenSSH ==
== OpenSSH ==
-
# [[Extras|Enable Extras]] (if you haven't already).
+
# Enable Extras (if it is disabled)
-
# Install OpenSSH (client and server).
+
# Install OpenSSH (client and server)
 +
#* This will prompt you to change the root password from the default, <code>rootme</code>
# SSH into your tablet as root
# SSH into your tablet as root
#* For local access, run <code>ssh root@localhost</code>
#* For local access, run <code>ssh root@localhost</code>
#* For remote access, run <code>ssh root@''tablet's ip address''</code>
#* For remote access, run <code>ssh root@''tablet's ip address''</code>
-
# Use the root password that the OpenSSH package asked you to enter to log in (in ancient OS versions you had to use the factory default "rootme" password).
+
# Use the root password entered at step (2) to log in
To debug issues with SSH connections, use the SSH '-v' option.
To debug issues with SSH connections, use the SSH '-v' option.
-
(To get SSH X forwarding ('-X' option) to work, you need to install ''xauth'' (or ''xbase-clients'') package and enable X forwarding in the SSH server
+
(To get SSH X forwarding ('-X' option) to work, you need to install ''xauth'' (or ''xbase-clients'') package and enable X forwarding in the SSH server configuration file on the machine where you're connecting to.)
-
configuration file on the machine where you're connecting to.)
+
-
=== Securing root access ===
+
== Research &amp; Development Mode (R&amp;D or RD Mode) ==
-
At this point you should have gained root access to your device, and be looking at the root prompt:
+
{{ambox|text=As R&D mode has other side effects beyond simply enabling root access (including several that may negatively impact battery life), it is ''not'' the recommended method for gaining root access. Use [[#rootsh|rootsh]] instead.}}
-
<nowiki>#</nowiki>
+
{{main|R&D mode}}
-
'''However, if your Wi-Fi network is not password protected, so might anyone else near you who has Wi-Fi, SSH and a clue.'''
+
You can enable the R&D mode which enables you to execute <code>sudo gainroot</code> to get a root shell, simply follow the setup steps for flashing covered in [[Updating the firmware|updating the tablet firmware]], then execute
-
You still need to secure the root account ("rootme" is a terrible password).
+
sudo ./flasher-3.5 --enable-rd-mode -R
-
==== Change root password ====
+
You are now in R&D mode, and the sudo gainroot script's check will be satisfied.
-
<small>''Note: The OpenSSH requires that the root password be set as part of its installation process, if you have installed OpenSSH you have already completed this step''</small>
+
-
To change root password (as root user):
+
== On-Device Sudoers Edit (No External Dependencies) ==
 +
This covers how to get root access on-device. without any external downloads/dependencies, as well as advocates a more desktop-like approach to setting up your sudoers file.
 +
http://talk.maemo.org/showthread.php?t=94494
-
passwd
+
== A note on sudo ==
 +
This information is aimed at people who come to maemo from other linux distributions (Debian for example) that may have used sudo in a different way.
-
When asked, input your [http://en.wikipedia.org/wiki/Password_strength new password] twice.
+
In fremantle (Maemo 5) sudo is a key part of the system. It is used by system processes that are started as the user to provide access (as root) when needed.
-
== R&amp;D Mode ==
+
Examples of this are:
 +
Media Tracker.
 +
The firmware version on the 'Settings' > 'About Product' page.
-
<small>''Note: As R&D mode has other side effects beyond simply enabling root access (including several that may negatively impact battery life), it is ''not'' the recommended method for gaining root access. Use [[#rootsh|rootsh]] instead.</small>
+
Both of these will malfunction if there are problems with sudo.
-
You can enable the Research &amp; Development mode (R&amp;D or RD mode, which enables you to execute <code>sudo gainroot</code> to get a root shell, simply follow the setup steps for flashing covered in [[Upgrading_tablet_OS#Flashing_your_Nokia_tablet|Upgrading tablet OS]], then execute
+
Sudo relies on <code>/etc/sudoers</code>, a configuration file that details who can run what commands. <code>/etc/sudoers</code> is traditionally modified by using the 'visudo' command. DO NOT DO THIS ON MAEMO. In maemo sudoers is regenerated periodically from config snippets in <code>/etc/sudoers.d/</code>, using <code>visudo</code> can cause the slow death of your system as your edit gets pushed further down /etc/sudoers.
-
sudo ./flasher-3.0 --enable-rd-mode -R
+
For those who don't know, <code>/etc/sudoers</code> works on a last match principle, so if your edit conflicts with entries above it, it will break those entries.
-
You are now in R&D mode, and the sudo gainroot script's check will be satisfied.
+
The 'correct' way to do this would be to put your entry in a file in <code>/etc/sudoers.d/</code>. I leave the detail of this up the experience of the end-user. Just be advised that using <code>visudo</code> runs the risk of subtly breaking your system.
-
[[Category:Users]]
 
[[Category:Wiki page of the day]]
[[Category:Wiki page of the day]]
 +
[[Category:Power users]]

Latest revision as of 08:50, 11 April 2019

Image:Ambox_notice.png
Some instructions here may cause serious problems. When unsure, see General precautions
Backing up your data is recommended. In case of trouble you might need to re-flash your device.


Having root access is an important step for users interested in modifying things "under the covers" of their tablets; without it, you won't have the necessary permissions to make those modifications. Root access is disabled by default on new tablets. Thankfully, the steps to enable root access are simple.

Contents

[edit] Why do I want root?

Root access is not required to install additional applications through Application Manager, open X Terminal or use your tablet in day-to-day operation.

If you want to edit the underlying system configuration, install applications through the command line or other low-level tasks, you will require root access.

[edit] rootsh

Note: As rootsh is the simplest option, and does not require a desktop computer or running additional services, it is the recommended method for gaining root access.

rootsh is available in Extras, and can be installed from the Application manager if you have the Extras repository enabled. It is also available directly from maemo.org.

Then, from the shell, run:

sudo gainroot

(or root for short). This will give you a root shell.

[edit] sudser

Note: Some scripts require rootsh to run properly, so it's recommended to have both sudser and rootsh installed if you're using sudser.

sudser adds the user to sudoers so you can use the sudo command to run commands as root.

It is available in Extras, and can be installed from the Application manager if you have Extras enabled.


Then, from the shell, run sudo command. This will execute command with root privileges.

Note: Adding user to the sudoers without a password isn't best for security so use at own risk.

[edit] OpenSSH

  1. Enable Extras (if it is disabled)
  2. Install OpenSSH (client and server)
    • This will prompt you to change the root password from the default, rootme
  3. SSH into your tablet as root
    • For local access, run ssh root@localhost
    • For remote access, run ssh root@tablet's ip address
  4. Use the root password entered at step (2) to log in

To debug issues with SSH connections, use the SSH '-v' option.

(To get SSH X forwarding ('-X' option) to work, you need to install xauth (or xbase-clients) package and enable X forwarding in the SSH server configuration file on the machine where you're connecting to.)

[edit] Research & Development Mode (R&D or RD Mode)

Image:Ambox_notice.png
As R&D mode has other side effects beyond simply enabling root access (including several that may negatively impact battery life), it is not the recommended method for gaining root access. Use rootsh instead.

Main article: R&D mode


You can enable the R&D mode which enables you to execute sudo gainroot to get a root shell, simply follow the setup steps for flashing covered in updating the tablet firmware, then execute

sudo ./flasher-3.5 --enable-rd-mode -R

You are now in R&D mode, and the sudo gainroot script's check will be satisfied.

[edit] On-Device Sudoers Edit (No External Dependencies)

This covers how to get root access on-device. without any external downloads/dependencies, as well as advocates a more desktop-like approach to setting up your sudoers file. http://talk.maemo.org/showthread.php?t=94494

[edit] A note on sudo

This information is aimed at people who come to maemo from other linux distributions (Debian for example) that may have used sudo in a different way.

In fremantle (Maemo 5) sudo is a key part of the system. It is used by system processes that are started as the user to provide access (as root) when needed.

Examples of this are: Media Tracker. The firmware version on the 'Settings' > 'About Product' page.

Both of these will malfunction if there are problems with sudo.

Sudo relies on /etc/sudoers, a configuration file that details who can run what commands. /etc/sudoers is traditionally modified by using the 'visudo' command. DO NOT DO THIS ON MAEMO. In maemo sudoers is regenerated periodically from config snippets in /etc/sudoers.d/, using visudo can cause the slow death of your system as your edit gets pushed further down /etc/sudoers.

For those who don't know, /etc/sudoers works on a last match principle, so if your edit conflicts with entries above it, it will break those entries.

The 'correct' way to do this would be to put your entry in a file in /etc/sudoers.d/. I leave the detail of this up the experience of the end-user. Just be advised that using visudo runs the risk of subtly breaking your system.