Avatar billede mik28 Seniormester
29. oktober 2008 - 20:54 Der er 38 kommentarer og
1 løsning

JAVA_HOME for alle brugere

Hej,

Er det muligt at sætte JAVA_HOME en gang for alle for alle brugere?

Jeg har p.t sat det i /etc/profile
Avatar billede mik28 Seniormester
29. oktober 2008 - 20:54 #1
men det virker åbenbart kun for root
Avatar billede mik28 Seniormester
29. oktober 2008 - 20:55 #2
Jeg kunne f.x godt tænke mig at det blev sat for de brugere som tilhører gruppen sshusers
Avatar billede mik28 Seniormester
31. oktober 2008 - 14:48 #3
jeg forstår heller ikke at når jeg er logget ind som en bruger med sudo rettigheder og skriver sudo gør et eller andet, så bliver jeg bedt om at indtaste root passwordet
Avatar billede fsconsult.dk Nybegynder
31. oktober 2008 - 21:41 #4
når du bruger sudo, bliver du bedt om dit password, og ikke root passwordet!  Det sker dog kun første gang, og efter du ikke har brugt sudo i x minutter ...
Avatar billede mik28 Seniormester
31. oktober 2008 - 21:54 #5
Okay. SÅ er der to ting jeg ikke forstår.

1. Er hele idéen med sudo ikke at give specielle brugere "root" privilegier til udvalgte komandoer?

2. Hvis jeg sætter JAVA_HOME i /ect/profile burde det så ikke gælde for alle.
Avatar billede mik28 Seniormester
31. oktober 2008 - 22:26 #6
Jeg har skrevet

JAVA_HOME=/usr/java/jdk1.6.0_10/
export JAVA_HOME

helt nede i bunden
Avatar billede mik28 Seniormester
31. oktober 2008 - 22:27 #7
af profile
Avatar billede fsconsult.dk Nybegynder
01. november 2008 - 10:54 #8
når du tilføjer folk i /etc/sudoers, skal folk som udgangspunkt indtaste deres eget password af og til når de bruger sudo kommandoen af sikkerhedshensyn. Man kan dog i /etc/sudoers angive at password ikke er nødvendigt (nopassword), hvis man ønsker at sætte sikkerheden ud af spil.
Man vil normalt kun bruge nopassword, når de kommandoer som brugeren får adgang til er meget specifikt angivet, og ikke til bruger som kan bruge sudo kommandoen til alt.
Avatar billede mik28 Seniormester
01. november 2008 - 12:59 #9
Okay. Jeg forstår bare stadig ikke hvorfor brugeren bliver bedt om at indtaste root passwordet og ikke sit eget. Ud over det har jeg stadig ikke fundet ud af hvordan jeg sætter JAVA_HOME på brugerniveau siden det åbenbart ikke er nok at sætte det i bunden af /etc/profile
Avatar billede fsconsult.dk Nybegynder
01. november 2008 - 14:54 #10
med sudo kommandoen ER det ens eget password, og ikke root passwordet man skal skrive.  ellers ville der ikke være nogen ide i det.
Avatar billede mik28 Seniormester
01. november 2008 - 15:34 #11
nej vel, men hvis jeg logger ind som en bruger som har sudo rettigheder, i dette tilfælde ret til at starte og stoppe tomcat, så bliver jeg bedt om root passwordet.
Avatar billede mik28 Seniormester
01. november 2008 - 15:35 #12
jeg vil gerne vise dig det, men så skal jeg lige vide hvilken ip du sidder på så jeg kan putte dig i min host.allow
Avatar billede mik28 Seniormester
05. november 2008 - 10:48 #13
er der slet ikke nogen som har et bud :-(
Avatar billede lassebm Nybegynder
05. november 2008 - 13:10 #14
Prøv dette i /etc/profile

export JAVA_HOME=/usr/java/jdk1.6.0_10/
export PATH=$PATH:$JAVA_HOME/bin

Kilde:
http://glassonionblog.wordpress.com/2008/07/21/linux-setting-java_home-for-a-single-user-and-all-users/
Avatar billede mik28 Seniormester
05. november 2008 - 13:49 #15
tak
Avatar billede lassebm Nybegynder
05. november 2008 - 14:07 #16
NP. Virkede det?
Avatar billede mik28 Seniormester
05. november 2008 - 15:21 #17
Det regner jeg med. Prøver det så snart jeg kommer hjem. Hvis det ikke virker så vender jeg tilbage :-)
Avatar billede mik28 Seniormester
05. november 2008 - 16:32 #18
Det virkede ikke. Jeg prøvede det her:

sudo /opt/apache-tomcat-6.0.18/bin/startup.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
Avatar billede mik28 Seniormester
05. november 2008 - 16:36 #19
cat /proc/version
Linux version 2.6.18.8-0.10-default (geeko@buildhost) (gcc version 4.1.2 2006111    5 (prerelease) (SUSE Linux)) #1 SMP Wed Jun 4 15:46:34 UTC 2008
Avatar billede lassebm Nybegynder
05. november 2008 - 16:53 #20
Det virker som om den slet ikke eksportere JAVA_HOME. HVad sker der hvis du ligger det i  .bashrc for den bruger du prøver?
Avatar billede mik28 Seniormester
05. november 2008 - 17:12 #21
hvor finder jeg den fil?
Avatar billede mik28 Seniormester
05. november 2008 - 17:29 #22
ahhh den ligger i /home/BRUGEREN. Det hjalp desvære heller ikke
Avatar billede mik28 Seniormester
06. november 2008 - 09:50 #23
jeg forstår det bare ikke. Nu har jeg også forsøgt at sætte den i /home/BRUGER/.profile, men uden held
Avatar billede lassebm Nybegynder
06. november 2008 - 10:20 #24
Du kan prøve at se om den eksportere det hvis du som brugere kører de to kommandoer:
Så har du en nogenlunde idé om hvor det går galt, alt afhængig af hvad den gør.

export JAVA_HOME=/usr/java/jdk1.6.0_10/
export PATH=$PATH:$JAVA_HOME/bin
Avatar billede mik28 Seniormester
06. november 2008 - 10:43 #25
Det ser slet ikke ud til at JAVA_HOME bliver sat

BRUGER@dhcppc3:~> export JAVA_HOME=/usr/java/jdk1.6.0_10/
BRUGER@dhcppc3:~> export PATH=$PATH:$JAVA_HOME/bin
BRUGER@dhcppc3:~> sudo /opt/apache-tomcat-6.0.18/bin/startup.sh
root's password:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
Avatar billede mik28 Seniormester
06. november 2008 - 10:44 #26
Jeg fatter minus af hvorfor jeg skal indtaste root passwordet og ikke BRUGER passwordet
Avatar billede mik28 Seniormester
06. november 2008 - 10:48 #27
Min sudoers ser således ud

%sshlogin      ALL = (%sshlogin) /opt/apache-tomcat-6.0.18/bin/startup.sh ,/opt/apache-tomcat-6.0.18/bin/shutdown.sh
Avatar billede mik28 Seniormester
06. november 2008 - 11:02 #28
burde det ikke betyde at hvis jeg som en bruger der tilhører gruppen sshlogin skriver
sudo /opt/apache-tomcat-6.0.18/bin/startup.sh
så skulle jeg bliver bedt om at indtaste den brugers password og kommandoen skulle blive udført. Hvad er det jeg ikke forstår :-(
Avatar billede lassebm Nybegynder
06. november 2008 - 11:19 #29
Jeg ville tro, uden at være sikker at når du laver den sudo, så skal du bruge root adgang. Er ikke vant til at arbejde med sudo. :)

En anden ting. Jeg tror kun at variabler gælder for brugeren og ikke globalt, og når du så prøver at eksekvere startup scriptet, er du root, og så kan den ikke finde dem. Du kan prøve dette.

(login som root)
$su -
<passwd>
export JAVA_HOME=/usr/java/jdk1.6.0_10/
export PATH=$PATH:$JAVA_HOME/bin

sh /opt/apache-tomcat-6.0.18/bin/startup.sh
Avatar billede mik28 Seniormester
06. november 2008 - 12:29 #30
Det virker fint nok hvis jeg er root. Det har det gjort hele tiden :-) Hvad betyder sh
Avatar billede lassebm Nybegynder
06. november 2008 - 13:03 #31
Ok, så drop su delen. :)

Det er bare en shell, så du kan eksekvere startup.sh scriptet. Du kan også gøre det med
. /opt/apache-tomcat-6.0.18/bin/startup.sh, men det kræver at det har eksekver rettigheder.
Avatar billede mik28 Seniormester
06. november 2008 - 13:08 #32
Startup.sh ser således ud, så den burde da være eksekverbar for alle, eller hvad?

-rwxr-xr-x 1 tomcat6 users  1956 22 jul 02:01 startup.sh
Avatar billede mik28 Seniormester
06. november 2008 - 13:09 #33
det er vel heller ikke det som er problemet
Avatar billede lassebm Nybegynder
06. november 2008 - 13:16 #34
Nej, men det er jo fordi du laver en sudo når du vil starte scriptet?

Men hvad sker der når du laver en sh eller . til at eksekvere scriptet når du er den normale bruger efter du sæetter begge export ?
Avatar billede mik28 Seniormester
06. november 2008 - 14:05 #35
Using CATALINA_BASE:  /opt/apache-tomcat-6.0.18
Using CATALINA_HOME:  /opt/apache-tomcat-6.0.18
Using CATALINA_TMPDIR: /opt/apache-tomcat-6.0.18/temp
Using JRE_HOME:      /usr/java/jdk1.6.0_10/
touch: kan ikke røre '/opt/apache-tomcat-6.0.18/logs/catalina.out': Adgang nægtet
/opt/apache-tomcat-6.0.18/bin/catalina.sh: line 292: /opt/apache-tomcat-6.0.18/logs/catalina.out: Adgang nægtet
Avatar billede lassebm Nybegynder
06. november 2008 - 14:24 #36
Hvad er det præcist du vil om man må spørge?
Det ader ikke til at den laver den fejl nu, men nu dør den tilsyneladende efter (kan også tænkes før). Og så får du en fejl for at åbne en af filerne, fordi du ikke har de korrekte rettigheder.
Avatar billede mik28 Seniormester
06. november 2008 - 14:27 #37
Det jeg gerne vil er at have en række sudo brugere som har rettigheder til f.x at starte og stoppe tomcat.
Avatar billede fsconsult.dk Nybegynder
06. november 2008 - 14:29 #38
problemet er, at tomcat har været startet som root, og derfor ligger der logfiler i logs biblioteket, som tilhører root, hvilket en alm. bruger ikke kan overskrive.

tomcat skal startes af den samme bruger hvergang, ellers få man dette problem.  er formentlig derfor han har eksperimenteret med sudo
Avatar billede fsconsult.dk Nybegynder
06. november 2008 - 14:38 #39
Såvidt jeg husker, skal du ikke bruge den startup.sh direkte, men der findes div. scripts, som på normal vis placeres i /etc/init.d, og som bl.a. lader tomcat kører som ikke-privilegeret bruger (dårlig ide at bruge root).  Dette script kan du så lade brugerne sudo på samme måde som apache og andet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester