Comment créer un sous-utilisateur ?

J’ai fais quelques recherches, mais je n’ai pas encore réussi à trouver comment faire …
Je voudrais créer un sous-utilisateur qui pourrait être utilisé par un autre utilisateur.
Le but serait de pouvoir avec un utilisateur X se loguer directement (avec su et sans demande de mot de passe) en un sous-utilisateur Y, par contre un utilisateur Z essayant de se loguer de la même façon avec su se verrait demander un mot de passe - et tout ça sans utiliser sudo (ou alors de manière très très restrictive de façon à ce que l’utilisateur X ne puisse se loguer que sur l’utilisateur Y).

Je vais essayer de creuser un peu plus les différentes options, et je viendrais poster si je la trouve avant que quelqu’un ne réponde ici.

Merci d’avance pour votre aide.

Salut,

Ceci se nomme un alias dans sudoers. C’est ce que je vois de plus approchant et cela créé un magnifique gouffre de sécurité :laughing: :laughing: :laughing:

[quote=“Solidstatedrive”]J’ai fais quelques recherches, mais je n’ai pas encore réussi à trouver comment faire …
Je voudrais créer un sous-utilisateur qui pourrait être utilisé par un autre utilisateur.
Le but serait de pouvoir avec un utilisateur X se loguer directement (avec su et sans demande de mot de passe) en un sous-utilisateur Y, par contre un utilisateur Z essayant de se loguer de la même façon avec su se verrait demander un mot de passe - et tout ça sans utiliser sudo (ou alors de manière très très restrictive de façon à ce que l’utilisateur X ne puisse se loguer que sur l’utilisateur Y).

Je vais essayer de creuser un peu plus les différentes options, et je viendrais poster si je la trouve avant que quelqu’un ne réponde ici.

Merci d’avance pour votre aide.[/quote]

Non mais c’est quoi toutes ces questions :doh:

[quote=“ggoodluck47”]Salut,

Ceci se nomme un alias dans sudoers. C’est ce que je vois de plus approchant et cela créé un magnifique gouffre de sécurité :laughing: :laughing: :laughing:[/quote]

Ouhais je dirais c’est du grand n’importe quoi déjà que pour un utilisateur donné qui se logue sans mots de passe c’est pas du tout sécurisant mais en plus savoir qu’il y a plusieurs utilisateur alors là c’est du grand n’importe quoi et si jamais il n’y a pas plusieurs utilisateurs mais plus une façon tordue d’appréhender l’utilisation des droits, alors là :doh:

Merci Clochette d’avoir dit tout haut ce que je pensais tout bas :laughing:

Chacun sa conception de la sécurité, moi je suis plus du genre à créer un utilisateur par application que je lance sur mon serveur … Après chacun ces goûts, si vous préférez un utilisateur qui englobe toutes les applications que vous lancez …

Donc oui j’ai plusieurs utilisateurs, et je prévois de les dédoubler avec 2 utilisateur par application :

1 - Utilisateur principal (Tous les droits sur les fichiers de l’application)
2 - Sous Utilisateur (droits très limité aux fichiers de l’utilisateur principal de l’application, read only, utilisé pour lancé l’application, du coup si une faille est exploitée les dégâts seront encore plus limités).

Ça je peux déjà le faire, mais là je cherchais à faire en sorte que le Sous utilisateur appartienne à l’utilisateur princpal, permettant à l’utilisateur principal, et seulement à cet utilisateur de se loguer en tant que sous utilisateur sans demande de mots de passe (Et je ne vois rien de choquant là dedans, vu que les fichiers lisibles par le sous utilisateur appartiennent déjà à l’utilisateur principal).

Après c’est sûr que c’est plus une question de confort, mais en rien une faille de sécurité.
sudo ne me tente pas du tout pour se genre d’utilisation … et vu que je n’ai pas trouvé de solution viable je crois que je vais dire adieux au confort pour cette fois-ci.

[quote=“Solidstatedrive”]Chacun sa conception de la sécurité, moi je suis plus du genre à créer un utilisateur par application que je lance sur mon serveur … Après chacun ces goûts, si vous préférez un utilisateur qui englobe toutes les applications que vous lancez …

Donc oui j’ai plusieurs utilisateurs, et je prévois de les dédoubler avec 2 utilisateur par application :

1 - Utilisateur principal (Tous les droits sur les fichiers de l’application)
2 - Sous Utilisateur (droits très limité aux fichiers de l’utilisateur principal de l’application, read only, utilisé pour lancé l’application, du coup si une faille est exploitée les dégâts seront encore plus limités).

Ça je peux déjà le faire, mais là je cherchais à faire en sorte que le Sous utilisateur appartienne à l’utilisateur princpal, permettant à l’utilisateur principal, et seulement à cet utilisateur de se loguer en tant que sous utilisateur sans demande de mots de passe (Et je ne vois rien de choquant là dedans, vu que les fichiers lisibles par le sous utilisateur appartiennent déjà à l’utilisateur principal).

Après c’est sûr que c’est plus une question de confort, mais en rien une faille de sécurité.
sudo ne me tente pas du tout pour se genre d’utilisation … et vu que je n’ai pas trouvé de solution viable je crois que je vais dire adieux au confort pour cette fois-ci.[/quote]

Donc je réitère c’est n’importe quoi ce que tu cherche à faire est une bêtise.

Tu doit avoir un super utilisateur qui supervisera ta machine et tes applications, et ensuite des utilisateurs appartenant à des groupes différents avec le juste nécessaire au niveau droits.

Mais ton histoire de créer plusieurs utilisateur qui se connecte sans mots de passe avec des droits super utilisateur ( déjà qu’un c’est pas recommandé, alors plusieurs :005 ), ensuite je comprends pas totalement ton envie de multiplier tes utilisateurs moi j’isolerai surtout les processus ( soit par para virtualisation soit par virtualisation ).

2tudie plutôt la gestion des groupes qui te permettra sans doute d’atteindre ton but mais ma main à coupé que le mieux est d’isoler les processus pour éviter une compromission complète de la machine dès qu’un de tes super utilisateur tombera :whistle:

Re,

Pour faire cela regarde du côté des groupes. Chaque application appartient à un groupe dont l’utilisateur principal serait propriétaire et son adjoint ne serait que faisant partie du groupe avec des droits restreints :slightly_smiling:

Clochette, tu me parais avoir mal compris une partie de la demande : à aucun moment on ne parle de « super-utilisateur » ici, mais simplement de deux utilisateurs « standards ».
su = substitute user, et pas super-user !

L’utilisation de groupes pour assigner les droits d’accès comme le suggère ggoodluck47, associé à un simple alias utilisant sudo pour la connexion au compte utilisateur secondaire sans mot de passe devraient ensemble produire le résultat que tu cherches…
Tu peux facilement configurer sudo de façon à ce qu’il ne donne aucun droit autre que ceux que tu déclares explicitement (ici la connexion sans mot de passe) !

[quote=“vv222”]Clochette, tu me parais avoir mal compris une partie de la demande : à aucun moment on ne parle de « super-utilisateur » ici, mais simplement de deux utilisateurs « standards ».
su = substitute user, et pas super-user !

L’utilisation de groupes pour assigner les droits d’accès comme le suggère ggoodluck47, associé à un simple alias utilisant sudo pour la connexion au compte utilisateur secondaire sans mot de passe devraient ensemble produire le résultat que tu cherches…
Tu peux facilement configurer sudo de façon à ce qu’il ne donne aucun droit autre que ceux que tu déclares explicitement (ici la connexion sans mot de passe) ![/quote]

