Why is one preferred over the other in this example?
sudo su
echo "options iwlwifi 11n_disable=1" >> /etc/modprobe.d/iwlwifi.conf
exit
Please provide links to Ubuntu documentation.
Why is one preferred over the other in this example?
sudo su
echo "options iwlwifi 11n_disable=1" >> /etc/modprobe.d/iwlwifi.conf
exit
Please provide links to Ubuntu documentation.
The
sudo su
command stands for "switch user", and allows you to become another user. It allows a permitted user to execute a command as the superuser or another user, as specified in thesudoers
file.The
‑i
(simulate initial login) option runs the shell specified by the password database entry of the target user as a login shell. This means that login-specific resource files such as.profile
or.login
will be read by the shell. If a command is specified, it is passed to the shell for execution via the shell's‑c
option. If no command is specified, an interactive shell is executed.Source:ManPage
sudo su
only changes the current user to root. Environment settings (like PATH) remain the same.sudo -i
creates a fresh environment as if root had just logged in.The difference is more noticeable if you use other users. After
sudo su bob
you will be bob, but in the same place. Aftersudo -i -u bob
you will be bob, in bob's home directory, with bob's default shell and with bob's.profile
and any other login scripts having been run.See
man sudo
for more details of what-i
does. Unfortunately,man su
is light on details.Found a version of
man su
(from login-1:4.1.4.2+svn3283-3ubuntu5.1) that has the following to say:So whether and to what extent
sudo su
changes the environment depends on your distribution and setup. Thussudo -i
is theoretically more portable.The main problem is one of (not so) sane environment settings.
Using
sudo su
the new shell gets its environment from the user who issues the command - which may be problematic.With
sudo -i
you get a clean root shell.See Special notes on sudo and shells
Remains to observe that it is rarely necessary at all to create a root shell.