Je configure un serveur Ubuntu 11.04 VM pour l'utiliser comme serveur de base de données. Cela faciliterait la vie de tout le monde si nous pouvions permettre aux gens de se connecter à l'aide des informations d'identification Windows et peut-être même de faire en sorte que la machine fonctionne avec la sécurité actuelle, gérée par AD, que nous avons ailleurs.
La première étape était très facile à accomplir - apt-get install likewise-open
et j'étais plutôt en affaires. Le problème que je rencontre est de faire entrer nos administrateurs dans les groupes sudoers - je n'arrive apparemment pas à obtenir quoi que ce soit. J'ai essayé:
a) usermod -aG sudoers [username]
b) ajouter les noms d'utilisateur de plusieurs formats (DOMAIN\utilisateur, utilisateur @ domaine) au fichier sudoers.
Aucun de ces éléments ne semble prendre, on me dit tout de même que "DOMAINE\utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé."
Alors, comment puis-je ajouter des utilisateurs non locaux aux sudoers?
Je rencontre ce problème et voici ma solution:
Editez /etc/sudoers
: avec les entrées suivantes
Vérifiez d'abord l'utilisateur en utilisant l'ID de commande
#id <AD user>( #id domain\\aduser01 )
Résultats sur le mien:
SMB\aduser01@linux01:~/Desktop$ id smb\\aduser02
uid=914883676(SMB\aduser02) gid=914883073(SMB\domain^users) groups=914883073(SMB\domain^users),1544(BUILTIN\Administrators),1545(BUILTIN\Users),914883072(SMB\domain^admins)
getent passwd
et gid NUMBERS
ne fonctionnent pas pour moi. DOMAIN\\domain^users
fonctionne pour moi
%SMB\\domain^users ALL=(ALL) ALL
comme nous le savons tous, chaque utilisateur AD travaille également
SMB\\<aduser01> ALL=(ALL) ALL
nous avons un nom de domaine long avec le suffixe .local,
neighter le
%domainname\\group ALL=(ALL) ALL
ni le
%domainname.local\\group ALL=(ALL) ALL
travaillé...
mais si j'utilise seulement le nom de groupe comme ceci:
%Domain^Admins ALL=(ALL) ALL
ça marche.
Le problème avec les autres suggestions est que
Au lieu de cela, je voulais quelque chose qui
La solution actuelle utilise SSSD et étend le schéma AD. De cette façon, SSSD récupère périodiquement les paramètres Sudo et les informations d'identification de l'utilisateur auprès d'AD et en conserve un cache local. Les règles Sudo sont ensuite stockées dans des objets AD, où vous pouvez limiter les règles aux ordinateurs, aux utilisateurs et aux commandes, sans même toucher à un fichier sudoers sur les postes de travail.
Le tutoriel exact est beaucoup trop long à expliquer ici, mais vous pouvez trouver le guide étape par étape et quelques scripts pour vous aider avec l’automatisation ici:
TL; DR:
Prenez la dernière version de Sudo , récupérez le fichier doc/schema.ActiveDirectory, puis importez-le (assurez-vous de modifier le chemin du domaine en fonction de votre nom de domaine):
ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .
Vérifiez-le avec ADSI Edit: ouvrez le contexte de nommage Schema et recherchez la classe sudoRole.
Créez maintenant l'unité d'organisation sudoers à la racine de votre domaine. Cette unité d'organisation conservera tous les paramètres Sudo de tous vos postes de travail Linux. Sous cette unité d'organisation, créez un objet sudoRole. Pour créer l'objet sudoRole, vous devez utiliser ADSI Edit, mais une fois créé, vous pouvez utiliser tilisateurs et ordinateurs Active Directory pour le modifier.
Supposons que j'ai un ordinateur nommé foo32linux, un utilisateur appelé stewie.griffin et que je souhaite le laisser exécuter toutes les commandes avec Sudo sur cette composition. Dans ce cas, je crée un objet sudoRole sous l'OU sudoers. Pour le sudoRole, vous pouvez utiliser le nom de votre choix - je m'en tiens au nom de l'ordinateur puisque j'utilise des règles par ordinateur. Maintenant, définissez ses attributs comme suit:
Pour les commandes, vous pouvez également utiliser des entrées spécifiques, telles que / bin/less ou autre.
Ajoutez à votre / etc/sssd/sssd.conf, au moins:
[sssd]
services = nss, pam, Sudo
[domain/AD.FOOBAR.COM]
cache_credentials = True
SSSD actualise son cache local avec les règles mises à jour toutes les quelques heures, mais le moyen le plus simple de le tester consiste à simplement redémarrer l'ordinateur. Puis connectez-vous avec l'utilisateur AD et vérifiez:
Sudo -l
Il devrait répertorier toutes les entrées associées que vous avez ajoutées à cet utilisateur et à cet ordinateur. Peasy facile!
La meilleure information que j'ai pu trouver sur le sujet est ici:
http://www.mail-archive.com/[email protected]/msg00572.html
Il vous demande en gros de modifier votre fichier /etc/sudoers
avec la configuration correcte pour permettre aux personnes du groupe de votre administrateur sur AD d’avoir accès à tous les privilèges.
Si vous devez être sélectif et limiter l'utilisateur, vous pouvez le faire aussi. Mais il vous avertit que vous devez vous assurer de connaître le nom de l'utilisateur sur le système Linux en utilisant la commande getend passwd
comme indiqué.
J'utilise la commande commune
Sudo usermod -a -G Sudo DOMAIN\username
et remplacez DOMAIN\user
par DOMAIN\\\username
.
Utilisation de Centify direct J'ai ajouté un utilisateur de domaine dans le fichier/etc/sudoers.
(Utilisateur du domaine) ALL = (ALL) ALL