Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
/etc/profile e sudo [Risolto]
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
rb34
Guru
Guru


Joined: 03 Oct 2004
Posts: 361
Location: Rome, italy

PostPosted: Sat Dec 30, 2006 10:04 pm    Post subject: /etc/profile e sudo [Risolto] Reply with quote

Ho un cron job che esegue il backup di un repository svn.
Voglio che venga eseguito dall'utente "svn", e pertanto lancio:
Code:
/usr/bin/sudo -u svn /usr/bin/svn-hot-backup /home/svn/repos/java /home/svn/backup/java

Ma c'è un problema: sebbene io abbia impostato in /etc/profile.env
Code:
export SVN_HOTBACKUP_NUM_BACKUPS='10'

questa variabile non è impostata quando viene eseguito il comando di cui sopra, e il default è 64 che non va bene.
Se apro una shell da root la variabile è impostata, cosa devo modificare per far sì che sia tale nella "sessione" sudo?
_________________
rb


Last edited by rb34 on Wed Jan 03, 2007 12:07 pm; edited 1 time in total
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3654

PostPosted: Sun Dec 31, 2006 9:21 am    Post subject: Reply with quote

Premetto che non sono un grande utilizzatore di cron e quindi potrei dire una vaccata ma piuttosto che usare sudo non ti converrebbe specificare in /etc/crontab il comando e specificare li che debba essere lanciato dall'utente svn ? oppure non potresti creare un crontab direttamente per l'utente svn ?
Per risolvere il problema della variabile potresti farti uno script con due righe di codice, una imposta la variabile e l'altra lancia il backup.
_________________
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con
Code:
grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Back to top
View user's profile Send private message
rb34
Guru
Guru


Joined: 03 Oct 2004
Posts: 361
Location: Rome, italy

PostPosted: Sun Dec 31, 2006 5:08 pm    Post subject: Reply with quote

Kernel78 wrote:
Premetto che non sono un grande utilizzatore di cron e quindi potrei dire una vaccata ma piuttosto che usare sudo non ti converrebbe specificare in /etc/crontab il comando e specificare li che debba essere lanciato dall'utente svn ? oppure non potresti creare un crontab direttamente per l'utente svn ?

In effetti l'idea vagamente è giusta... il fatto è che l'utente svn è un utente... particolare, nel senso che non ha password e la home ce l'ha "finta" nel senso che gliel'ho creata io a mano. Insomma non c'è login come utente svn, e a meno di non renderlo utente normale (e non vorrei farlo) credo che quello che dici tu non si possa fare.


Quote:
Per risolvere il problema della variabile potresti farti uno script con due righe di codice, una imposta la variabile e l'altra lancia il backup.


Sì, certo, in realtà volevo fare una cosa "pulita" e soprattutto capire quale meccanismo si innesca subito dopo il login...
Quali script vengon richiamati? Quali file letti? Io per adesso so di /etc/profile e ~/.bash_profile, ma se ad esempio nella home dell'utente svn creo .bash_profile non viene richiamato... anche perché mi pare che a richiamarlo deve essere /etc/profile che leggerebbe /etc/profile.env, cosa che non fa!
_________________
rb
Back to top
View user's profile Send private message
Kernel78
Moderator
Moderator


Joined: 24 Jun 2005
Posts: 3654

PostPosted: Mon Jan 01, 2007 9:56 am    Post subject: Reply with quote

rb34 wrote:
Kernel78 wrote:
Premetto che non sono un grande utilizzatore di cron e quindi potrei dire una vaccata ma piuttosto che usare sudo non ti converrebbe specificare in /etc/crontab il comando e specificare li che debba essere lanciato dall'utente svn ? oppure non potresti creare un crontab direttamente per l'utente svn ?

In effetti l'idea vagamente è giusta... il fatto è che l'utente svn è un utente... particolare, nel senso che non ha password e la home ce l'ha "finta" nel senso che gliel'ho creata io a mano. Insomma non c'è login come utente svn, e a meno di non renderlo utente normale (e non vorrei farlo) credo che quello che dici tu non si possa fare.

Puoi mettere tranquillamente in /etc/crontab una riga in cui specifichi l'utente con cui deve essere eseguito un certo comando, che l'utente abbia una sua home o meno non influisce minimamente.

