j'ai un fichier toto.sh et j'aimerais que des personnes x puissent
ex=E9cuter ce script sans pouvoir le lire.
Pour le moment dans mon compte moi j'ai le fichier toto.sh dont je
positionne les droits suivants : "rwx--x--x". Ensuite dans le home de
toi (/home/toi), je cr=E9=E9 un lien symbolique vers ce script : "ln -s
.=2E/moi/toto.sh toto"
Par contre impossible pour toi d'ex=E9cuter toto.sh sans positionner les
droits en lecture (ce qui peut se comprendre) et c'est l=E0 que =E7a
m'embete. J'aimerais que toi ne puisse pas lire le contenu du fichier
toto.sh.
Il doit bien y avoir une possibilit=E9s mais laquelle?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Laurent Wacrenier
Dam écrit:
Par contre impossible pour toi d'exécuter toto.sh sans positionner les droits en lecture (ce qui peut se comprendre) et c'est là que ça m'embete. J'aimerais que toi ne puisse pas lire le contenu du fichier toto.sh. Il doit bien y avoir une possibilités mais laquelle?
Éventuelement, un wrapper en C.
Dam <damien.guerin2@wanadoo.fr> écrit:
Par contre impossible pour toi d'exécuter toto.sh sans positionner les
droits en lecture (ce qui peut se comprendre) et c'est là que ça
m'embete. J'aimerais que toi ne puisse pas lire le contenu du fichier
toto.sh.
Il doit bien y avoir une possibilités mais laquelle?
Par contre impossible pour toi d'exécuter toto.sh sans positionner les droits en lecture (ce qui peut se comprendre) et c'est là que ça m'embete. J'aimerais que toi ne puisse pas lire le contenu du fichier toto.sh. Il doit bien y avoir une possibilités mais laquelle?
Éventuelement, un wrapper en C.
Pascal Bourguignon
"Dam" writes:
j'ai un fichier toto.sh et j'aimerais que des personnes x puissent exécuter ce script sans pouvoir le lire. Pour le moment dans mon compte moi j'ai le fichier toto.sh dont je positionne les droits suivants : "rwx--x--x". Ensuite dans le home de toi (/home/toi), je créé un lien symbolique vers ce script : "ln -s ../moi/toto.sh toto" Par contre impossible pour toi d'exécuter toto.sh sans positionner les droits en lecture (ce qui peut se comprendre) et c'est là que ça m'embete. J'aimerais que toi ne puisse pas lire le contenu du fichier toto.sh. Il doit bien y avoir une possibilités mais laquelle?
Directement, pour un script, ce n'est pas possible: il faut que l'interpréteur puisse lire le fichier script!
$ sudo toi ln -s /home/owner/script /home/toi/script
Ainsi, toi ne peut pas lire ni /home/owner/secret/script ni /home/owner/script mais il peut exécuter /home/owner/script.
Le wrapper peut même filter les utilisateurs qui accèdent au script, en testant le pid et gid, ce qui permet de ne donner accès à secret/script qu'à des utilisateurs bien précis.
-- __Pascal Bourguignon__ http://www.informatimago.com/ Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we. -- Georges W. Bush
"Dam" <damien.guerin2@wanadoo.fr> writes:
j'ai un fichier toto.sh et j'aimerais que des personnes x puissent
exécuter ce script sans pouvoir le lire.
Pour le moment dans mon compte moi j'ai le fichier toto.sh dont je
positionne les droits suivants : "rwx--x--x".
Ensuite dans le home de
toi (/home/toi), je créé un lien symbolique vers ce script : "ln -s
../moi/toto.sh toto"
Par contre impossible pour toi d'exécuter toto.sh sans positionner les
droits en lecture (ce qui peut se comprendre) et c'est là que ça
m'embete. J'aimerais que toi ne puisse pas lire le contenu du fichier
toto.sh.
Il doit bien y avoir une possibilités mais laquelle?
Directement, pour un script, ce n'est pas possible: il faut que
l'interpréteur puisse lire le fichier script!
$ sudo toi ln -s /home/owner/script /home/toi/script
Ainsi, toi ne peut pas lire ni /home/owner/secret/script ni /home/owner/script
mais il peut exécuter /home/owner/script.
Le wrapper peut même filter les utilisateurs qui accèdent au script,
en testant le pid et gid, ce qui permet de ne donner accès à
secret/script qu'à des utilisateurs bien précis.
--
__Pascal Bourguignon__ http://www.informatimago.com/
Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we. -- Georges W. Bush
j'ai un fichier toto.sh et j'aimerais que des personnes x puissent exécuter ce script sans pouvoir le lire. Pour le moment dans mon compte moi j'ai le fichier toto.sh dont je positionne les droits suivants : "rwx--x--x". Ensuite dans le home de toi (/home/toi), je créé un lien symbolique vers ce script : "ln -s ../moi/toto.sh toto" Par contre impossible pour toi d'exécuter toto.sh sans positionner les droits en lecture (ce qui peut se comprendre) et c'est là que ça m'embete. J'aimerais que toi ne puisse pas lire le contenu du fichier toto.sh. Il doit bien y avoir une possibilités mais laquelle?
Directement, pour un script, ce n'est pas possible: il faut que l'interpréteur puisse lire le fichier script!
$ sudo toi ln -s /home/owner/script /home/toi/script
Ainsi, toi ne peut pas lire ni /home/owner/secret/script ni /home/owner/script mais il peut exécuter /home/owner/script.
Le wrapper peut même filter les utilisateurs qui accèdent au script, en testant le pid et gid, ce qui permet de ne donner accès à secret/script qu'à des utilisateurs bien précis.
-- __Pascal Bourguignon__ http://www.informatimago.com/ Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we. -- Georges W. Bush
Ainsi, toi ne peut pas lire ni /home/owner/secret/script ni /home/owner/script mais il peut exécuter /home/owner/script.
Ça veut quand même dire que le script tournera avec les droits du propriétaire du wrapper. Une autre méthode de procéder serait d'ouvrir le script et d'exécuter l'interpréter sur un /dev/fd/x, mais dans ce cas, on est vulnérable à un attachement de l'interpréteur par un ptrace quelconque.
Pascal Bourguignon wrote in message
<87vf24bqar.fsf@thalassa.informatimago.com>:
Ainsi, toi ne peut pas lire ni /home/owner/secret/script ni /home/owner/script
mais il peut exécuter /home/owner/script.
Ça veut quand même dire que le script tournera avec les droits du
propriétaire du wrapper. Une autre méthode de procéder serait d'ouvrir le
script et d'exécuter l'interpréter sur un /dev/fd/x, mais dans ce cas, on
est vulnérable à un attachement de l'interpréteur par un ptrace quelconque.
Ainsi, toi ne peut pas lire ni /home/owner/secret/script ni /home/owner/script mais il peut exécuter /home/owner/script.
Ça veut quand même dire que le script tournera avec les droits du propriétaire du wrapper. Une autre méthode de procéder serait d'ouvrir le script et d'exécuter l'interpréter sur un /dev/fd/x, mais dans ce cas, on est vulnérable à un attachement de l'interpréteur par un ptrace quelconque.
Dam
Je pensais bien à ça aussi mais je me demandais s'il y avait plus simple... A priori non... :(
Merci pour votre aide !
Je pensais bien à ça aussi mais je me demandais s'il y avait plus
simple...
A priori non... :(
C'est OK, mais la script.sh appelé n'écrit pas sur la sortie standard... Et j'arrive pas à ce que ça le fasse...
Une idée?
Merci
Pascal Bourguignon
"Dam" writes:
C'est OK, mais la script.sh appelé n'écrit pas sur la sortie standard... Et j'arrive pas à ce que ça le fasse...
Une idée?
Ce n'est pas la faute au wrapper puisqu'il ne modifie pas les file descriptors.
Il faut voir comment il est appelé.
Sur linux, tu peux aussi voir l'état des file descriptors en mettant dans le script:
ls -l /proc/self/fd/ > /tmp/script-fd.txt
-- __Pascal Bourguignon__ http://www.informatimago.com/ Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we. -- Georges W. Bush
"Dam" <damien.guerin2@wanadoo.fr> writes:
C'est OK, mais la script.sh appelé n'écrit pas sur la sortie
standard... Et j'arrive pas à ce que ça le fasse...
Une idée?
Ce n'est pas la faute au wrapper puisqu'il ne modifie pas les file descriptors.
Il faut voir comment il est appelé.
Sur linux, tu peux aussi voir l'état des file descriptors en mettant
dans le script:
ls -l /proc/self/fd/ > /tmp/script-fd.txt
--
__Pascal Bourguignon__ http://www.informatimago.com/
Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we. -- Georges W. Bush
C'est OK, mais la script.sh appelé n'écrit pas sur la sortie standard... Et j'arrive pas à ce que ça le fasse...
Une idée?
Ce n'est pas la faute au wrapper puisqu'il ne modifie pas les file descriptors.
Il faut voir comment il est appelé.
Sur linux, tu peux aussi voir l'état des file descriptors en mettant dans le script:
ls -l /proc/self/fd/ > /tmp/script-fd.txt
-- __Pascal Bourguignon__ http://www.informatimago.com/ Our enemies are innovative and resourceful, and so are we. They never stop thinking about new ways to harm our country and our people, and neither do we. -- Georges W. Bush
Dam
Bon, j'en ai eu marre, et j'ai converti mon script.sh en script.c puis compilé et puis voilà...
Merci à tous.
Bon, j'en ai eu marre, et j'ai converti mon script.sh en script.c puis
compilé et puis voilà...