OVH Cloud OVH Cloud

finesse de sudo

20 réponses
Avatar
Thomas
bonjour :-)

suite au fil "ouvrir session et lancer logiciel java en cli",



je suis content d'avoir réussi à faire marcher mon logiciel avec

su zadmin -c 'sudo
~amelie/Applications/special/ServeurCarbon.app/Contents/MacOS/JavaApplica
tionStub'

:-)

mais ça me dérange quand même un petit peu de le faire marcher en tant
que root, alors qu'il a seulement besoin d'être simple admin


si j'essaye de faire marcher le logiciel en tant que simple admin, ça me
donne :

kCGErrorRangeCheck : Window Server communications from outside of
session allowed for root and console user only



est ce que c'est possible de faire en sorte que le logiciel ait les
mêmes droits qu'un admin, mais en gardant l'uid de l'utilisateur ?
(ne pas passer root, quoi)
si c'est possible, il me semble que ça lui permettrais de se connecter
au "Window Server" sans devoir être root


si c'est pas possible,
c'est quoi ce "console user" ?
est ce que ça permettrais de lui donner un peu moins de droits que root ?

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/

10 réponses

1 2
Avatar
Thomas
In article
,
Patrick Stadelmann wrote:

In article
,
Thomas wrote:

> ben, si on met un suid ou un sgid sur un script, ça n'a aucun effet !
> tu savais pas ?

C'est pas "avec le shell" alors, c'est "avec un script".



ah

C'est un
comportement voulu, pour des raisons de sécurité.



on m'a expliqué

Par contre, avec des
exécutables binaires, ça fonctionne.



oui
mais java ça fait pas des binaires, c'est qqch d'intermédiaire entre
binaire et script je crois

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Thomas
In article
,
Patrick Stadelmann wrote:

In article
,
Thomas wrote:

> si c'est ce que tu dis (droits d'accès à des fichiers),
> il doit suffire d'ajouter le groupe admin, pour avoir les droits d'accès
> en question ?

Il faut changer le groupe du fichier et ensuite activer le bit 's' du
groupe :

sudo chgrp admin ...
sudo chmod g+s ...

et le lancer normalement. Il prendra alors les droits du groupe admin
tout en conservant ceux de l'utilisateur qui le lance.



ça a l'air de marcher,


mais c'est bizarre,
le fichier de log produit par le logiciel (qu'il laisse traîner à coté),
des fois il a le groupe de l'utilisateur, et des fois le groupe admin !

ça dépend des ordis
j'ai les 2 comportements sur 2 ordis différents, mais ils ont exactement
la même version du logiciel, et exactement les mêmes maj système y
compris java ...

tu vois une explication ??

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Thomas
In article
,
Patrick Stadelmann wrote:

In article
,
Thomas wrote:

> mais ça me dérange quand même un petit peu de le faire marcher en tant
> que root, alors qu'il a seulement besoin d'être simple admin

T'es sûr de ça ? Il n'a pas besoin d'être lancé par un administrateur
pour pouvoir appeler sudo et passer root ? Sinon, c'est que c'est
vraisemblablement juste un problème de droits d'accès à des fichiers. A
ma connaissance, Mac OS X connaît deux niveau de droits d'exécutions :
utilisateur ou root, il ne me semble pas qu'il y ait des commandes ou
librairies qui peuvent être appelées par un admin et pas par un
utilisateur simple.



qu'est ce que t'appelles "niveaux de droits d'exécution" ?



sinon j'ai repris ce msg parce qu'en moulinant tout ça dans ma tête,


je considère que le fait d'appartenir au groupe "admin" c'est une
conséquence du fait d'être administrateur, sous mac os x,
mais qu'il peut y avoir plein d'autres "petites choses"

par exemple, le droit d'exécuter sudo, alors que les non admin n'ont pas
le droit


mais je me suis rendu compte (en moulinant ton msg) que peut être que
"être administrateur" c'est uniquement "appartenir au groupe admin", et
que tout le reste en découle

par exemple :
pour sudo, en fait il y a
%admin ALL=(ALL) ALL
dans sudoers

est ce que ça veut dire que si mon logiciel, avec son sgid, il a le
droit ?
et dans ce cas là, j'aurai à taper le mdp du compte qui n'est pas admin ?


et si oui, si y en a ici qui connaissent extrêmement bien le système,
est ce que c'est comme ça pour tout ?

tous les réglages sont fait pour le groupe admin, et il suffit d'être
(ou avoir) le groupe admin pour avoir absolument les mêmes droits qu'un
compte administrateur ?




> est ce que c'est possible de faire en sorte que le logiciel ait les
> mêmes droits qu'un admin, mais en gardant l'uid de l'utilisateur ?
> (ne pas passer root, quoi)

Je ne pense pas, pour la raison ci-dessus.



en fait finalement si (ouf :-) )
mais apparemment c'est pas possible de le faire avec sudo (curieux !)

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Patrick Stadelmann
In article
,
Thomas wrote:

mais c'est bizarre,
le fichier de log produit par le logiciel (qu'il laisse traîner à coté),
des fois il a le groupe de l'utilisateur, et des fois le groupe admin !



Ca dépend des droits sur le dossier parent.

Patrick
--
Patrick Stadelmann
Avatar
Patrick Stadelmann
In article
,
Thomas wrote:

In article
,
Patrick Stadelmann wrote:

> In article
> ,
> Thomas wrote:
>
> > mais ça me dérange quand même un petit peu de le faire marcher en tant
> > que root, alors qu'il a seulement besoin d'être simple admin
>
> T'es sûr de ça ? Il n'a pas besoin d'être lancé par un administrateur
> pour pouvoir appeler sudo et passer root ? Sinon, c'est que c'est
> vraisemblablement juste un problème de droits d'accès à des fichiers. A
> ma connaissance, Mac OS X connaît deux niveau de droits d'exécutions :
> utilisateur ou root, il ne me semble pas qu'il y ait des commandes ou
> librairies qui peuvent être appelées par un admin et pas par un
> utilisateur simple.

qu'est ce que t'appelles "niveaux de droits d'exécution" ?



Selon ce que le programme cherche à faire, il faut des privilèges
différent. N'importe quel programme pourra ouvrir une fenêtre, par
contre, pour pouvoir appeler certains fonctions système (comme pour
envoyer directement des commandes sur le bus SATA par exemple) il devra
être root. A ce niveau, un administrateur est un utilisateur comme les
autres, il n'a aucun privilège supplémentaires, si ce n'est celui de
pouvoir utiliser sudo pour passer root.

je considère que le fait d'appartenir au groupe "admin" c'est une
conséquence du fait d'être administrateur, sous mac os x,
mais qu'il peut y avoir plein d'autres "petites choses"

par exemple, le droit d'exécuter sudo, alors que les non admin n'ont pas
le droit



Ca n'est que le réglage par défaut.

mais je me suis rendu compte (en moulinant ton msg) que peut être que
"être administrateur" c'est uniquement "appartenir au groupe admin", et
que tout le reste en découle



Oui. Ca donne des droits pour écrire par exemple dans /Applications. Par
contre, pour ce qui d'exécuter des programmes, ça ne change rien tant
que tu n'utilise pas sudo.

est ce que ça veut dire que si mon logiciel, avec son sgid, il a le
droit ?



Le droit de d'appeler pour sudo pour passer root ? Je ne sais pas, sudo
peut voir que l'utilisateur n'appartient pas "vraiment" au groupe admin.

tous les réglages sont fait pour le groupe admin, et il suffit d'être
(ou avoir) le groupe admin pour avoir absolument les mêmes droits qu'un
compte administrateur ?



A ma connaissance, oui.

> > est ce que c'est possible de faire en sorte que le logiciel ait les
> > mêmes droits qu'un admin, mais en gardant l'uid de l'utilisateur ?
> > (ne pas passer root, quoi)
>
> Je ne pense pas, pour la raison ci-dessus.

en fait finalement si (ouf :-) )



Oui, j'ai répondu non car je pensais que ça ne suffirait pas d'être
admin pour que le soft fonctionne.

mais apparemment c'est pas possible de le faire avec sudo (curieux !)



C'est normal, avec sudo, tu perds le uid de l'utilisateur et donc
l'accès à sa session graphique (sauf si tu passes root).

Patrick
--
Patrick Stadelmann
Avatar
Thomas
In article
,
Patrick Stadelmann wrote:

In article
,
Thomas wrote:

> mais c'est bizarre,
> le fichier de log produit par le logiciel (qu'il laisse traîner à coté),
> des fois il a le groupe de l'utilisateur, et des fois le groupe admin !

Ca dépend des droits sur le dossier parent.

Patrick



ah, ben non, là c'est exactement les mêmes sur les 2 ordis

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Thomas
In article
,
Patrick Stadelmann wrote:

In article
,
Thomas wrote:

> mais c'est bizarre,
> le fichier de log produit par le logiciel (qu'il laisse traîner à coté),
> des fois il a le groupe de l'utilisateur, et des fois le groupe admin !

Ca dépend des droits sur le dossier parent.

Patrick



ah, ben non, là c'est exactement les mêmes sur les 2 ordis

drwxr-xr-x 18 silodebe silodebe 612 Jun 18 00:00 thomas


dans quel cas ça peut pas écrire un fichier avec le groupe admin (ou le
contraire) ?

je pensais pas que c'était dépendant de ça, même pour écrire avec un
utilisateur différent
(à part s'il a pas le droit d'écrire du tout, bien sur)

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Thomas
In article
,
Patrick Stadelmann wrote:

In article
,
Thomas wrote:

> In article
> ,
> Patrick Stadelmann wrote:
>
> > In article
> > ,
> > Thomas wrote:
> >
> > > mais ça me dérange quand même un petit peu de le faire marcher en tant
> > > que root, alors qu'il a seulement besoin d'être simple admin
> >
> > T'es sûr de ça ? Il n'a pas besoin d'être lancé par un administrateur
> > pour pouvoir appeler sudo et passer root ? Sinon, c'est que c'est
> > vraisemblablement juste un problème de droits d'accès à des fichiers. A
> > ma connaissance, Mac OS X connaît deux niveau de droits d'exécutions :
> > utilisateur ou root, il ne me semble pas qu'il y ait des commandes ou
> > librairies qui peuvent être appelées par un admin et pas par un
> > utilisateur simple.
>
> qu'est ce que t'appelles "niveaux de droits d'exécution" ?

Selon ce que le programme cherche à faire, il faut des privilèges
différent. N'importe quel programme pourra ouvrir une fenêtre, par
contre, pour pouvoir appeler certains fonctions système (comme pour
envoyer directement des commandes sur le bus SATA par exemple) il devra
être root. A ce niveau, un administrateur est un utilisateur comme les
autres, il n'a aucun privilège supplémentaires, si ce n'est celui de
pouvoir utiliser sudo pour passer root.



ok :-)



> est ce que ça veut dire que si mon logiciel, avec son sgid, il a le
> droit ?

Le droit de d'appeler pour sudo pour passer root ? Je ne sais pas, sudo
peut voir que l'utilisateur n'appartient pas "vraiment" au groupe admin.



voilà :-)
peut être qu'il regarde si l'uid est dans le groupe admin, en plus (ou à
la place ?) de regarder le gid