/EDIT:
Quote:
Sì, certo, in realtà volevo fare una cosa "pulita" e soprattutto capire quale meccanismo si innesca subito dopo il login...
Quali script vengon richiamati? Quali file letti? Io per adesso so di /etc/profile e ~/.bash_profile, ma se ad esempio nella home dell'utente svn creo .bash_profile non viene richiamato... anche perché mi pare che a richiamarlo deve essere /etc/profile che leggerebbe /etc/profile.env, cosa che non fa!

Ho installato sudo giusto per leggere il manuale (mai usato sudo prima) è ho scoperto l'opzione -i che dovrebbe fare al caso tuo (ma guarda te quante cose si scoprono leggendo i manuali :wink: ) solo che devi decidere tu se vuoi renderlo un utente normale o meno (puoi sempre disabilitarlo) ma se vuoi che venga utilizzato il meccanismo di login devono esistere i file che esistono per tutti gli utenti ...
A me sembra una cosa inutilmente laboriosa e continuo a esprimermi a favore di un banalissimo script che contenga export della variabile e comando per il backup, veloce, efficiente e funzionale.
_________________
Le tre grandi virtù di un programmatore: pigrizia, impazienza e arroganza. (Larry Wall).
Prima di postare un file togli i commenti con
Code:
grep -vE '(^[[:space:]]*($|(#|!|;|//)))'
Back to top
View user's profile Send private message
rb34
Guru
Guru


Joined: 03 Oct 2004
Posts: 361
Location: Rome, italy

PostPosted: Tue Jan 02, 2007 10:08 am    Post subject: Reply with quote

Kernel78 wrote:
Puoi mettere tranquillamente in /etc/crontab una riga in cui specifichi l'utente con cui deve essere eseguito un certo comando, che l'utente abbia una sua home o meno non influisce minimamente.

Questo è vero, tuttavia lo script completo che lancio deve fare alcune cose come root altre come "svn", per questo volevo usare sudo.
Quote:
Ho installato sudo giusto per leggere il manuale (mai usato sudo prima) è ho scoperto l'opzione -i che dovrebbe fare al caso tuo (ma guarda te quante cose si scoprono leggendo i manuali :wink: ) solo che devi decidere tu se vuoi renderlo un utente normale o meno (puoi sempre disabilitarlo) ma se vuoi che venga utilizzato il meccanismo di login devono esistere i file che esistono per tutti gli utenti ...

L'opzione -i, a parte essermi sfuggita, non fa proprio quello che ci si aspetta (ci ho perso mezz'ora per capirlo).
In pratica lanciando sudo -u svn -i <comando>
comando viene eseguito con la shell specificata in passwd, che per l'utente svn è bash, ma succede una cosa strana.
Avendo nel mio caso
Code:
/usr/bin/sudo -u svn -i /usr/bin/svn-hot-backup /home/svn/repos/java /home/svn/backup/java

ed essendo lo script /usr/bin/svn-hot-backup uno script python, non viene invocato l'interprete python!! E il primo comando letto da quello script è la parola "import" (tipica degli script python) e bash lancia l'eseguibile "import"!!!! non capivo perché mi partisse import di imageMagick!
In genere la prima riga degli script indica quale interprete invocata, con sudo -i bash si comporta in modo diverso... e la riga
Code:
#!/usr/bin/env python

viene ignorata.
Quote:
A me sembra una cosa inutilmente laboriosa e continuo a esprimermi a favore di un banalissimo script che contenga export della variabile e comando per il backup, veloce, efficiente e funzionale.

Tu hai anche ragione (e ovviamente funziona), ma voglio anche capire come usare sudo in modo che legga le var come al solito, perché se avessi bisogno un giorno di avere tutte le var a disposizione che faccio, mi copio tutto profile.env?
_________________
rb
Back to top
View user's profile Send private message
rb34
Guru
Guru


Joined: 03 Oct 2004
Posts: 361
Location: Rome, italy

PostPosted: Wed Jan 03, 2007 12:06 pm    Post subject: Reply with quote

Visto che non ci sono altri contributi e che anche da un'altra parte mi hanno detto di fare source /etc/profile (immagino intendessero da uno script lanciato da sudo), vada per quello, certo però strano che in sudo non sia previsto qualcosa "nativamente"
_________________
rb
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum