Ingelogde gebruiker verwijderen

Pagina: 1
Acties:
  • 122 views sinds 30-01-2008
  • Reageer

  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 20:27
vandaag was ik weer eens ff aan het spelen met gebruikers en rechten enz op m'n Debian bak.
Op een gegeven moment had ik een gebruiker 'test' aangemaakt en was via SSH op de eigen pc ingelogd (jah erg handig :P ). Vervolgens verwijderde ik de gebruiker van het systeem, maar ik was nog steeds met 'test' ingelogd en kon nog steeds bestanden maken enz. Hetzelfde is het geval wanneer ik met 'test' gewoon zou hebben ingelogd ipv via SSH.

Dit zal voor veel van jullie wel al bekend zijn, maar ik vind het toch raar dat de gebruiker dan niet meteen gekick'ed wordt want de gebruiker kan nu nog fijn doorwerken alsof er (bijna) niets aan de hand is. :)

Een voorbeeldje:
Stel iemand heeft een webserver, en andere mensen mogen er gebruik van maken. De eigenaar heeft die personen allemaal een account gegeven en ze kunnen nu fijn bestanden kwijt op die server. Vervolgens komt de eigenaar er ineens achter dat iemand illegale zooi heeft geplaatst en hij wilt er niets van weten, en verwijdert de gebruiker met alle data. De gebruiker kan nu nog steeds ingelogd zijn en bestanden aanmaken op de pc, met de (oorspronkelijk) bij hem behorende UID en GID, terwijl de user eigenlijk niet meer bestaat. De eigenaar kan nu denken fijn van het probleem af te zijn, maar de user kan nu nog steeds bestanden aanmaken. B)

En ja, ik weet dat de eigenaar zo de sessie van de gebruiker kan beeindigen en alsnog de bestanden met zijn UID en GID opzoeken, maar zou het niet handiger zijn als dus ook meteen alle processen van deze gebruiker worden beeindigd? :?

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


  • nzyme
  • Registratie: November 2001
  • Laatst online: 28-12-2025

nzyme

terror

als jij een gebruiker van je systeem schopt met deluser doe je eigelijk niets anders dan een link tussen de naam "piet" en "UID 1001" te verwijderen.... Doe maar eens een ls -l op een bestand wat je gemaakt heb met je niet meer bestaande user... Je zal zien dat er geen <gebruiker> meer staat maar nog slechts het UID van die gebruiker :)

Als je dat doorhebt snap je ook waarom niet zomaar meteen alles gekicked wordt op het moment dat jij een deluser doet :)

ik hoop dat ik dit goed uitleg trouwens...

edit: je zou natuurlijk wat dingen kunnen toevoegen aan deluser, aangzien het slechts een shellscript is :)

[ Voor 13% gewijzigd door nzyme op 15-07-2006 08:26 ]

| Hardcore - Terror |


  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 20:27
ja, ik begrijp dat je feitelijk alleen de verbinding verwijdert en dat je optioneel ook meteen alle bestanden van de gebruiker kan maken, maar had het ook niet handiger geweest als er meteen een optie in zat om de sessie van de gebruiker te beeindigen? Voor de luie admins :p

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
FRidh schreef op vrijdag 14 juli 2006 @ 21:54:
En ja, ik weet dat de eigenaar zo de sessie van de gebruiker kan beeindigen en alsnog de bestanden met zijn UID en GID opzoeken, maar zou het niet handiger zijn als dus ook meteen alle processen van deze gebruiker worden beeindigd? :?
Ik zou dat helemaal niet handig vinden, als ik zeg dat een user verwijderd moet worden, wil ik dat een user verwijderd wordt, niet dat de user verwjderd wordt en alle bestanden met toevallig zijn UID ook verwijderd worden. Het kan namelijk heel goed zijn dat er nog wat met die bestanden gebeuren moet.
De tools op je linux-machine doen precies waarvoor ze gemaakt zijn (als het goed is). deluser verwijdert users uit de userdatabase, niets meer, niet minder. Als je wil dat er meer gebeurt kun je dat triviaal scripten (of zoeken naar iets met vergelijkbare functionaliteit) met tools die ook weer precies 1 ding doen. Bijvoorbeeld pkill, find en rm, die doen ook precies 1 ding van de dingen die jij wil dat er gebeuren als je een user "kickt"

  • nzyme
  • Registratie: November 2001
  • Laatst online: 28-12-2025

nzyme

terror

blaataaps schreef op zaterdag 15 juli 2006 @ 10:31:
[...]