dans ce cas là c'est pas grave, je peux configurer le nécessaire,
mais c'est qqch en plus que de donner le groupe admin,
et il faut que je le sache :-)


> tous les réglages sont fait pour le groupe admin, et il suffit d'être
> (ou avoir) le groupe admin pour avoir absolument les mêmes droits qu'un
> compte administrateur ?

A ma connaissance, oui.



ben si y en a qui savent si y a d'autres choses, ça serais très gentil
de me l'indiquer avant que je me mange une erreur en tombant dessus :-))

(et si y en a qui savent qu'il n'y a rien d'autre, ça serais très gentil
de me rassurer ;-) )



> > > est ce que c'est possible de faire en sorte que le logiciel ait les
> > > mêmes droits qu'un admin, mais en gardant l'uid de l'utilisateur ?
> > > (ne pas passer root, quoi)
> >
> > Je ne pense pas, pour la raison ci-dessus.
>
> en fait finalement si (ouf :-) )

Oui, j'ai répondu non car je pensais que ça ne suffirait pas d'être
admin pour que le soft fonctionne.



ah ok :-)
j'attendais que tu répondes juste à la question précise, pour pouvoir
ensuite le faire, et voir moi même si c'était suffisant ou pas :-)


> mais apparemment c'est pas possible de le faire avec sudo (curieux !)

C'est normal, avec sudo, tu perds le uid de l'utilisateur et donc
l'accès à sa session graphique (sauf si tu passes root).



nan je disais,
c'est curieux (d'après ce que j'ai lu dans le man, qui n'est pas tjr
très fiable) qu'on puisse changer d'utilisateur, comme avec suid, mais
pas de groupe, comme avec sgid
(j'espère que tu vas me contredire :-) )

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
Avatar
Patrick Stadelmann
In article
,
Thomas wrote:

nan je disais,
c'est curieux (d'après ce que j'ai lu dans le man, qui n'est pas tjr
très fiable) qu'on puisse changer d'utilisateur, comme avec suid, mais
pas de groupe, comme avec sgid
(j'espère que tu vas me contredire :-) )



"sudo" agit différemment, il change à la fois le uid et le gid. les
flags eux ajoutent un euid ou un egid, sans toucher le uid et gid.

Patrick
--
Patrick Stadelmann
Avatar
Thomas
In article
,
Patrick Stadelmann wrote:

In article
,
Thomas wrote:

> nan je disais,
> c'est curieux (d'après ce que j'ai lu dans le man, qui n'est pas tjr
> très fiable) qu'on puisse changer d'utilisateur, comme avec suid, mais
> pas de groupe, comme avec sgid
> (j'espère que tu vas me contredire :-) )

"sudo" agit différemment, il change à la fois le uid et le gid. les
flags eux ajoutent un euid ou un egid, sans toucher le uid et gid.



ah, le gid est conservé, ben ça explique pourquoi le groupe a pu être
conservé sur le fichier historique :-)
même si ça n'explique pas pourquoi ça n'a pas le même comportement sur 2
ordis différents


aussi, uid et gid non admin + egid admin, on peut imaginer que ça donne
moins de droits qu'un vrai admin (uid et gid admin)

mais dans ce cas, il doit suffire de faire
sudo -u zadmin
puis d'utiliser le suid pour repasser dans l'autre sens, ce qui nous
donnerais uid et gid admin + euid utilisateur :-)
(j'espère que l'euid est suffisant pour se connecter au "Window Server")

--
Téléassistance / Télémaintenance
http://www.portparallele.com/ThomasDECONTES/
1 2