[administration] limiter l'execution des cmd à un user?

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
cassyb
Chu Ko Nu
Messages : 310
Inscription : jeu. 04 janv. 2007, 09:07

[administration] limiter l'execution des cmd à un user?

Message par cassyb » jeu. 04 juin 2009, 04:32

Bonjour,
Je voulais savoir s'il était possible d'autoriser juste quelques commandes unix à un user?
si oui comment?

Merci pour votre aide.
Cassy.
Dernière modification par cassyb le ven. 05 juin 2009, 00:54, modifié 1 fois.

farvardin
Maître du Kyudo
Messages : 1084
Inscription : sam. 29 mars 2008, 22:56

Re: [administration] limiter l'execution des cmd à un user?

Message par farvardin » jeu. 04 juin 2009, 07:12

apparemment cela serait possible dans un chroot :
http://www.faqs.org/docs/securing/chap29sec296.html

Avatar de l’utilisateur
mélodie
Maître du Kyudo
Messages : 2785
Inscription : lun. 30 oct. 2006, 02:06
Localisation : Pyrénées
Contact :

Re: [administration] limiter l'execution des cmd à un user?

Message par mélodie » jeu. 04 juin 2009, 08:28

Salut,

Pourquoi chroot, et pas l'utilisation des groupes ? (appartenance à un groupe par le user et par les commandes à lui faire lancer)

Quelles commandes au juste, d'ailleurs ?

Avatar de l’utilisateur
aldevar
archer de cavalerie
Messages : 172
Inscription : sam. 25 nov. 2006, 10:55
Localisation : Cote d'armor

Re: [administration] limiter l'execution des cmd à un user?

Message par aldevar » jeu. 04 juin 2009, 10:50

La question n'est pas tres developpée mais la réponse me parait qd meme assez simple.

Pour qu'un seul user puisse acceder à des commandes, il suffit de le mettre propriétaire de ces commandes avec un chown, du genre

Code : Tout sélectionner

chown user fichier
Puis on autorise l'execution de ce fichier pour le propriétaire seulement donc au choix :

Code : Tout sélectionner

chmod 700 fichier
chmod 744 fichier
chmod 500 fichier
etc....
Un blog inintéréssant

Avatar de l’utilisateur
Nic0
Chu Ko Nu
Messages : 454
Inscription : dim. 11 janv. 2009, 03:16
Localisation : Calvados (14)
Contact :

Re: [administration] limiter l'execution des cmd à un user?

Message par Nic0 » jeu. 04 juin 2009, 13:36

Salut,

@alvadar : Si je comprends bien, tu changes les chwon et chmod des bins correspondant aux commandes que tu souhaites lui laisser.

Mais avec ce chmod, ne risque tu pas de bloquer les commandes de ton propre user ?

Dans le cas d'un PC si c'est pour rajouter un compte restreint à un enfant,
par exemple, root, enfant et moi(user),

tu chown un binaire sur l'enfant, pour le lui restreindre tu appliques chmod 500 comme tu le marques (même dans le cas du chmod 700,744), et dans ce cas là, moi(user) ou tout autre user ne peut plus utiliser cette commande. (je me trompe peut être)

Je n'ai pas encore regarder la solution avancé par farvardin.
Et celle avancé par Mélodie me parrait applicable.
~ Yet Another Blog Linux ~

Avatar de l’utilisateur
mélodie
Maître du Kyudo
Messages : 2785
Inscription : lun. 30 oct. 2006, 02:06
Localisation : Pyrénées
Contact :

Re: [administration] limiter l'execution des cmd à un user?

Message par mélodie » jeu. 04 juin 2009, 13:44

Celle que j'avance est celle qui est la plus utilisée traditionnellement, entreprise et autres. Tu fais en sorte que grisbi appartienne au groupe "compta", et tu n'ajoutes au groupe "compta" que les utilisateurs qui sont des comptables (par exemple).

Avatar de l’utilisateur
Nic0
Chu Ko Nu
Messages : 454
Inscription : dim. 11 janv. 2009, 03:16
Localisation : Calvados (14)
Contact :

Re: [administration] limiter l'execution des cmd à un user?

Message par Nic0 » jeu. 04 juin 2009, 14:10

En y repensant,

Si la personne est owner du binaire, il peux changer le chmod lui même et ce redonner ainsi l'autorisation de l'executer. Ou bien tout simplement un «rm».
Dans le cas d'un enfant qui n'as pas l'esprit tordu ça va, mais je ne pense pas que ça conviendrai pour d'autre cas.
~ Yet Another Blog Linux ~

Avatar de l’utilisateur
aldevar
archer de cavalerie
Messages : 172
Inscription : sam. 25 nov. 2006, 10:55
Localisation : Cote d'armor

Re: [administration] limiter l'execution des cmd à un user?

Message par aldevar » jeu. 04 juin 2009, 14:54

Nic0 a écrit :Salut,

@alvadar : Si je comprends bien, tu changes les chwon et chmod des bins correspondant aux commandes que tu souhaites lui laisser.

Mais avec ce chmod, ne risque tu pas de bloquer les commandes de ton propre user ?
Si j'ai bien compris la question, c'est ce que veux notre interlocuteur : limiter l'execution d'une commande à 1 user.

Ça peut aussi fonctionner par groupe bien sûr, avec le chmod qui va bien (070 par exemple). C'est en effet ce qui est le plus couramment utilisé en entreprise. Ceci dit, en entreprise, on va laisser un groupe d'utilisateur (par exemple compta, commerciaux...) acceder à un certains nombre de dossiers, commandes. Ici, (toujours dans le cas où j'ai bien compris la question) c'est un seul utilisateur qui doit pouvoir acceder aux commandes. Ensuite, tant qu'il y a un 'x' quelque part dans le mask, root pourrat executer ce fichier.

EDIT : dans /usr/bin, les fichier appartiennent tous a root:root, avec des droits 755, ce qui signifie que lorsqu'un user execute 1 des ces binaires, il le fait en tant que 'other'.
On a donc 2 solutions au choix :
1) Créer un groupe 'toutseul' auquel on ajoute l'utilisateur qui peut acceder aux commandes et seulement lui, puis :

Code : Tout sélectionner

chown root:toutseul /usr/bin/*
chmod 770 /usr/bin/*
2) Mettre l'utilisateur dont il est question en tant que propriétaire et enlever les droits pour le groupe et other

Code : Tout sélectionner

chown user:root /usr/bin/*
chmod 770 /usr/bin/*
Pour moi, ces 2 solutions sont a peu pret equivalentes. Reste à connaitre le pourquoi de cette manipulation :D
Un blog inintéréssant

Avatar de l’utilisateur
Nic0
Chu Ko Nu
Messages : 454
Inscription : dim. 11 janv. 2009, 03:16
Localisation : Calvados (14)
Contact :

Re: [administration] limiter l'execution des cmd à un user?

Message par Nic0 » jeu. 04 juin 2009, 15:27

aldevar a écrit :Si j'ai bien compris la question, c'est ce que veux notre interlocuteur : limiter l'execution d'une commande à 1 user.
Je n'ai pas pris sa question comme ça en effet, pour moi, le but n'étais pas d'attribué quelques commandes à usage unique d'un utilisateur, mais bien de restreindre des commandes utilisable par tout le monde juste pour un user, n'autorisant ainsi que quelques commande à cette user.
Peut être que des précisions de cassyb serais utile alors :)
~ Yet Another Blog Linux ~

Avatar de l’utilisateur
cassyb
Chu Ko Nu
Messages : 310
Inscription : jeu. 04 janv. 2007, 09:07

Re: [administration] limiter l'execution des cmd à un user?

Message par cassyb » ven. 05 juin 2009, 00:09

Voici le scénario: vous avez un serveur, vous devez installer un binaire développé en externe (non open source).
Cet exécutable doit exécuter quelques commandes avec paramètres.
Je veux m'assurer que cette application n'essaye pas :
- d'exécuter d'autres commandes
- ou d'exécuter les mêmes commandes mais avec d'autres paramètres.

J'ai crée un compte unix (avec un shell) qui est uniquement dans un groupe de même nom (n'est donc pas dans le groupe users), je souhaite par défaut lui interdire toutes les commandes sauf celles autorisées. (listées dans un fichier cmd.allow par exemple)
Je cherche plus un "contrôleur de commandes avec gestion des paramètres" car ce serait plus rapide et plus sûr en évitant:
- de chrooter chaque application externe,
- de contrôler les droits des répertoires/fichiers déjà présents sur le serveur (trop risqué si je change les droits et que les traitements ne se font plus, de + je n'ai pas connaissance de tous les traitements).

voilà pour les précisions.

Avatar de l’utilisateur
aldevar
archer de cavalerie
Messages : 172
Inscription : sam. 25 nov. 2006, 10:55
Localisation : Cote d'armor

Re: [administration] limiter l'execution des cmd à un user?

Message par aldevar » ven. 05 juin 2009, 09:21

Ha oui, du coup, ça ne simplifie pas la chose :D

Si tu connais les binaires que cette applis à la droit de lancer, tu peux peut être créer un dossier avec des alias vers les commandes autorisée. Ensuite, tu modifies la variable d'environnement PATH de l'utilisateur lié à cette appli en lui laissant seulement le chemin vers le dossier contenant ces alias.

Je suppose que ça doit marcher
Un blog inintéréssant

Avatar de l’utilisateur
Abazigal
Chu Ko Nu
Messages : 313
Inscription : sam. 26 avr. 2008, 14:45
Localisation : Seine et Marne

Re: [administration] limiter l'execution des cmd à un user?

Message par Abazigal » ven. 05 juin 2009, 09:22

aldevar a écrit :Si tu connais les binaires que cette applis à la droit de lancer, tu peux peut être créer un dossier avec des alias vers les commandes autorisée. Ensuite, tu modifies la variable d'environnement PATH de l'utilisateur lié à cette appli en lui laissant seulement le chemin vers le dossier contenant ces alias.
Il pourra toujours les lancer avec leur chemin absolue. :?
Si les cons savaient voler, il ferait nuit tout le temps ...

farvardin
Maître du Kyudo
Messages : 1084
Inscription : sam. 29 mars 2008, 22:56

Re: [administration] limiter l'execution des cmd à un user?

Message par farvardin » ven. 05 juin 2009, 21:37

j'insiste, mais il me semble que la façon la plus sécurisée de faire cela est par un chroot dans un environnement dédié.
Dans le lien que j'ai donné plus haut ils recopient dans le dossier à chrooter toutes les commandes qui sont autorisée pour cet utilisateur spécial, et ainsi on est certain qu'il ne pourra exécuter que ces quelques binaires.

Sinon tu peux installer un bsd et utiliser les jails à la place :

http://www.diablotins.org/index.php/Jail_FreeBSD

Répondre