appels system et droit d'accès aux fichers

appels system et droit d'accès aux fichers - Divers - Programmation

Marsh Posté le 18-04-2016 à 13:09:33    

Bonjour,
 
J'ai écrit un system Client/Serveur dont le serveur fournit une fonction d'appel system.
Je suis dans l'interrogation concernant la viabilité de cette commande system car je ne trouve pas de solution d'administration concernant les droits d'accès aux fichiers.
Connaissez vous une stratégies d'administration qui permettrait de garder cette commande system ?
 
S'il vous plait !
 
Merci pour vore expertise !

Reply

Marsh Posté le 18-04-2016 à 13:09:33   

Reply

Marsh Posté le 19-04-2016 à 14:13:38    

comme à chaque fois, j'ai pas compris ta question. La commande système est exécutée par ton programme (auquel cas, il le fait via un compte utilisateur qui lui est associé, avec des droits d'accès qui lui sont associés) ou la commande système est exécutée par un utilisateur connecté sur ton serveur, auquel cas, il le fera soit avec le compte utilisateur de ton programme ou, si tu l'autorises, avec un autre compte utilisateur (qui devra êtres déclaré sur le serveur).
 
Quoi qu'il en soit, un serveur tournant sur un système unix n'aura pas de pb de droits d'accès au FS s'il est configuré correctement :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-04-2016 à 14:21:31    

Bon, rufo , si tu comprend spas les question ne répond pas. Ou fait le avec umilité.
 
Quoi qu'il en soit non, pas quoi qu'il en soit, j'ai un problème, j'ai posé une question, re si tu comprends pas ne réponds pas !
Merci. Au revoir !

Reply

Marsh Posté le 19-04-2016 à 14:50:50    

"je ne trouve pas de solution d'administration concernant les droits d'accès aux fichiers. " -> je t'ai répondu en t'expliquant qu'un FS (= file system) sous Unix permettait de résoudre ton pb. :o
 
Encore une fois, tes questions et la façon dont tu t'y prends pour implémenter certaines fonctionnalités montre clairement qu'il te manquent pas mal de connaissances théoriques de base (qu'on voit généralement en école d'ingé en informatique). Mon conseil est donc qu'avant de te lancer sur de tels sujets, tu devrais avant combler ces lacunes. Tu gagnerais du temps. ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-04-2016 à 14:59:02    

Ben non, c'est toi qui manque soit de base soit de réflexion.
Je fais plein de sous entendu cert !
 
Mais si tu connecte à mon serveur tu obtiens les droist de l'utilistauer qui a lancé le serveur dans le chemin d'appel du programme.
La question est comment accéder authetiquement au ficher par le programme sans donner les même droit à l'utilisateur distant ?
 
Voilà !
Si c'est encore pas clair et que ça intéresse vraiment qu'elqu'un , je reformulerais en développant encore.
Merci pour vos réponses et de votre investissement !

Reply

Marsh Posté le 19-04-2016 à 15:27:48    

"ou la commande système est exécutée par un utilisateur connecté sur ton serveur, auquel cas, il le fera soit avec le compte utilisateur de ton programme ou, si tu l'autorises, avec un autre compte utilisateur (qui devra êtres déclaré sur le serveur). "
 
-> Qu'est-ce que tu n'as pas compris dans mon post ? Ton programme donne accès à des fonctions systèmes. Il n'empêche que c'est toi, via une fonction de saisie qui donne cette possibilité. Charge donc à toi de voir si tu lances la fonction système via le même compte que ton programme ou via un autre compte (cf la commande "su" ). Et comme indiqué, ton programme peut très bien être lancé avec un compte ayant des droits restreints (donc pas en root).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-04-2016 à 15:33:46    

Mais moi je veux donner des droit commun à tout utilisateur(s) mais qui n'en à pas sur le compte d'appelle du programme !
J'espère que c'est pas pareil !

Reply

Marsh Posté le 19-04-2016 à 15:36:53    

Je ne peux pas faire su dans un Spanw Ada !
Je vais vérifier mais je sais pas passer le passwd, je le connais pas !

Reply

Marsh Posté le 19-04-2016 à 15:48:21    

Rien ne t'empêche de déclarer un autre compte utilisateur avec moins de droits que celui qui fait tourner ton programme. Du coup, tu connais le mdp. Ce compte sera utilisé pour tous les appels systèmes des tes users.
 
Si compliqué à passer en une suele ligne de commande, tu peux très bien avoir un thread de ton programme qui soit lancé en tant que serveur (annexe) qui sera, lui, lancé avec ce fameux compte utilisateur restreint et dont la tâche sera uniquement d'exécuter ces appels systèmes des clients et renverra le résultat au serveur principal.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-04-2016 à 15:56:39    

Du coup, Merci !
 
Qu'entend tu avec moins de droit, dans Gnu/Linux t'as des droit ou pas !
Alors lesquels ?
 
Si non, je ne connais toujour pas le mot de passe, effectuvelent l'idée du thread et une idée, Merci !
Mais j'aimerais mieux règler ça autrement que par un thread spécial, tu peux reformuler s'il te plait ! Hein ! S'il te plais !
 
Le password je veux bien le passer pour une connexion mais, pas de longue à chaque appel.
 
Merci encore pour ton aide.


Message édité par Profil supprimé le 19-04-2016 à 15:56:56
Reply

Marsh Posté le 19-04-2016 à 15:56:39   

Reply

Marsh Posté le 19-04-2016 à 16:02:35    

Sous Linux, t'as pleins de droits puisque ton compte va pouvoir accéder en R/W/X à tel ou tel fichier ou répertoire, ce pour tous les répertoires/fichiers du file system. Ca te permet donc de régler finement ce à quoi un compte peut accéder et faire.
 
Le mdp, tu le mets dans le programme : pas besoin de l'envoyer à chaque requête. Tu n'en as besoin que pour lancer le thread qui va traiter les appels systèmes des clients.
 
Je t'ai donné des pistes, à toi de creuser. Pour le coup, on est plus dans le domaine de l'admin système que de la prog.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-04-2016 à 16:04:36    

Est-il possible de setter le bit SUID pour un fichier appartenant au groupe de l'utilisateur qui appel le programme.
Mais sans donner les droits sur les fichiers exclusivement du propriétaire.
 
Un SGID ?
 
Je vais motoriser la recherche.

Reply

Marsh Posté le 19-04-2016 à 16:05:04    

rufo a écrit :

Sous Linux, t'as pleins de droits puisque ton compte va pouvoir accéder en R/W/X à tel ou tel fichier ou répertoire, ce pour tous les répertoires/fichiers du file system. Ca te permet donc de régler finement ce à quoi un compte peut accéder et faire.
 
Le mdp, tu le mets dans le programme : pas besoin de l'envoyer à chaque requête. Tu n'en as besoin que pour lancer le thread qui va traiter les appels systèmes des clients.
 
Je t'ai donné des pistes, à toi de creuser. Pour le coup, on est plus dans le domaine de l'admin système que de la prog.


 
 
Ah pardon, j'ai pas lu encore.

Reply

Marsh Posté le 19-04-2016 à 16:05:54    

Toujours pas compris.

Reply

Marsh Posté le 19-04-2016 à 16:10:04    

Ton programme va créer un thread (sous unix, ça sera un processus) qui va être lancé avec les droits d'un autre compte utilisateur aux droits plus restreints que le compte qui a lancé le programme principal.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-04-2016 à 16:10:50    

Je vais jouer avec les stikybit pour les groupe !
 
Merci je pense que c'est clair !
Je suis désolé j'ai pas eu la présence d'esprit !
Tellement de chose à penser...

Reply

Marsh Posté le 19-04-2016 à 16:18:02    

Comme ça, j'ai pas besoin ni de mot de passe j'ai pas de compte, ni de thread supplémentaire, j'ai pas de compte utilistauer.
 
J'ai un compte propriétaire et un compte group je lance l'exécutable en tant que propriétaire et j'exécute en tant qu'utilistaue apartenant au group !
Faut que je test pas que c'est pas clair en fait !
.
Le but est de donnéer des droit en lecture seule pour les fichier appartenant au propriétaire pour le groupe.
Sauf pour la racine d'appel soit HOME/quelque chose/
 
Mais il me faut bien deux compte un compte admin du path et un compte invité du path avec les droit du groupe d'admin du path.
Je vais tester !
 
A+

Reply

Marsh Posté le 19-04-2016 à 18:08:17    

Bien, je galère je reprends.
 
Comment je passe le mot de passe à su en passant par spawn ?
 
Mon appel à spawn est de type :

Code :
  1. Process :=
  2. Non_Blocking_Spawn
  3.   (Program_Name => Exec_Path.all,
  4.    Args         => Buffer_Args.all,                          
  5.    Output_File  => System_Output_Filename,
  6.    Err_To_Out   => True
  7.    );          
  8. if Process /= Gnat.Os_Lib.Invalid_Pid then
  9.                
  10.    Gnat.Os_Lib.Wait_Process(Process, Success);
  11.                  
  12. end if;


 
Voilà mon problème pour le moment, j'en suis à utiliser "su -c \"command\"" si ça marche...
Parce que c'est pas gagner.


Message édité par Profil supprimé le 19-04-2016 à 18:14:30
Reply

Marsh Posté le 19-04-2016 à 19:19:46    

N'essaye pas de tordre la cuillère acr c'est impossible, tu dois faire éclater la vérité.
Quelle vérité ?
La cuillère n'existe pas.
Merci pour votre aide, je vais supprimer l'appel système, j'implémenterais moi même les fonctions donts j'ai besoin ou une sur couche je sais pas.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed