Dobry den.
Nainstaloval jsem Debian a mam mensi problem ohledne opravneni, ktery nejsem schopny vyresit. Touto cestou bych rad pozadal nekoho zkusenejsiho o radu.
Ve zkratce jde o webovy server (apache, tomcat), na ktery je pomoci scp nakopirovana patricna verze aplikace a nasledne pres ssh spusten skript, ktery zajisti nasazeni teto aplikace.
Nainstaloval jsem si tedy patricne knihovny a nastavil prostredi (tomcat, java, ssh, jsvc) a patricne nastavil.
- Promenne prostredi jsem zanesl do prostredi pres profile. Napriklad tomcat.sh nastavuje CATALINA_HOME, CATALINA_TMP, CATALINA_APP_BASE.
- Protoze nejsem priznivcem umistovani spoustecu aplikaci do /usr/local/bin, tak jsem kazdy bin adreser zahrnul do PATH opet pomoci profile. Dle meho nazoru je to prehlednejsi a snadno prenositelne.
- Dulezite je poznamenat, ze tomcat spoustim pres jsvc. Neni nutne to rozebirat. Vice mene jde pouze o to, ze samotny tomcat bezi pod uzivatelem tomcat a ne pod uzivatelem root.
- Nasledne jsem napsal start skript a jeho "soft link" umistil do /etc/init.d.
- Vsechny instalovane aplikace vzdy umistuji do /opt/APLIKACE. /opt/APLIKACE/current obsahuje vzdy odkaz na aktualni verzi - napriklad odkazuje na /opt/APLIKACE/APLIKACE-v1-64b. Konfigurace, spousteci skripty jsou pak vzdy realizovane pres zminovany "link".
- Protoze napriklad tomcat potrebuji pres init skript ovladat urciti uzivatele a ten samotny muze ovladat pouze root, tak jsem se rozhodl pro urcite skripty definovat opravneni pres sudo.
A z posledniho bodu plyne muj dotaz. V okamziku, kdy provedu spusteni daneho skriptu pres sudo, tak nemam nastavene patricne promenne prostredi. Jednoduse nedojde ke spusteni "shellu" a vykonani profile skriptu. Resenim je pouziti $sudo -i /opt/tomcat/tomcat.sh start. Problem ovsem je, ze v tomto pripade je po uzivateli pozadovano heslo, protoze se spousti shell a az nasledne tomcat.sh. Musel jsem tedy zanest do konfigurace prikazu sudo i shell. To je velice nebezpecne a nepekne reseni, kteremu bych se rad vyhnul.
Otazka je tedy, jak dosahnout ciste pozadovane konfigurace a soucasne nevkladat shell do konfigurace? Nejjednodusim resenim by zrejme bylo do konfigurace zadat /bin/sh /opt/tomcat/tomcat.sh. Pripada mi, ze sudo prece nemuze byt tak "hloupe", ze funkcionalitu, kterou samo poskytuje ve forme prepinace "i" pozadovat v konfiguraci takto nasilne.
Predem dekuji za pripadna reseni.