[quote=“Solidstatedrive”]J’ai fais quelques recherches, mais je n’ai pas encore réussi à trouver comment faire …
Je voudrais créer un sous-utilisateur qui pourrait être utilisé par un autre utilisateur.
Le but serait de pouvoir avec un utilisateur X se loguer directement (avec su et sans demande de mot de passe) en un sous-utilisateur Y, par contre un utilisateur Z essayant de se loguer de la même façon avec su se verrait demander un mot de passe - et tout ça sans utiliser sudo (ou alors de manière très très restrictive de façon à ce que l’utilisateur X ne puisse se loguer que sur l’utilisateur Y).

Je vais essayer de creuser un peu plus les différentes options, et je viendrais poster si je la trouve avant que quelqu’un ne réponde ici.

Merci d’avance pour votre aide.[/quote]

T’appelle ça comme tu veut mais pour moi ça façon de voir c’est du suicide surtout si tu suis bien le raisonnement il y aura plusieurs utilisateur connecter directement en su sans mots de passe, ça revient pas un peut au même que de jouer avec un super utilisateur ?

Si c’est une histoire d’accès au fichiers, tu devrais regarder les ACL, qui te permettent de définir deux utilisateurs sur un fichier, et de leur donner des droits différents.

De plus, ton User principal n’aura pas à se loguer sous le compte secondaire, puisque de par ses droits, il aura accès aux fichiers en lecture/ecriture sur les documents du compte secondaire en lecture seule.

Clochette : L’utilisateur X, en tapant la commande “su Y” se connecte en tant qu’utilisateur Y…
Une fois de plus, la commande su ne sert pas uniquement à se connecter en tant que root !

Cette confusion fréquente vient simplement du fait que la commande su lancée est interprétée comme “su root”…

[quote=“vv222”]Clochette : L’utilisateur X, en tapant la commande “su Y” se connecte en tant qu’utilisateur Y…
Une fois de plus, la commande su ne sert pas uniquement à se connecter en tant que root !

Cette confusion fréquente vient simplement du fait que la commande su lancée est interprétée comme “su root”…[/quote]

Dans ma tête il y a pas de confusion je te rassure mais je vois gros comme une maison qu’il cherche à se créer des user avec des droits bien supérieur à de simple user et qu’il cherche à s’y connecter sans mots de passe pour gérer différentes applications.

Donc pour ma part le sujet me gonfle donc à la limite t’as l’air calé pour lui répondre amuse toi bien, moi je quitte le sujet.

Au contraire clochette …

Mon but est d’avoir un utilisateur principal (avec des droits standards, édition de fichiers liés à l’application), et un sous-utilisateur avec des droits encore plus restreints qu’un simple utilisateur standard …

Le sous utilisateur servira de lanceur, ces seuls droits seront par exemple d’écrire dans un dossier log/ de l’application des fichiers avec une extension définie, je vais aussi lui retirer les droits de chmod et voir si c’est possible de lui retirer quasiment toutes les commandes superflues (qu’il n’ai même pas accès à la simple commande “top”, rien naddaaa juste le stricte nécessaire pour l’application)

Du coup comme je l’ai dis un peu plus haut, je sais que je peux déjà faire ce “couple” d’utilisateur grâce aux groupes, et ma question restait surtout une question de confort (pour ne pas que l’utilisateur principal de l’application ait à taper le mot de passe de son sous-utilisateur lanceur à chaque fois - sachant que généralement je mets des mots de passe qui font minimum 15 caractères avec alternance de majuscule minuscule chiffre, et autre trucs bien chiants à taper :p)

Sachant que l’utilisateur principal de l’application aura lui même des droits d’accès réduit aux commandes inutiles, et je ne prévois en rien de donner des droits Super User à un de mes utilisateurs standards.

Par contre au niveau de sudo, est-ce que c’est totalement fiable de le faire de cette manière où ça s’apparente plus à du bricolage qu’autre chose ? Actuellement je n’utilise sudo que pour mon superutilisateur (qui ne lance aucune appli, et qui n’a le droit qu’a faire sudo aptitude).

non si tu veux restrindre: c’est

