[administration] limiter l'execution des cmd à un user?
[administration] limiter l'execution des cmd à un user?
Bonjour,
Je voulais savoir s'il était possible d'autoriser juste quelques commandes unix à un user?
si oui comment?
Merci pour votre aide.
Cassy.
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.
Re: [administration] limiter l'execution des cmd à un user?
apparemment cela serait possible dans un chroot :
http://www.faqs.org/docs/securing/chap29sec296.html
http://www.faqs.org/docs/securing/chap29sec296.html
- mélodie
- Maître du Kyudo
- Messages : 2784
- Inscription : lun. 30 oct. 2006, 02:06
- Localisation : Pyrénées
Re: [administration] limiter l'execution des cmd à un user?
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 ?
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 ?
- 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?
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
Puis on autorise l'execution de ce fichier pour le propriétaire seulement donc au choix :
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
Code : Tout sélectionner
chmod 700 fichier
chmod 744 fichier
chmod 500 fichier
etc....
Un blog inintéréssant
Re: [administration] limiter l'execution des cmd à un user?
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.
@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 DevOps Blog ~
- mélodie
- Maître du Kyudo
- Messages : 2784
- Inscription : lun. 30 oct. 2006, 02:06
- Localisation : Pyrénées
Re: [administration] limiter l'execution des cmd à un user?
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).
Re: [administration] limiter l'execution des cmd à un user?
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.
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 DevOps Blog ~
- 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?
Si j'ai bien compris la question, c'est ce que veux notre interlocuteur : limiter l'execution d'une commande à 1 user.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 ?
Ç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/*
Code : Tout sélectionner
chown user:root /usr/bin/*
chmod 770 /usr/bin/*
Un blog inintéréssant
Re: [administration] limiter l'execution des cmd à un 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.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.
Peut être que des précisions de cassyb serais utile alors
~ Yet Another DevOps Blog ~
Re: [administration] limiter l'execution des cmd à un user?
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.
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.
- 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?
Ha oui, du coup, ça ne simplifie pas la chose
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
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
- 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?
Il pourra toujours les lancer avec leur chemin absolue.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.
Si les cons savaient voler, il ferait nuit tout le temps ...
Re: [administration] limiter l'execution des cmd à un user?
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
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