¿Es posible detener la creación de .sudo_as_admin_successful?

28

Cada vez que ejecuto un comando con sudo , se crea un archivo llamado .sudo_as_admin_successful en mi directorio personal. Hasta donde puedo decir, esto existe con el único propósito de deshabilitar este mensaje que bash imprime al inicio:

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

Es posible detener ese mensaje comentando la sección relevante en /etc/bash.bashrc , pero sudo todavía crea un archivo molesto en mi directorio de inicio.

Esta página web sugiere que puede detener el archivo creado eliminándose del grupo admin , pero no estoy en ningún grupo - id muestra que estoy en josh , adm , cdrom , sudo , dip , plugdev , lpadmin y sambashare y admin no está en /etc/group .

¿Hay alguna manera de evitar que se cree este archivo?

Creo que esto no es un duplicado de esto pregunta , ya que eso era preguntar si era posible hacer que el aviso impreso por bash desapareciera, en lugar de si es posible detener el archivo creado por sudo .

    
pregunta Josh 18.08.2016 - 19:50

1 respuesta

31

Según la siguiente sección del archivo de código fuente plugins/sudoers/sudoers.c , no parece que sea posible sin recompilar sudo , sin definir la macro del preprocesador USE_ADMIN_FLAG .

También tenga en cuenta que está comprobando la pertenencia al grupo de admin y sudo . No he comprobado el registro de cambios, pero sospecho que el último control se agregó cuando sudo se convirtió en el grupo predeterminado para los usuarios con privilegios, tal vez el nombre de archivo todavía se refiere a admin para compatibilidad.

   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 */
    
respondido por el steeldriver 18.08.2016 - 20:37

Lea otras preguntas en las etiquetas