73 votes

Est-il possible d'arrêter la création de .sudo_as_admin_successful ?

Chaque fois que j'exécute une commande avec sudo, un fichier appelé .sudo_as_admin_successful est créé dans mon répertoire personnel. Autant que je sache, cela existe dans le seul but de désactiver ce message que bash imprime au démarrage :

Pour exécuter une commande en tant qu'administrateur (utilisateur "root"), utilisez "sudo ".
Consultez "man sudo_root" pour plus de détails.

Il est possible d'arrêter ce message en commentant la section pertinente dans /etc/bash.bashrc, mais sudo crée toujours un fichier gênant dans mon répertoire personnel.

Cette page web suggère que vous pouvez empêcher la création du fichier en vous retirant du groupe admin, mais je ne suis dans aucun groupe de ce type, et admin n'est pas dans /etc/group.

Existe-t-il un moyen d'empêcher la création de ce fichier ?


Je pense que ceci n'est pas un doublon de cette question, car elle demandait s'il était possible de faire disparaître l'avis imprimé par bash, plutôt que s'il était possible d'arrêter la création du fichier par sudo.

54voto

steeldriver Points 118154

Sur la base de la section suivante du fichier source plugins/sudoers/sudoers.c, il semble que ce ne soit pas possible sans recompiler sudo, en annulant la macro pré-processeur USE_ADMIN_FLAG.

De plus, notez qu'il vérifie l'appartenance aux groupes admin et sudo. Je n'ai pas vérifié le journal des changements, mais je soupçonne que cette dernière vérification a été ajoutée lorsque sudo est devenue le groupe par défaut pour les utilisateurs privilégiés - peut-être que le nom du fichier se réfère encore à admin pour des raisons de compatibilité.

1229 #ifdef USE_ADMIN_FLAG
1230 static int
1231 create_admin_success_flag(void)
1232 {
1233     struct stat statbuf;
1234     char flagfile[PATH_MAX];
1235     int len, fd = -1;
1236     debug_decl(create_admin_success_flag, SUDOERS_DEBUG_PLUGIN)
1237
1238     /* Vérifier si l'utilisateur est dans le groupe admin. */
1239     if (!user_in_group(sudo_user.pw, "admin") &&
1240         !user_in_group(sudo_user.pw, "sudo"))
1241         debug_return_int(true);
1242
1243     /* Construire le chemin du fichier d'indicateur. */
1244     len = snprintf(flagfile, sizeof(flagfile), "%s/.sudo_as_admin_successful",
1245         user_dir);
1246     if (len <= 0 || (size_t)len >= sizeof(flagfile))
1247         debug_return_int(false);
1248
1249     /* Créer le fichier d'indicateur admin s'il n'existe pas déjà. */
1250     if (set_perms(PERM_USER)) {
1251         if (stat(flagfile, &statbuf) != 0) {
1252             fd = open(flagfile, O_CREAT|O_WRONLY|O_EXCL, 0644);
1253             if (fd != -1)
1254                 close(fd);
1255         }
1256         if (!restore_perms())
1257             debug_return_int(-1);
1258     }
1259     debug_return_int(fd != -1);
1260 }
1261 #else /* !USE_ADMIN_FLAG */
1262 static int
1263 create_admin_success_flag(void)
1264 {
1265     /* STUB */
1266     return true;
1267 }
1268 #endif /* USE_ADMIN_FLAG */

6voto

YorSubs Points 233

Il semble que ce problème soit en train d'être traité en ce moment : https://github.com/sudo-project/sudo/issues/56

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X