web-dev-qa-db-fra.com

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 uniquement dans le but de désactiver ce message que bash affiche au démarrage:

To run a command as administrator (user "root"), use "Sudo <command>".
See "man Sudo_root" for details.

Il est possible d'arrêter ce message en commentant la section correspondante de /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 que je ne fais pas partie de ce groupe. id indique que je suis dans josh, adm, cdrom, Sudo , dip, plugdev, lpadmin et sambashare et admin n'est pas dans /etc/group.

Est-il possible d'empêcher la création de ce fichier?


Je crois que ce n'est pas une copie de cette question , car il s'agissait de demander s'il était possible de faire disparaître l'avis imprimé par bash, plutôt que s'il était possible d'empêcher le fichier d'être créé par Sudo.

42
Josh

D'après la section suivante du fichier de code source plugins/sudoers/sudoers.c, il ne semble pas possible que ce soit possible sans recompiler Sudoname__, en définissant la macro USE_ADMIN_FLAG avant processeur.

Notez également qu’il vérifie l’appartenance au groupe adminetSudoname__. Je n'ai pas vérifié le journal des modifications, mais je soupçonne que cette dernière vérification a été ajoutée lorsque Sudoest devenu le groupe par défaut des utilisateurs privilégiés. Peut-être que le nom du fichier fait toujours référence à adminpour 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     /* Check whether the user is in the admin group. */
   1239     if (!user_in_group(Sudo_user.pw, "admin") &&
   1240         !user_in_group(Sudo_user.pw, "Sudo"))
   1241         debug_return_int(true);
   1242
   1243     /* Build path to flag file. */
   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     /* Create admin flag file if it doesn't already exist. */
   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 */
35
steeldriver