Vraag Een commando om alle gebruikers te tonen? En hoe kunnen gebruikers worden toegevoegd, verwijderd of gewijzigd?


Ik heb een opdracht nodig om alle gebruikers in terminal te vermelden. En hoe u gebruikers vanaf een terminal kunt toevoegen, verwijderen of wijzigen.

Dat zou kunnen helpen bij het administratief beheren van uw rekeningen per terminal.


699
2018-01-24 20:23


oorsprong


sed antwoord sed 's/:.*//' /etc/passwd - Avinash Raj
lijst gebruikers: awk -F: '{ print $1 }' /etc/passwd - saviour123


antwoorden:


Om alles op te sommen lokaal gebruikers die u kunt gebruiken:

cut -d: -f1 /etc/passwd

Om een ​​opsomming te geven van alle gebruikers die in staat zijn om (op een bepaalde manier), inclusief niet-lokaal, te verifiëren, zie dit antwoord: https://askubuntu.com/a/414561/571941

Enkele meer bruikbare commando's voor gebruikersbeheer (ook beperkt tot lokaal gebruikers):

Om een ​​nieuwe gebruiker toe te voegen, kunt u het volgende gebruiken:

sudo adduser nieuwe gebruikersnaam

of:

sudo useradd nieuwe gebruikersnaam

Zie ook: Wat is het verschil tussen adduser en useradd?

Om een ​​gebruiker te verwijderen / verwijderen, kunt u eerst het volgende gebruiken:

sudo userdel gebruikersnaam

Dan wilt u misschien de basismap verwijderen voor het verwijderde gebruikersaccount:

sudo rm -r / home /gebruikersnaam

(Gebruik alsjeblieft voorzichtig het bovenstaande commando!)

Om de gebruikersnaam van een gebruiker te wijzigen:

usermod -l nieuwe gebruikersnaam oude gebruikersnaam

Om het wachtwoord voor een gebruiker te wijzigen:

sudo passwd gebruikersnaam

Om de shell voor een gebruiker te wijzigen:

sudo chsh gebruikersnaam

Om de details voor een gebruiker te wijzigen (bijvoorbeeld echte naam):

sudo chfn gebruikersnaam

En, natuurlijk, zie ook: man adduser, man useradd, man userdel... enzovoort.


937
2018-01-24 19:28



Radu vergat te vermelden sudo chfn <username> welke gebruikersgegevens wijzigt (bijvoorbeeld echte naam). Ik heb geprobeerd dit als een opmerking toe te voegen, maar ik kreeg de fout om me te vertellen dat ik een +50 reputatie moet hebben om dit te doen. - Mikaela
Ik denk dat het moet worden onderstreept dat het juiste antwoord op de gekoppelde vraag is askubuntu.com/a/381646/16395 --- anders moet u met de hand rekening houden met het GID / UID Ubuntu-beleid. Het geaccepteerde antwoord is niet zo duidelijk. - Rmano
sudo userdel DOMAIN \\ johndoe geeft me de foutmelding: "userdel: kan de invoer 'DOMAIN \ johndoe' van / etc / passwd niet verwijderen - ik heb in / etc / passwd gekeken en ze zijn daar niet eens in, waarschijnlijk omdat het een" domein "account? - 00fruX
@ 00fruX Ja ... als u een gecentraliseerde gebruikersdatabase gebruikt, moet u deze direct verwerken. - Oli♦
+1 voor Wat is het verschil tussen adduser en useradd? - sonlexqt


Druk gewoon op Ctrl+alt+T op je toetsenbord om Terminal te openen. Wanneer het wordt geopend, voert u de onderstaande opdracht (en) uit:

cat /etc/passwd

OF

less /etc/passwd
more /etc/passwd

Je kunt ook awk gebruiken:awk

awk -F':' '{ print $1}' /etc/passwd

73
2018-01-24 19:38



hoe voeg je gebruikers toe op commando? - nux
Je kunt gebruiken useradd opdracht. - Mitch♦
@nux Een beetje laat voor het feest, maar vanaf het gebruik van de opdrachtregel adduser in plaats daarvan, useradd moet worden beperkt tot scripts waarin de auteur echt echt weet wat hij doet. - flindeberg


