Відповіді:
su
означає заміну користувача, і якщо він буде викликаний без будь-яких аргументів, ви станете суперпользователем. Тому вам потрібно ввести корінний пароль.
Це якесь безглуздо, якщо багатьом людям потрібно використовувати команди для адміністрування системи або подібні речі з розширеними правами користувача. Ви просто не хочете, щоб люди мали необмежені права, ділившись тим самим кореневим паролем.
Рішення для подібного роду проблем є sudo
(" user substitute do "). Це дозволить вам вказати команди, які може викликати, та визначити дозволи. Адже sudo
вам не потрібно вводити пароль root, а пароль користувача, який намагається викликати команду sudo.
У деяких дистрибутивах кореневого користувача відключено з міркувань безпеки. Це може бути одним із пояснень того, чому ви не можете використовувати su
. У цьому випадку для отримання оболонки з правами root використовуйте sudo -s
;-)
$ script
і $ sudo script
? Користувач однаковий в обох випадках.
sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.
- від man sudo. Зазвичай сценарій буде викликаний привілеями root. У цьому різниця.
Команда su без параметрів за замовчуванням дозволить вам стати користувачем root. Це не запит вашого пароля, а кореневий пароль.
Команда sudo завжди запитує ваш пароль.
sudo su -
там, де засоби тире встановлюють середовище відповідно до профілю входу користувача (в даному випадку root). Зазвичай це дає незначне підвищення безпеки PATH, але все ще не захищає відecho hi > /dev/my_critical_filesystem