Ofte sker det at man har brug for at have sine brugere i lidt kortere snor end ellers, jeg sider f.eks. og implementerer en løsning hvor vi laver et API via SSH.
Her vil jeg gerne sikre mig at brugerne kun har adgang til de ting jeg syntes de skal have adgang til, heldigvis er der support for det i SSH. Du kan nemlig tilknytte paremetre til de enkelte SSH Nøgler. Det gøres ved f.eks. at skrive flg. foran ssh-rsai authorized_keys filen:
no-port-forwarding,no-X11-forwarding,no-pty,command="/opt/test.php" ssh-rsa AAA...
og så kunne man eksempelvis lave en /opt/test.php der ser således ud:
#!/usr/bin/php <?php switch(getenv("SSH_ORIGINAL_COMMAND")) { case "janeway": print "Doing voyager stuff ...\n"; break; case "kirk": print "Doing enterprise stuff ...\n"; break; default: print "Sorry, no cigar!\n"; break; } ?>
Og det kunne så se således ud i en test:
test@PaddleBoat:~$ ssh root@web03.mikjaer.com kirk Doing enterprise stuff ... test@PaddleBoat:~$ ssh root@web03.mikjaer.com janeway Doing voyager stuff ...
Enjoy 😉