De gemakkelijkste manier om dit soort informatie te krijgen is getent - zien manpage voor de getent opdracht Manpage icon. Terwijl dat commando dezelfde uitvoer geeft als cat /etc/passwd het is handig om te onthouden omdat het je lijsten met verschillende elementen in het OS zal geven.

Om een ​​lijst te krijgen van alle gebruikers die u typt (zoals gebruikers worden vermeld in /etc/passwd)

getent passwd

Om een ​​gebruiker toe te voegen nieuwe gebruiker naar het systeem dat u zou typen

sudo adduser newuser

om een ​​gebruiker te maken waarop alle standaardinstellingen zijn toegepast.

Bonus: om een ​​gebruiker toe te voegen (bijvoorbeeld anyuser) voor een groep (bijvoorbeeld CD-rom) type

sudo adduser anyuser cdrom

U verwijdert een gebruiker (bijvoorbeeld verouderd) met

sudo deluser obsolete

Als u zijn thuismap / e-mails ook wilt verwijderen, typt u

sudo deluser --remove-home obsolete

En

sudo deluser --remove-all-files obsolete

zal de gebruiker verwijderen en alle bestanden die eigendom zijn van deze gebruiker op het hele systeem.


52



Het is nuttig om te onthouden dat getent niet alleen de uitvoer van gebruikers in / etc / passwd afdrukt, maar dat alle gebruikers in alle geconfigureerde userdb-backends op een bepaald systeem zijn, of het nu gaat om / etc / passwd of LDAP, enz. - Marcin Kaminski


Je kunt gebruiken compgen ook ingebouwd:

compgen -u

Will somt alle gebruikers op.


21





Dit zou moeten krijgen, onder de meeste normale situaties, alle normale (niet-systeem, niet rare, enz.) gebruikers:

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

Dit werkt door:

  • inlezen van /etc/passwd
  • gebruik makend van : als een scheidingsteken
  • als het derde veld (het gebruikers-ID-nummer) groter is dan 1000 en niet 65534, wordt het eerste veld (de gebruikersnaam van de gebruiker) afgedrukt.

Dit komt omdat op veel linux-systemen, gebruikersnamen boven de 1000 zijn gereserveerd voor onbevoegde (je zou kunnen zeggen normaal) gebruikers. Enige info hierover hier:

Een gebruikers-ID (UID) is een uniek positief geheel getal dat wordt toegewezen door een Unix-achtig   besturingssysteem voor elke gebruiker. Elke gebruiker wordt geïdentificeerd aan het systeem   door zijn UID, en gebruikersnamen worden over het algemeen alleen gebruikt als een interface voor   mensen.

UID's worden opgeslagen, samen met de bijbehorende gebruikersnamen en andere   gebruikerspecifieke informatie, in het bestand / etc / passwd ...

Het derde veld bevat de UID en het vierde veld bevat de   groep ID (GID), die standaard gelijk is aan de UID voor alle gewone   gebruikers.

In de Linux-kernels 2.4 en hoger zijn UID's niet-ondertekende 32-bits gehele getallen   die waarden kan vertegenwoordigen van nul tot 4.294.967.296. Hoe het ook is   raadzaam om alleen waarden tot 65.534 te gebruiken om te behouden   compatibiliteit met systemen die oudere kernels of bestandssystemen gebruiken die dat wel kunnen   alleen geschikt voor 16-bits UID's.

De UID van 0 heeft een speciale rol: het is altijd het root-account (d.w.z.   de almachtige administratieve gebruiker). Hoewel de gebruikersnaam kan zijn   gewijzigd voor dit account en er kunnen extra accounts worden gemaakt met   dezelfde UID, geen actie is verstandig vanuit een veiligheidsstandpunt.

De UID 65534 is meestal gereserveerd voor niemand, een gebruiker zonder systeem   privileges, in tegenstelling tot een gewone (d.w.z. niet-bevoorrechte) gebruiker.   Deze UID wordt vaak gebruikt voor personen die op afstand toegang hebben tot het systeem   via FTP (protocol voor bestandsoverdracht) of HTTP (hypertext-overdracht   protocol).

UID's 1 tot en met 99 zijn traditioneel gereserveerd voor speciale systeemgebruikers   (soms pseudo-gebruikers genoemd), zoals wheel, daemon, lp, operator,   nieuws, mail, etc. Deze gebruikers zijn beheerders die geen totaal nodig hebben   root-bevoegdheden, maar die een aantal administratieve taken uitvoeren en dus nodig hebben   meer privileges dan die voor gewone gebruikers.

Sommige Linux-distributies (dat wil zeggen versies) beginnen UID's voor   niet-bevoorrechte gebruikers op 100. Anderen, zoals Red Hat, beginnen ze bij   500, en nog anderen, zoals Debian, beginnen ze om 1000. Vanwege de   verschillen tussen distributies, kan handmatige interventie noodzakelijk zijn   als meerdere distributies worden gebruikt in een netwerk in een organisatie.

Ook kan het handig zijn om een ​​blok UID's te reserveren voor lokale gebruikers,   zoals 1000 tot 9999, en een ander blok voor externe gebruikers (d.w.z.   gebruikers elders in het netwerk), zoals 10000 tot 65534. Het belangrijke   ding is om te beslissen over een regeling en zich eraan houden.

Onder de voordelen van deze praktijk van het reserveren van blokken met nummers   voor bepaalde typen gebruikers is dat het handiger is om dit te doen   door systeemlogboeken zoeken op verdachte gebruikersactiviteiten.

In tegenstelling tot wat vaak wordt gedacht, is het niet nodig dat elke vermelding in de   UID-veld uniek zijn. Niet-unieke UID's kunnen echter beveiliging veroorzaken   problemen, en dus moeten UID's over de hele linie uniek worden gehouden   organisatie. Evenzo zou recycling van UID's van voormalige gebruikers moeten zijn   zo lang mogelijk worden vermeden.


19





lijst van alle gebruikers die kunnen inloggen (geen systeemgebruikers zoals: bin, deamon, mail, sys, etc.)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

toevoegen nieuwe gebruiker

sudo adduser new_username

of

sudo useradd new_username

verwijderen/ gebruikersnaam verwijderen

sudo userdel username

Als u de basismap wilt verwijderen (standaard de map / home / gebruikersnaam)

sudo deluser --remove-home username

of

sudo rm -r /path/to/user_home_dir

Als u alle bestanden van het systeem van deze gebruiker wilt verwijderen (niet alleen de huis-diretory)

sudo deluser --remove-all-files

15



Misschien moet je het verschil uitleggen adduser en useradd. Voeg ook de sudo-prefix naar het eerste commando. Het wachtwoordschaduwbestand kan alleen als root worden gelezen. - s3lph
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow liet me alle gebruikers zien inclusief bin, daemon, etc. en gooide deze waarschuwing: escape-reeks \$' treated as plain $ 'Ik heb dit bericht gevonden stackoverflow.com/a/25867768/847954  en nog een backslash toegevoegd en het werkte prima: awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow - jeff musk


Oké, hier is een truc die je helpt dit te sorteren. De terminal is automatisch voltooid als je de gebruiker typt en twee keer op de Tab-toets drukt. Hierin staan ​​alle opdrachten die bij de gebruiker staan ​​als eerste 4 tekens.

user (tab tab)

geeft me als mogelijke opties     useradd userdel usermod gebruikers-admin
als je meer wilt weten over een commando google it of type man     man useradd geeft     useradd - een nieuwe gebruiker maken of standaard nieuwe gebruikersinformatie bijwerken     ...     ...

om gebruikers op te noemen die je zou moeten gebruiken met wat Mitch zei.

Hoop dat ik blij ben met het voltooien van tabbladen bij bash bespaart me dingen onthouden.


7





Als u wilt weten welke gebruikers thuisdirectory's in de map / home op de machine hebben, voert u de volgende opdrachten uit

cd /home
ls 

U kunt dan de gebruikers zien die gemachtigd zijn om in te loggen op de server. Als we de bestanden van alle gebruikers willen bekijken, moet u de rootgebruiker zijn.


6



Dit toont alleen de inhoud van /home. Terwijl Ubuntu standaard gebruikersdirectory's plaatst, is dit absoluut niet verplicht. - David Foerster