Portál AbcLinuxu, 10. května 2025 10:09
Dobry den.
Napada me od jednoducheho ke slozitemu: acl,chroot,selinux.
Pokud ale jde o to povolit jim spusteni prave jednoho scriptu, pouzil bych ssh s klicem.
marek
alias irssi='irssi'
alias *='exit'
Jestli jde o to povolit jen dva prikazy, potom doporucuji to ssh. Je to jednoduche a prakticky neprustrelne.
Funguje to tak, ze si uzivatele vygeneruji dsa, nebo rsa klic (umi to vpodstate jekykoli klient - openssh, putty .....).
Pro openssh to vypada tak, ze na klientske stanici napiseme: ssh-keygen -t dsa # vylezou z toho .ssh/id_dsa.pub a .ssh/id_dsa
Na serveru: dame obsah .ssh/id_dsa.pub do (/home/uzivatel).ssh/authorized_keys.
Na zacatek radky pridame command="/cesta/irssi"
Je potreba nastavit prava tohoto souboru na cist jenom pro vlasnika (chmod 400 /home/uzivatel/.ssh/authorized_keys; chown -R uzivatel /home/uzivatel/.ssh).
Jeden uzivatel muze mit vic klicu a prihlasovat se pro kazdy prikaz s jinym klicem(u openssh parametr -i).
Reseni zavisle na konkretnim shellu, ktery se uzivateli spusti(alias ...), je tak snadne obejit, ze to snad ani nema cenu zavadet.
marek
#!/bin/bash while true; do echo -n '$ ' read ARGV CMD=${ARGV%% *} case $CMD in ls) $ARGV ;; date) $ARGV ;; *) echo 'Invalid command!' ;; esac done
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.