Alternative le 25-01-22 Exports de variables

Postez ici vos scripts Bash, Python, etc.
Répondre
falke
Messages : 595
Enregistré le : mar. 3 oct. 2017 21:28

Exports de variables

Message par falke »

bonjour,

je viens ici poser une question qui peut sembler bête à un adminsys en général :D ...

je vous explique :

au taf j'ai un shell qui appartient à un certain utilisateur que je n'ai pas droit de modifier .

ce shell créé des comptes utilisateurs en interactif c'est à dire qu'il faut lui passer des paramètres à la main.

genre creeutilisateur.sh -user blabla -group blabla -commentaire blabla.

comme je n'ai pas de le droit de toucher à ce shell, pour éviter des saisie de paramétres fastidieux sur une ligne

, dans le répertoire où se situe se shell j'ai créé un shell passe_param_creeutilisateur.sh

dans lequel je cree les variables qui seront passées à creeutilisateur.sh (login etc ..) dont je fait un export , et ce shell appelle à son tour

creeutilisateur.sh

==> jusque-là tout fonctionne

mais je veux aller au delà :

j'ai besoin de créer le login et un certain nombre e choses sous mon propres compte aussi.,

Donc, je me dit je me crée un shell dans mon propre compte pour y créé ce dont j'ai besoin dans cette partie là, j'y recueille les variables , qui seront nécessaire au shell de le répertoire de l'utilisateur où se trouve le shell creeutilisateur.sh et j'exporte les variable dont j'ai besoin avant de l'appeler (en passant par un sudo - <autre compte>

Problème : mes variables ne sont pas récupérées sous l'autre compte, est-ce normal ? Est ce propre au fonctionnement des systèmes unix ?

Faut - il passer simplement sudo plutôt que sudo - <autre compte> pour ne pas hériter de l'environnement sur lequel je me connecte et conserver mes variables (je pense que non , mais bon..) .

Problème sans solution ?

merci pour votre aide les scripteux et autres admins ;-)
Modifié en dernier par falke le mar. 25 janv. 2022 21:36, modifié 1 fois.
System:
Host: falke-MacBookAir Kernel: 5.15.0-91-generic x86_64 bits: 64
Desktop: Cinnamon 6.0.4 Distro: Linux Mint 21.3 Virginia

Machine:
Type: Laptop System: Apple product: MacBookAir7,2 v: 1.0
Autre Distro : Debian Sid et Endeavour en triple boot sur Btrfs. Noyau change tout le temps ..

Avatar du membre
cyrille
Administrateur du site
Messages : 12285
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Exports de variables

Message par cyrille »

Une variable d'un script est locale. Elle est dans l'espace du process du script qui l'a lancé (pas plus).
SI tu veux l'exporter , il faut utiliser la commande export

Code : Tout sélectionner

export $variable
Afin de pourvoir y accéder dans l'espace de l'utilisateur ayant lancer le script (mais elle ne sortira pas de là)


TU ne peux pas passer des variables d'un environnement user à un autre

Il faut repenser ton script (à vrai dire je n'ai pas tout bien compris)

Pourquoi ne pas les stocker dans une base de sqlite ou dans un fichier temporaire accessible en lecture à tous les utilisateurs concernés ?

Ou aller les écrire dans directement dans un fichier de cet user dont la lecture serait inclus dans son .bashrc puis un source pour le relire

Problème sans solution ?
S'il n'y a pas de solution , c'est qu'il n'y a pas de problème selon le professeur Shadoko ;)

Souvent, les prises de tête en programme sont le fait d'une mauvaise vision globale et la solution n'est pas forcement compliquée... Jusque quand on a les nez dans la problématique, on a du mal à sortir la tête de là pour prendre du recul
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

falke
Messages : 595
Enregistré le : mar. 3 oct. 2017 21:28

Re: Exports de variables

Message par falke »

Salut sisi,

Tu as bien compris mon problème..
export $variable je connaissais..

Je pensais pouvoir la rendre globale.

Non je peux pas faire ce que je veux : environnement national, avec quelques libertés..
System:
Host: falke-MacBookAir Kernel: 5.15.0-91-generic x86_64 bits: 64
Desktop: Cinnamon 6.0.4 Distro: Linux Mint 21.3 Virginia

Machine:
Type: Laptop System: Apple product: MacBookAir7,2 v: 1.0
Autre Distro : Debian Sid et Endeavour en triple boot sur Btrfs. Noyau change tout le temps ..

Avatar du membre
cyrille
Administrateur du site
Messages : 12285
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Exports de variables

Message par cyrille »

Pourquoi ne pas les stocker dans un fichier temporaire ? ex sous /tmp ?
(ai édité mon précédent message pour le compléter)
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12285
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Exports de variables

Message par cyrille »

Non je peux pas faire ce que je veux : environnement national, avec quelques libertés..
pas franchement compris
TU n'as pas un accès admin sur la machine ?
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

falke
Messages : 595
Enregistré le : mar. 3 oct. 2017 21:28

Re: Exports de variables

Message par falke »

Bonne idée le fichier.

Seul problème les exécutions du Shell pourraient être concurrencielles..
System:
Host: falke-MacBookAir Kernel: 5.15.0-91-generic x86_64 bits: 64
Desktop: Cinnamon 6.0.4 Distro: Linux Mint 21.3 Virginia

Machine:
Type: Laptop System: Apple product: MacBookAir7,2 v: 1.0
Autre Distro : Debian Sid et Endeavour en triple boot sur Btrfs. Noyau change tout le temps ..

Avatar du membre
cyrille
Administrateur du site
Messages : 12285
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Exports de variables

Message par cyrille »

Seul problème les exécutions du Shell pourraient être concurrencielles..
C'est à dire ?
Tu pense écrire sans cesse dans le fichier ?
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

Avatar du membre
cyrille
Administrateur du site
Messages : 12285
Enregistré le : mar. 19 sept. 2017 08:49
Localisation : Nowhere
Contact :

Re: Exports de variables

Message par cyrille »

Sinon jette un oeil sur le fichier

Code : Tout sélectionner

/etc/environment
Par contre faudra le ressourcer après chaque modif,

Code : Tout sélectionner

source /etc/environment

https://man7.org/linux/man-pages/man5/e ... t.d.5.html
?séuqartéd sel ruoP / sécnoféd sel ruoP / sreiruréB sel ruoP / ?étéicos elleuQ

https://crust.ovh

falke
Messages : 595
Enregistré le : mar. 3 oct. 2017 21:28

Re: Exports de variables

Message par falke »

cyrille a écrit :
mar. 18 janv. 2022 18:42
Seul problème les exécutions du Shell pourraient être concurrencielles..
C'est à dire ?
Tu pense écrire sans cesse dans le fichier ?
Oui les collègues le lanceraient concurremment (nous créons tous des comptes).

Pour répondre à ta question, non nous ne sommes pas "root" juste sudoers pour certaines action traditionnellement octroyées à root par praticité.

D'autres actions sont possibles (Shells) si nous agissont dans le cadre de notre groupe d'utilisateurs.
System:
Host: falke-MacBookAir Kernel: 5.15.0-91-generic x86_64 bits: 64
Desktop: Cinnamon 6.0.4 Distro: Linux Mint 21.3 Virginia

Machine:
Type: Laptop System: Apple product: MacBookAir7,2 v: 1.0
Autre Distro : Debian Sid et Endeavour en triple boot sur Btrfs. Noyau change tout le temps ..

falke
Messages : 595
Enregistré le : mar. 3 oct. 2017 21:28

Re: Exports de variables

Message par falke »

je vais passer en résolu.

La solution sera la suivante :

lecture par le compte A du fichier créé par le compte B

chaque champ du fichier B est récupéré par une variable lisible du coup par le compte A

comme ceci :

Code : Tout sélectionner

#!/bin/bash
file="/etc/passwd"
while IFS=: read -r f1 f2 f3 f4 f5 f6 f7
do
        # display fields using f1, f2,..,f7
        printf 'Username: %s, Shell: %s, Home Dir: %s\n' "$f1" "$f7" "$f6"
done <"$file"
System:
Host: falke-MacBookAir Kernel: 5.15.0-91-generic x86_64 bits: 64
Desktop: Cinnamon 6.0.4 Distro: Linux Mint 21.3 Virginia

Machine:
Type: Laptop System: Apple product: MacBookAir7,2 v: 1.0
Autre Distro : Debian Sid et Endeavour en triple boot sur Btrfs. Noyau change tout le temps ..

Répondre