chroot ou dchroot déjà citer plus haut su ou sudo, google est assez bavare si tu a cherche évidement :slightly_smiling:

pour les groupe et les user,

un fichier a les droit

prpriétaire, groupe ,le reste

donc ton user1 principal = propriétaire
ton sous user2 = groupe
le reste userall =autre

donc a partir de la dit ce que tu veux pas que ton sous user2 ne puisse pas faire ?

En fait l’user2 je veux lui enlever l’accès à quasiment toutes les commandes shell (même un simple “cp”, “top”, “mv”, “date” etc etc) et ne lui laisser l’accès qu’au lancement de l’application, comme ça si l’application se retrouve compromis et que quelqu’un se retrouve en position de pouvoir exécuter des commandes ou du code, il n’aura accès qu’à des droits ultra restreints et ne pourra même pas obtenir l’output de commandes basiques.

Rhallalala, donne moi des exemples d’applications que tu veut lancer par ce moyen ( couple user/semi-user ).

Je maintient c’est pas le top de faire ça mieux vaudrait passer par des chroots ou l’équivalent des jails avec openvz mais bon j’attends les explications et les exemples.

Je prévois de lancer quasiment toutes les applications que j’installe avec un “couple” d’utilisateur.
La plus part des application utilise différents langages :

  • Python
  • Java
  • C
  • C++
  • Php

Et j’en passe …
Si l’utilisateur qui lance l’application est le même que celui qui possède les fichiers, et qu’une faille a permis l’exécution de code en python par exemple, l’attaquant pourra supprimer et modifier des fichiers à volonté, même upload des fichiers et les rendre exécutables … Alors que s’il exploite la même faille mais que c’est le sous-utilisateur qui a lancé le programme, il sera en mode read only et ne pourra même pas modifier le chmod des fichiers, ni forcer leur suppression.

N’étant pas un bon codeur du tout (du tout du tout du tout), même si toutes les applications que j’utilisais était opensource je ne pourrais pas vérifier la présence de failles dans le code…

Après ça peut sembler une solution un peu “lourde”, mais ça limite les dégâts.

[quote=“Solidstatedrive”]Je prévois de lancer quasiment toutes les applications que j’installe avec un “couple” d’utilisateur.
La plus part des application utilise différents langages :

  • Python
  • Java
  • C
  • C++
  • Php

Et j’en passe …
Si l’utilisateur qui lance l’application est le même que celui qui possède les fichiers, et qu’une faille a permis l’exécution de code en python par exemple, l’attaquant pourra supprimer et modifier des fichiers à volonté, même upload des fichiers et les rendre exécutables … Alors que s’il exploite la même faille mais que c’est le sous-utilisateur qui a lancé le programme, il sera en mode read only et ne pourra même pas modifier le chmod des fichiers, ni forcer leur suppression.

N’étant pas un bon codeur du tout (du tout du tout du tout), même si toutes les applications que j’utilisais était opensource je ne pourrais pas vérifier la présence de failles dans le code…

Après ça peut sembler une solution un peu “lourde”, mais ça limite les dégâts.[/quote]

Ah ouhais, c’est vague quand même, c’est quoi tes applications des scripts, des applications web ?
Pour le reste ça ne fais que confirmer ce que je pense regarde du côté de openVZ et de chroot

Tout à fait fiable !
C’est l’utilisation la plus raisonnée de sudo : donner un accès à quelques commandes clairement définies.

La meilleure méthode à mon avis est de créer de petits scripts qui ne seront en réalité que de simples alias pour la connexion vers un compte utilisateur « secondaire », pour ensuite déclarer dans le fichier sudoers l’utilisateur « principal » qui pourra lancer ce script sans mot de passe pour chacun d’entre eux.

Je suis du meme avis que clochette, dchroot ou chroot, reste le meilleur moyen car tu peux faire une base et le dupliquer si besoins , sudo reste possible également seulement je trouve moins sur qu’un chroot :wink: