Az stdin-ről su password

Fórumok

Sziasztok!

Az a bajom, hogy nem tudom stdin-ről jelszóval megetetni a su parancsot. Ezt mondja a mocsok:

standard in must be a tty

Mi a megoldás?

Az oprendszer CentOS 6.5.

Hozzászólások

Sudo
Nagyon remélem, hogy a su tényleg csak billentyűzetről érkező jelszót fogad el.

ssh-n keresztül akarok más nevében x11vnc-t indítani. Részlet:

PORT=5900

ssh -p "$SSH_PORT" -fnL "$PORT:localhost:$PORT" "$REMOTE_IP"\
    "sudo -u $USERNAME 'x11vnc -ncache_cr -localhost -display :0'"
#    "su - $USERNAME -c 'x11vnc -ncache_cr -localhost -display :0' <<<$PASSWORD"
sleep 5
vncviewer -MenuKey F8 "::$PORT"

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

(Ezek szerint nem root-ként jelentkezel be.)
Nem az user-NEK adsz ssh bejelentkezést, hanem a saját pubkey-t kell az usernél elhelyezni. Ettől még az user nem kell hogy tudjon ssh klienst futtatni. Persze egy sorból nem derül ki ez egész rendszer összes biztonsági tulajdonsága. :)
A sumó kiváló, de ezidáig sikeresen elkerültem: +1

A héten be lesz rakva szerverterembe, aztán majd játszhatok vele, bár az az érzésem, nem ez lesz a legfontosabb. Egyébként úgy emlékszem, próbálkoztam a -t-vel is, de valami baja akkor is volt. Amúgy az az érthetetlen számomra, hogy Fedorán miért működik, ami CentOS-en nem. Helyesebben szólva CentOS szerver - remote gép - és Fedora kliens esetén jött elő a gondom.

Megkerültem a problémát. Akik piszkálhatják a gépet, azok ismerik egy közös felhasználó loginját, s annak a felhasználónak van ssh-ra lehetősége, így az ssh tunnel végén közvetlenül lehet az x11vnc-t indítani, nem kell más user nevében. A root ssh-t természetesen kizártam.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Semmi különös. Tűzfalon kell mondjuk reszelni valamit, ahhoz root jog kell. Itt arról van szó, hogy többen adminisztrálnának egy gépet attól függően, ki ér rá. Általában nincs vele dolog, nem kell hozzányúlni, csak megy és kész.

Nyilván meg lehet csinálni, hogy egy root van, aztán például tűzfalat többen piszkálhatnak, de polkithez, és efféle nyalánkságokhoz nem értek. Desktop gépen elegendő volt, hogy vannak userek meg root, file-oknál, könyvtáraknál Unix jogok, wireshark group-ba betettem azt a usert, aki sasolhatja a forgalmat, és ennyi.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ez így nem járható út?


/etc/sudoers
USER1 ALL=(USER2) NOPASSWD:COMMAND

USER1> /usr/bin/sudo -u USER2 COMMAND

Azt hiszem, expect-tel szokás átverni azokat a programokat, amik /dev/tty-hoz ragaszkodnak.