- How can I permanently grant root access to a user? [duplicate]
- 6 Answers 6
- Права суперпользователя root в Linux: полный обзор
- Предназначение root-прав в Linux
- Безопасность использования прав суперпользователя
- Команда sudo и примеры ее использования
- Переключение на суперпользователя
- Предоставление и отзыв прав суперпользователя
- Создание нового пользователя с root
- Для существующей учетной записи
- Откат прав суперпользователя
How can I permanently grant root access to a user? [duplicate]
I’ve been searching for the answer to this but all I find is «It’s not a good idea» or «We don’t recommend it» and some work around solution is given. I am a new, yes. There is a good chance I could break stuff, I know. I am happy to break my OS and format it many times if it comes to that but restrictions of ANY kind on my OS enrage me. I want to be able to break stuff if I want, then learn how I broke it and how to fix it. I want the safety locks off. Please tell me how to grant a user absolute authorisation.
6 Answers 6
To give the user «foo» unlimited passwordless access to root privileges via the sudo command, edit /etc/sudoers and add the line:
See sudo(8) and sudoers(5) for more information.
As was suggested elsewhere, if you know how to use vi then it’s a good idea to use visudo to edit /etc/sudoers .
jdthood gave you an excelent tip. read this short article to find out more about the /etc/sudoers tricks :D. linuxg.net/understanding-etcsudoers-file
It is not you who is being restricted (as long as you can sudo or login as root on the command-line), but it is rather every single application you run that is being restricted.
If you give yourself root privileges, every application you run also gains complete power over your computer. That is the restriction, and saying you don’t want any restrictions placed over you is like saying you do not want to lock your bike or your door, for it places a restriction upon yourself.
I am amazed no one as of yet has tried to offer you that insight.
This is exactly what I was trying to go for with my comment on another answer. The reason for the restriction by the Ubuntu devs is not because they think all users are inept; if that were the case, sudo would be disabled too. It’s about giving the user the power to selectively give applications more privileges. and keeping the «bad ones» (be they buggy or malicious) from messing everything up à la Windows XP.
@IchimitchHamono You have root access? Sudo access? You have unrestricted access then. If that isn’t what you EXPECT it to be, that’s your lack of understanding and inability to learn. I bet money, that just like Android/iOS, you’ll have to «Root» or «Jailbreak» before you’ll get unfettered access on a Steam Box — Linux OR Windows. If typing «sudo», or learning how to edit /etc/sudoers, is too much restriction for you. You won’t enjoy your future. Don’t like it? Build your own OS — or find a Distro that doesn’t have Sudo (or similar) installed.
@IchimitchHamono: by your own admission, you are new to this. That’s completely fine. I even think your question is valid, and interesting. However, your sheer disinterest in finding out why it’s not a good idea to actually do this, finding out why you only find posts saying «we don’t recommend» it, astonishes me.
Linux, and by extension, UNIX, was designed from the get-go as a multi-user operating system, fit for use in networks. Restricting user access is a logical implication of that design. As such, it is deeply embedded in the whole OS and applications that use it. Out of interest, what did you end up doing? Somehow allowing root to log in in a graphical environment?
Being a noob, you should better use visudo instead of editting /etc/sudoers on your own, at least because:
- It checks that no one is using the /etc/sudoers file at the same time.
- When you have finished, it checks the file for making sure it’s fine.
ok, this comes from my hacker days of trying everything in the system to see what it did.
There is a file /etc/passwd that famously holds passwords (or a marker to signify shadow passwords).
In that file, you will see something like this:
root. 0:0::/:/usr/bin/ksh daemon. 1:1::/etc: bin. 2:2::/bin: sys. 3:3::/usr/sys: adm. 4:4::/var/adm: uucp. 5:5::/usr/lib/uucp: guest. 100:100::/home/guest: nobody. 4294967294:4294967294::/: lpd. 9:4294967294::/: lp:*:11:11::/var/spool/lp:/bin/false invscout:*:200:1::/var/adm/invscout:/usr/bin/ksh nuucp:*:6:5:uucp login user:/var/spool/uucppublic:/usr/sbin/uucp/uucico paul. 201:1::/home/paul:/usr/bin/ksh jdoe:*:202:1:John Doe:/home/jdoe:/usr/bin/ksh
the two sections that are interest to us are the numbers in position 3 and 4. the first one is the user ID, the second is the group. Notice that in this installation (and most installations) the values for root are both 0
If you use su or sudo to edit this file, and change the numbers on your user ID to be the same as root, then you will become root. (also, you will not be able to use rmuser on your ID, as it is now considered essential to the system)
Права суперпользователя root в Linux: полный обзор
В дистрибутивах Linux пользовательские привилегии предоставляются путем открытия доступа к root. Наличие таких прав позволяет использовать функциональность операционной системы более широко и выполнять необходимые действия в корневом каталоге.
Давайте детально обсудим, что может суперпользователь в Linux, как настроить root и для чего нужна команда sudo .
Предназначение root-прав в Linux
Права обычного пользователя в Linux крайне ограничены. Он может управлять только своим каталогом и открывать для чтения определенные файлы из корня. Доступ для их изменения или установки программ отсутствует, что делает привилегии суперпользователя крайне важными при настройке ОС и решении разных проблем. Обычный пользователь ограничивается следующим набором прав:
- чтение, запись и изменение любых атрибутов пользовательской папки;
- то же самое и для каталога /tmp ;
- выполнение программ в любом месте, где нет ограничений;
- чтение файлов с соответствующим атрибутом для всех пользователей.
При наличии рут-прав у юзера появляется гораздо больше возможностей и расширяются границы взаимодействия с операционной системой. Становятся доступными любые действия со всеми папками и файлами.
Безопасность использования прав суперпользователя
Если с предназначением root-прав в Linux все понятно, то вот к безопасности их использования есть вопросы. В основном, относится это к серверным машинам, поскольку риск взлома домашнего компьютера очень мал, да и кому нужны файлы обычного пользователя, чтобы ради этого затевать процедуру взлома. Если вы используете Linux как обычную операционную систему, работаете с документами и стандартными программами, используйте root для установки приложений и защиты системы от случайных изменений, которые могут внести другие пользователи компьютера.
С серверной частью все гораздо сложнее, поскольку рут как таковой не предоставляет полной защиты. Часто используемые пароли взламываются путем перебора или поиском бэкдора. Поэтому не стоит полагаться исключительно на защиту паролем, если вы владеете файлами сайтов или используете сервер для других целей. Займитесь настройкой файрвола, если это повысит уровень защиты.
Команда sudo и примеры ее использования
Команда sudo тесно связана с root в Linux, поскольку отвечает за передачу прав суперпользователя и позволяет от его имени выполнять команды в Терминале. Существует несколько ее вариаций, использующихся при разных обстоятельствах. Подходит эта команда как для выполнения всего одного действия, так и для передачи прав на всю текущую сессию.
Самый простой пример использования sudo – запуск программы от имени суперпользователя. Для этого вводится:
sudo program \\ program – название приложения, которое вы хотите запустить
Еще sudo применяется для установки софта, команда в таком случае обретает вид:
Если же вы желаете использовать сразу несколько команд, например, введя sudo cat file.txt | grep text > file.txt , появится ошибка, поскольку при выполнении второй команды права суперпользователя отсутствуют, а значит, запись в файл невозможна. Решается такая ситуация добавлением sudo перед каждым выражением.
В следующем разделе статьи речь пойдет о передаче прав суперпользователя, что тоже реализуемо при помощи sudo . Я рассмотрю два полезных аргумента. Советую ознакомиться с ними, если хотите упростить выполнение действий через Терминал.
Переключение на суперпользователя
Еще раз уточню, что команда sudo идеально подходит для получения необходимых привилегий без переключения учетной записи. Ее можно использовать как для выполнения одного действия, так и нескольких. Если вы желаете временно получить рут-права через эту команду, введите sudo -s или sudo -i . В первом случае домашний каталог остается текущим, а во втором меняется на /root.
Примерно так же работает и команда su , но она обладает дополнительными аргументами, которые следует уточнить:
- -c – позволяет выполнить команду;
- -g – устанавливает группу для пользователя;
- -G – дополнительные группы для юзера;
- — , -l , —login – один из режимов входа, при котором происходит переключение домашнего каталога;
- -p – сохранение переменных окружения;
- -s – выбор оболочки для выхода.
Есть вариант выполнить вход в оболочку под суперпользователем, но он имеет свои неудобства. Он заключается в переключении в доступную виртуальную консоль, что осуществляется комбинацией Ctrl + Alt + F1-F6 . Там понадобится ввести логин и пароль root для получения доступа. Главный недостаток этого метода – потеря возможности взаимодействия с графическим интерфейсом операционной системы.
Второй вариант – ввод такого же логина и пароля при входе через графическую форму авторизации. Так вы сразу получите доступ ко всем файлам, даже не надо будет вводить sudo . Однако неопытным пользователям такой метод не подходит, поскольку возникает риск удаления или изменения системных файлов, что иногда приводит к поломке ОС.
Вы уже сами решайте, какой вариант хотите использовать, и готовы ли смириться со всеми ограничениями и недостатками, которые накладывает каждый из них.
Предоставление и отзыв прав суперпользователя
Каждому пользователю в Linux можно предоставить root-права, добавив его в соответствующую группу. Точно так же их можно и отнять, если вдруг это понадобится. Рассмотрю три варианта действий.
Создание нового пользователя с root
Допустим, что вы, единственный юзер в Linux, хотите создать еще одну учетную запись с правами суперпользователя. В таком случае алгоритм действий обретет следующий вид:
- Откройте Терминал и введите команду sudo adduser user (user замените на нужное имя пользователя).
- В консоли появятся инструкции по созданию нового пользователя. Присвойте пароль и подтвердите действие, чтобы завершить создание.
- Добавьте новую учетную запись в группу sudo, введя sudo usermod -aG sudo user ( user здесь тоже понадобится заменить).
- Проверьте выполненные действия, переключившись на новую учетную запись через su testuser . Для подтверждения введите пароль (при вводе символы не отображаются на экране).
- Выполните любую команду с sudo и убедитесь, что все прошло успешно.
Для существующей учетной записи
Если учетная запись уже добавлена, в консоли остается ввести только одну команду, чтобы добавить пользователя в группу sudo и разрешить ему получение рут-прав. Сама команда представлена ниже, вам остается только скопировать ее и поменять имя юзера.
sudo usermod -aG sudo user
Используйте предыдущую инструкцию для проверки внесенных изменений.
Откат прав суперпользователя
Если вдруг вы решили, что одна из учетных записей больше не должна состоять в группе sudo, отзовите права, введя команду:
Измените user на необходимое имя. Можете переключиться на эту учетную запись и убедиться в том, что теперь команды с sudo она выполнять не может.
Это была вся основная информация о правах суперпользователя в Linux. Вы знаете, что дают такие привилегии, как их правильно использовать и управлять пользователями. В качестве рекомендации скажу, что всегда нужно читать текст ошибок, появляющихся в Терминале, если что-то пошло не так. Это позволит вам быстрее решить проблему без траты времени на поиски в Google.