user wheel group
Ik heb een gebruiker op mijn server toegevoegd aan de 'wheel' group zodat deze dezelfde rechten als root heeft. Ik had nu eigenlijk verwacht dat ik ook een map of bestand kan aanmaken in (bijvoorbeeld) de root-folder, maar dat gaat niet. Ik kan alleen een bestand aanmaken in de '/home/pietje' folder. Is dat normaal of doe ik iets verkeerd? Ik wil dus een user creëren die hetzelfde kan als de root.
Als je een user wilt maken die hetzelfde kan als root, dan moet je deze het uid 0 geven. Lid maken van wheel is bedoeld voor het gebruik van sudo, waarmee je commando's als root (of andere users) kunt uitvoeren.
Wat ik wil is de root login (SSH) disablen. Daarnaast wil ik dan een andere user waarmee ik alles kan doen, net als met root. Ik ben zelf de enige die op de server kan. Het lijkt me irritant als ik dan voor ieder project/website een andere user moet gaan gebruiken, dus één overkoepelende user leek mij dan wel handig. Maar hoe pak ik dit dan aan? Ik dacht dus, als ik 'm lid maak van de wheel group dan is het geregeld, maar blijkbaar niet dus.
Hoe moet ik die user uid 0 geven? En conflicteert dat dan niet met root? Zijn er nog andere opties?
Je logt dan gewoon in als jezelf.
Type het commando su en geef het root password in.
Net zo (ON)veilig namelijk.
Gewijzigd op 01/05/2016 22:07:18 door Aad B
Het gebruik van su om root te worden is een best practice uit de jaren '70 of zo. Tegenwoordig wordt dat niet meer aanbevolen, en in Ubuntu-achtige distributies is het zelfs per default niet eens meer mogelijk.
Het grote nadeel van su is dat je in een shell komt en zelf actie moet ondernemen om weer terug te gaan naar je eigen (unprivileged) account. Het gevaar bestaat dus dat je te lang als root blijft werken en daarbij allerlei werkzaamheden verricht waarvoor je geen root-privileges nodig hebt. Not good.
Een betere manier om hiermee om te gaan is het gebruik van sudo. Je blijft daarmee gewoon onder je eigen ozzie-account werken, en als je dan een keertje root-rechten nodig hebt is dat heel eenvoudig te regelen. Zo kun je je bijvoorbeeld software compileren met een normaal account en de installatie uitvoeren als root:
Code (php)
1
2
3
4
2
3
4
[ozzie@localhost]$ ./configure
[ozzie@localhost]$ make
[ozzie@localhost]$ make test
[ozzie@localhost]$ sudo make install
[ozzie@localhost]$ make
[ozzie@localhost]$ make test
[ozzie@localhost]$ sudo make install
Een verschil met su is dat sudo vraagt om je eigen wachtwoord en niet om dat van root. Dat maakt het mogelijk om een bepaalde gebruiker rechten te geven om een bepaald commando als root uit te voeren, zonder dat hij daarvoor het root-wachtwoord hoeft te weten. Het wachtwoord wordt trouwens een aantal minuten onthouden, zodat je het maar 1x hoeft in te voeren als je vlak achter elkaar een serie commando's met sudo uitvoert.
Je kan zelfs voor specifieke gebruikers of commando's bepalen dat het invoeren van een wachtwoord helemaal niet nodig is. Dat gebruik ik bijvoorbeeld om het mijn monitoringsoftware mogelijk te maken bepaalde informatie over de status van de harddisks op te vragen.
Mijn 'probleem' is op dit moment dat ik vanuit Kitty inlog als pietje en dan switch naar root. Vervolgens start ik vanuit Kitty WinSCP op. Ik had verwacht dat ik dan als user root zou zijn ingelogd op WinSCP, maar dat gebeurt niet. Kitty 'ziet' de omschakeling naar de user root niet, en logt dus in WinSCP in als gebruiker pietje. Met gebruiker pietje kan ik alleen bestanden/folders aanmaken in de map '/home/pietje'. Daarbuiten heb ik de root user nodig, maar dat werkt op deze manier dus niet.
Stel dat ik een tunnel zou creëren (moet even uitzoeken nog hoe dat precies werkt) en ik schakel in Kitty van user pietje naar user root. Vervolgens start ik WinSCP en maak ik via de tunnel in Kitty verbinding met de server. Ben ik dan wél in WinSCP ingelogd als root? Weet iemand dat?
Ervan uitgaand dat je CentOS 7 gebruikt: installeer de package openssh-server. Voor andere distributies kan dat anders zijn, maar in ieder geval moet je ergens een executable met de naam 'sftp-server' hebben. (Aangezien de locatie van sftp-server ook distributie-afhankelijk is, kan ik daar in het algemeen niet veel over zeggen.)
Als je vervolgens in WinSCP een nieuwe sessie aanmaakt, zie je in je loginscherm links een menuboom. Ga daarin naar Environment -> SFTP. Je krijgt dan in het blokje "Protocol options" een setting "SFTP server". De standaard opties die daar worden genoemd werken echter niet voor CentOS. Wijzig de setting in "sudo /usr/libexec/openssh/sftp-server" (uiteraard zonder quotes). Vervolgens kun je onder je eigen account inloggen, maar heb je voor je up/downloads root-rechten.
Het is mogelijk om rechtstreeks met WinSCP naar de server te connecten.
Mijn idee is echter om straks (als het me lukt) ook port-knocking toe te gaan passen. Wat ik dan wil doen is via Kitty de tunnel openen, en met andere applicaties tunnelen (via Kitty) naar de server.
Die tunnel is ondertussen gelukt en werkt ook met WinSCP. Ik geloof alleen dat ik dus ietsje teveel wil. Ik dacht dus ... als ik inlog met user pietje of user root en ik dan via WinSCP via de tunnel zou connecten met de server, dat ik dan ook automatisch zou zijn ingelogd als pietje of als root. Echter, ik moet in WinSCP weer opnieuw de gebruikersnaam en het wachtwoord invoeren. Kan WinSCP dat niet automatisch overnemen van Kitty vraag ik me af ... of wil ik nu gewoon te veel ... zucht :(
Toevoeging op 02/05/2016 01:08:48:
Eigenlijk is de vraag dus ... is het mogelijk om in te loggen via Kitty (Putty) en dat een applicatie die gebruikmaakt van de tunnel automatisch de gebruikersnaam en wachtwoord overneemt waarmee je op dat moment bent ingelogd in Kitty. Kan zoiets?
Toevoeging op 02/05/2016 02:49:58:
*******************************************************************
Ik ga mijn eigenlijk vraag even wat breder stellen:
Ik heb uit veiligheidsoverwegingen de root-login voor SSH uitgeschakeld. Ik heb daarnaast 1 user 'ozzie' waarmee ik op SSH wil kunnen inloggen. De user ozzie mag uit veiligheidsoverwegingen geen root-rechten hebben. Immers, als iemand het wachtwoord van ozzie zou achterhalen, dan zou hij meteen root zijn. Dus, user ozzie is een normale user ...
Nou ja, bijna normaal dan. Want wat ik wél graag zou willen is dat user ozzie in alle directories bestanden en mappen kan lezen, creëren, wijzigen en verwijderen. Dus deze user hoeft geen root-commando's uit te kunnen voeren, maar ik wil wel dat ik overal bestanden en mappen kan schrijven/wijzigen enz.
Is dit mogelijk?
Een ander deel van de vraag, namelijk het automatisch rechten geven/overnemen op login is wel mogelijk, je kunt hiervoor een aparte shell opzetten, bijvoorbeeld gewoon een shellscript, en die als shell voor je gebruiker instellen. Maar waarschijnlijk kijk je gewoon op een andere manier dan de situatie. Ik zou zelf namelijk gewoon keys gebruiken en password authentication in SSH gewoon uit gooien. Dan heb je als je geen passphrase instelt ook niets meer te maken met wachtwoorden.
>> je kunt hiervoor een aparte shell opzetten, bijvoorbeeld gewoon een shellscript, en die als shell voor je gebruiker instellen.
Zou je kunnen uitleggen wat je hiermee bedoelt en hoe zoiets werkt? Het klinkt veelbelovend.
Quote:
Perhaps you already have some user john and you would like to give root permissions to a normal user.
Edit /etc/passwd file and grant root permissions to the user john by changing User and Group IDs to UID 0 and GID 0:
john:x:1001:1001::/home/john:/bin/sh
->
john:x:0:0::/home/john:/bin/sh
Edit /etc/passwd file and grant root permissions to the user john by changing User and Group IDs to UID 0 and GID 0:
john:x:1001:1001::/home/john:/bin/sh
->
john:x:0:0::/home/john:/bin/sh
Gaat dit werken? Dat bestandje aanpassen en de id's naar 0 wijzigen? Is dat dan het enige wat ik hoef te doen en werkt het dan meteen?
Ja, dat gaat werken, je kan ook met de useradd opties hetzelfde effect bereiken. Verstandig is dit absoluut niet, omdat je dan gewoon een tweede root user maakt, die ook echt alles kan dat root kan. Het wordt ook vaak door binnendringers gebruikt om een verstopte user voor zichzelf te maken.
Ozzie PHP op 02/05/2016 16:59:17:
john:x:0:0::/home/john:/bin/sh
John is hier dus root.
Niet echt handig lijkt mij.
Gewijzigd op 02/05/2016 19:09:42 door - SanThe -
Maar is john dan ook automatisch een sudoer? Mag hij nu ook root-opdrachten uitvoeren?
Waarom ik dit overigens wil is omdat ik 1 user wil gebruiken voor alle projecten. Anders moet ik straks voor ieder project weer als andere gebruiker inloggen en dat lijkt me niet echt handig. Behalve ikzelf krijgt overigens niemand anders toegang tot de server.
Verschillende users kan erg handig zijn, en het "straks moet ik als verschillende users inloggen" is erg goed te automatiseren, of bijvoorbeeld gewoon met de history options van bijvoorbeeld WinSCP. Het is een belangrijke line of defense, mocht er onverhoopt toch iemand binnendringen. Je kunt overigens uiteraard gewoon een user "ozzie" maken, en al je projecten onder /home/ozzie gooien. Dat zou prima werken. Er is voor projecten geen enkele reden om buiten de toegewezen directory te schrijven.
Probleem is dat ik met Plesk werk. Zodra ik in Plesk een project aanmaak, krijgt dat zijn eigen directory met eigen FTP user. Daar zit dus het probleem. Ik ben de enige die op die server werkt en ik vind het onzin om dan telkens voor ieder project een nieuwe user te moeten opslaan. Ik snap dat het kan, maar het werkt niet handig. Een alternatief zou zijn dat ik geen root-rechten krijg, maar dat ik bijv. in alle directories van de map 'home' kan lezen en schrijven, maar ik denk niet dat dat kan.
Een andere methode is /home bijvoorbeeld 770 geven, en lid maken van een nieuwe groep users. Verander je adduser.conf om aan te geven dat iedere user in de users groep wordt geplaatst bij aanmaken, geef de homedir 770. Dan kan iedere user in elke andere user directory lezen en schrijven.