Ik zou dat helemaal niet handig vinden, als ik zeg dat een user verwijderd moet worden, wil ik dat een user verwijderd wordt, niet dat de user verwjderd wordt en alle bestanden met toevallig zijn UID ook verwijderd worden. Het kan namelijk heel goed zijn dat er nog wat met die bestanden gebeuren moet.
De tools op je linux-machine doen precies waarvoor ze gemaakt zijn (als het goed is). deluser verwijdert users uit de userdatabase, niets meer, niet minder. Als je wil dat er meer gebeurt kun je dat triviaal scripten (of zoeken naar iets met vergelijkbare functionaliteit) met tools die ook weer precies 1 ding doen. Bijvoorbeeld pkill, find en rm, die doen ook precies 1 ding van de dingen die jij wil dat er gebeuren als je een user "kickt"
hm, had ik het toch goed :p

| Hardcore - Terror |


  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Ik zie net in de manpage van deluser dat die gewoon al de delete-files functionaliteit hebt die je zoekt trouwens, heb je die al eens gelezen? :)

  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 20:27
blaataaps schreef op zaterdag 15 juli 2006 @ 10:35:
Ik zie net in de manpage van deluser dat die gewoon al de delete-files functionaliteit hebt die je zoekt trouwens, heb je die al eens gelezen? :)
ja de delete-functie had ik al gezien in de man page. Dat is idd een optie, maar mij leek het wel handig als de functie van de processen van die gebruiker te beeindigen er ook meteen als optie bijzat, dat bedoel ik :)


edit: tis idd wel erg dubbelop om zulke dingen allemaal weer in deluser te zetten :X

[ Voor 9% gewijzigd door FRidh op 15-07-2006 11:45 ]

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-02 15:14

deadinspace

The what goes where now?

Da's vreemd. Hier klagen userdel en deluser namelijk braaf als een user nog ingelogd is (getest op sarge en sid, test was ingelogd via ssh test@localhost):
code:
1
2
3
4
5
6
[root@gemini marcelm]# userdel test
userdel: user test is currently logged in
[root@gemini marcelm]# deluser test
Removing user `test'...
userdel: user test is currently logged in
/usr/sbin/deluser: `/usr/sbin/userdel test' returned error code 8.  Aborting.

  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 20:27
deadinspace schreef op maandag 17 juli 2006 @ 00:34:
Da's vreemd. Hier klagen userdel en deluser namelijk braaf als een user nog ingelogd is (getest op sarge en sid, test was ingelogd via ssh test@localhost):
code:
1
2
3
4
5
6
[root@gemini marcelm]# userdel test
userdel: user test is currently logged in
[root@gemini marcelm]# deluser test
Removing user `test'...
userdel: user test is currently logged in
/usr/sbin/deluser: `/usr/sbin/userdel test' returned error code 8.  Aborting.
ja klopt, er wordt idd geklaagd. Alleen je kan dan forceren dat de gebruiker toch verwijderd moet worden userdel -f. Dan wordt alles verwijderd, ook al is de gebruiker nog ingelogd.

Nu kom je echter in de situatie dat de gebruiker kan doorwerken, met alleen een UID en GID, maar zijn gebruikersnaam bestaat niet meer. De gebruiker kan nu nog gewoon bestanden plaatsen en verwijderen.

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

offtopic:
deadin~1 :w
Meesterlijke sig heb je :P
FRidh schreef op maandag 17 juli 2006 @ 09:31:
[...]


ja klopt, er wordt idd geklaag. Alleen je kan dan forceren dat de gebruiker toch verwijderd moet worden userdel -f. Dan wordt alles verwijderd, ook al is de gebruiker nog ingelogd.

Nu kom je echter in de situatie dat de gebruiker kan doorwerken, met alleen een UID en GID, maar zijn gebruikersnaam bestaat niet meer. De gebruiker kan nu nog gewoon bestanden plaatsen en verwijderen.
Mja dat klopt maar dat is ook gewoon de bedoeling van het script zoals eerder gezegd :)
Doe eens:
code:
1
nano `which deluser`
of vi, pico, joe, ee, mcedit, emacs, whatev..

En check een beetje onderaan van het script. Daar zie je allemaal argv's staan voor het script zoals --remove-home.
Wat let je om er wat bij te maken zoals --reset-connection
En dan zou ik er een hele kleine functie bij maken die heel simpel gebruik maakt van 'skill'.
Check man skill maar eens :)
edit, makkelijker: http://www.webhostingtalk.com/archive/thread/136724-1.html

[ Voor 11% gewijzigd door DeMoN op 17-07-2006 10:21 ]

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 03-02 15:14

deadinspace

The what goes where now?

FRidh schreef op maandag 17 juli 2006 @ 09:31:
ja klopt, er wordt idd geklaagd. Alleen je kan dan forceren dat de gebruiker toch verwijderd moet worden userdel -f. Dan wordt alles verwijderd, ook al is de gebruiker nog ingelogd.

