Vraag Hoe kan worden voorkomen dat een gebruiker zich aanmeldt, maar "su - user" in Linux toestaan?


Hoe laat je een gebruiker toe om in te loggen met "su -  gebruiker"maar voorkomt u dat de gebruiker zich aanmeldt met SSH?

Ik heb geprobeerd de shell in te stellen /bin/false maar wanneer ik het probeer su het werkt niet.

Zijn er verschillende manieren om alleen aanmeldingen toe te staan su?

Is SSH's AllowUser de weg te gaan? (hoe zou ik dit doen als het de juiste weg is)


86
2018-06-09 15:13


oorsprong




antwoorden:


Je kunt gebruiken AllowUsers / AllowGroups als je maar een paar gebruikers / groepen hebt die via ssh of mogen inloggen DenyUsers / DenyGroups als je maar een paar gebruikers / groepen hebt niet toegestaan ​​om in te loggen. Merk op dat dit alleen inloggen via ssh beperkt, andere manieren om in te loggen (console, ftp, ...) zijn nog steeds mogelijk. U moet deze opties toevoegen aan uw / Etc / ssh / sshd_config bestand voor de meeste ssh-installaties.

Als u de login-shell heeft ingesteld op / Bin / false je kunt gebruiken su -s /bin/bash user (vervangen / Bin / bash met de schaal van uw keuze)


108
2018-06-09 15:40



hartelijk dank aan iedereen. Ik had niet verwacht 2 + upvotes te krijgen op mijn vraag :) Ik vind het leuk "su -s ..." veel bouwen en de console / ftp is een goed punt. Ik was echt op zoek naar zoiets als "su-'s". - NoozNooz42
De su-s-truc is goud. Ik gebruik het de hele tijd voor systeemaccounts die ik nodig heb om permissies te testen voor bijvoorbeeld apache, nobody, etc. Ik doe meestal su-user -s / bin / bash. Het optionele argument - kan worden gebruikt om een ​​omgeving te bieden die lijkt op wat de gebruiker zou verwachten als de gebruiker zich direct had aangemeld. - dmourati
Als u omgevingsvariabelen (bijvoorbeeld van / etc / profile) wilt laden die u wilt laden, kunt u het volgende doen door een extra streepje door te geven: su - -s /bin/bash user - Leons


Als je nog steeds wilt dat su werkt, kun je gebruiken sudo -u [username] of passeren -s /bin/bash naar su als tijdelijke schil. Ze doen allebei hetzelfde als er geen schaal in zit /etc/passwd.


13
2018-02-18 10:04





Als een account geen wachtwoord heeft (passwd -d gebruikersnaam), kunnen ze niet interactief inloggen (console, SSH, etc.). Als ze een geldige shell hebben, su zal nog steeds werken. Let echter op de "interactief"; als iemand besluit een SSH-sleutelpaar voor de account in te stellen, zal het werken!


7
2018-06-09 15:53



moet de gebruiker een geldige shell hebben voor su? Ik ben er vrij zeker van dat je nog steeds in dezelfde originele shell zit nadat je su naar een andere gebruiker ... je logt niet echt in als de andere gebruiker ... Dus, het instellen van de shell op / dev / null zou kunnen werken ook. - Brian Postow
Ja, het heeft nog steeds een geldige shell nodig: [root @ localhost ~] # su daemon Dit account is momenteel niet beschikbaar. [root @ localhost ~] # su - daemon Dit account is momenteel niet beschikbaar. (RHEL-systeem, daemon's shell is / sbin / nologin) - astrostl


Voeg in sshd_config een regel toe DenyUser [username]

Merk op dat dit niet belet dat die gebruiker zich via de console aanmeldt.


3
2018-06-09 15:28



Dat zou moeten zijn DenyUsers, met een 's'. - David G


In aanvulling op wat hierboven is vermeld (uitschakelen en / of niet instellen van het gebruikerswachtwoord), kan de module pam_access (zoek manpagina op pam_access en access.conf) worden gebruikt om inlogtoegang te regelen.


2
2017-09-27 22:16





zoals anderen hebben gezegd;

DenyUser username of DenyGroup groupname in sshd_config zou keypair / wachtwoord login via ssh voorkomen.

hoewel ik meestal zoiets doe AllowGroup ssh of iets in die zin, en voeg expliciet mensen toe die SSH-toegang tot die groep nodig hebben.

dan kun je doen wat anderen hebben gezegd: passwd -d username om het gebruikerswachtwoord leeg te maken, zodat ze zich niet kunnen aanmelden bij de console of op een andere manier. of nog beter passwd -l username om het account te 'vergrendelen'. het is mogelijk dat ssh de toegang tot een geblokkeerd account weigert, zelfs met sleutels, maar ik ben niet positief.


1
2018-06-09 16:15



Eigenlijk kunt u met ssh inloggen met behulp van sleutelverificatie, zelfs als het accountwachtwoord is vergrendeld. - Richard Holloway
Goed om te weten, bedankt voor de verduidelijking ... - cpbills


Zoals ik in een opmerking heb vermeld, denk ik dat je nog steeds su in een account met een ongeldige shell kunt. Dus als je de shell van de gebruiker instelt op / dev / null of wat ook de shell of bin is, zou je su in die gebruiker moeten kunnen blijven ... maar elke poging om op een of andere manier in te loggen zal je stoppen met ...


1
2018-06-09 16:26





bewerk / etc / shadow door toe te voegen! naar het begin van het wachtwoord hash.

username:!<hash>:#####:#:#####:#:::

Bij het beveiligen van een nieuwe installatie is dit het eerste wat ik doe na het installeren van sudo, zodat niemand de root-gebruiker kan gebruiken om in te loggen of in het systeem te ssh, sudo-gebruikers kunnen nog steeds uitvoeren als root-gebruiker.


1
2017-12-31 01:38





Geef geen wachtwoord op voor de gebruiker die zich niet mag aanmelden of verwijderen.

# passwd -d myuser

0
2018-06-09 15:50