Nu kom je echter in de situatie dat de gebruiker kan doorwerken, met alleen een UID en GID, maar zijn gebruikersnaam bestaat niet meer. De gebruiker kan nu nog gewoon bestanden plaatsen en verwijderen.
Ja, maar je was er door de tools op gewezen dat de gebruiker nog ingelogd was, en dat dat (blijkbaar) problematisch is. In de manpage van userdel staat niet dat de -f optie de gebruiker ook uitlogt, alleen dat de gebruiker toch verwijderd wordt ondanks het feit dat hij nog ingelogd is. Daarnaast staat er bij de -f optie dit:
Note: This option is dangerous and may let your system in an inconsistent state.
Waardoor je sowieso twee keer zou moeten nadenken voordat je die optie gebruikt.

Misschien dat een userdel optie om de gebruiker ook uit te loggen handig is, maar ikzelf neig er meer naar om dat aan de admin over te laten, en de beschrijving van de -f flag in de userdel manpage te verduidelijk zodat er expliciet staat dat de gebruiker niet uitgelogd wordt.
DeMoN schreef op maandag 17 juli 2006 @ 10:17:
offtopic:
deadin~1 :w
Meesterlijke sig heb je :P
Die heb ik ook maar schaamteloos gejat van ergens op slashdot hoor :P

  • FRidh
  • Registratie: Januari 2004
  • Laatst online: 20:27
deadinspace schreef op maandag 17 juli 2006 @ 22:19:

Misschien dat een userdel optie om de gebruiker ook uit te loggen handig is, maar ikzelf neig er meer naar om dat aan de admin over te laten, en de beschrijving van de -f flag in de userdel manpage te verduidelijk zodat er expliciet staat dat de gebruiker niet uitgelogd wordt.
Ik denk dat ik niet helemaal duidelijk ben geweest.
Ik had dit al in de man gezien, en juist omdat er ook bij stond dat je de data kon verwijderen leek het me enigzins wel vansprekend dat er direct een optie bij zat om de processen van die gebruiker te beeindigen.

Nu was ik alleen benieuwd naar jullie mening, of jullie dat nou handig vonden of niet. Zoals Blaataaps zei, zijn er onder linux verschillende tooltjes die allemaal hun taak hebben. Userdel is gemaakt om de gebruiker te verwijderen, en optioneel ook zijn bestanden, en omdat die optie erbij zat leek het me enigzins vanzelfsprekend om ook in userdel een optie te hebben om de processen van de gebruiker te beeindigen (bijv m uit te loggen).

De 1 vindt het dubbelop en overbodig, en de andere wellicht wel handig :)

Research is to see what everybody else has seen, and to think what nobody else has thought - Albert Szent-Györgyi


  • M-ThijZ
  • Registratie: Maart 2003
  • Laatst online: 04-02 18:15

M-ThijZ

Riding on Rails

FRidh schreef op maandag 17 juli 2006 @ 22:43:
[...]


Ik denk dat ik niet helemaal duidelijk ben geweest.
Ik had dit al in de man gezien, en juist omdat er ook bij stond dat je de data kon verwijderen leek het me enigzins wel vansprekend dat er direct een optie bij zat om de processen van die gebruiker te beeindigen.

Nu was ik alleen benieuwd naar jullie mening, of jullie dat nou handig vonden of niet. Zoals Blaataaps zei, zijn er onder linux verschillende tooltjes die allemaal hun taak hebben. Userdel is gemaakt om de gebruiker te verwijderen, en optioneel ook zijn bestanden, en omdat die optie erbij zat leek het me enigzins vanzelfsprekend om ook in userdel een optie te hebben om de processen van de gebruiker te beeindigen (bijv m uit te loggen).

De 1 vindt het dubbelop en overbodig, en de andere wellicht wel handig :)
Van een tool verwacht ik dat het 1 ding doet, en dat het deze dan ook goed doet. Als ik een commando in typ om een gebruiker te verwijderen, verwacht ik dat de gebruiker van het systeem verwijderd wordt, en niet dat zijn sokken ook nog gestreken worden.
Wanneer ik dat wel zou willen schrijf ik wel een losse sok-strijk tool, die ik dankzij een pipe '|' of een andere functionaliteit in mijn shell wel aan het userdel commando knutsel.
Het voordeel hiervan, en dat is waar GNU op gebaseerd is (en waarom het zo mooi werkt met open source), is dat iemand anders heel gemakkelijk mijn losse sok-strijk tool kan gebruiken in combinatie met een heel ander programma.
Ik kan wel een gebruiker zijn sokken willen strijken wanneer ik deze gebruiker verwijderd, maar een ander will liever dat de sokken van een gebruiker gestreken worden wanneer hij deze nieuw aanmaakt.

Moet het useradd en het userdel commando allebei de sok-strijk functionaliteit inbakken (tesamen met tig andere tools)? Of heb je liever kleine losse tooltjes die je makkelijk aan elkaar kunt linken?
Pagina: 1