È possibile interrompere la creazione di .sudo_as_admin_successful?


46

Ogni volta che eseguo un comando con sudo, un file chiamato .sudo_as_admin_successfulviene creato nella mia directory home. Per quanto ne so, questo esiste al solo scopo di disabilitare questo messaggio che bash stampa all'avvio:

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

È possibile interrompere quel messaggio commentando la relativa sezione in /etc/bash.bashrc, ma sudocrea comunque un file fastidioso nella mia home directory.

Questa pagina web suggerisce che si può fermare il file viene creato rimuovendo se stessi dal admingruppo, ma non sono in alcun tale gruppo - iddimostra che io sono in josh, adm, cdrom, sudo, dip, plugdev, lpadmine sambashare, e adminnon è in /etc/group.

C'è un modo per interrompere la creazione di questo file?


Credo che questo non sia un duplicato di questa domanda , in quanto si chiedeva se fosse possibile far sparire l'avviso stampato da bash, piuttosto che se fosse possibile interrompere la creazione del file sudo.


1
Cosa c'è di così fastidioso al riguardo? Prende a malapena spazio.
edwinksl,

12
@edwinksl È un disordine visivo quando sto cercando di trovare qualcos'altro. Non dovrei essere consapevole della sua esistenza, dato che non lo modificherò mai.
Josh,

5
ed è per questo che esiste un. davanti. Perché includi file nascosti nelle tue visualizzazioni?
Rinzwind,

11
Almeno questo file dovrebbe inserirsi in .config o .local. Non è raro che abbiamo bisogno di sfogliare i file nascosti, specialmente nella home directory. Non è per questo che sono stati inventati .config / .local, a causa del ridicolo sovraccarico della directory home, di cui questo file è forse l'esempio più gratuito?
NeilG

1
Non iniziare una guerra di distribuzione (questo è chiesto su askubuntu.com), ma ho ricontrollato: questo è in realtà qualcosa che Ubuntu ha aggiunto che non è presente nella distribuzione Debian a monte. È probabilmente aggiunto per essere "user friendly" ma io, come l'OP, trovo fastidiosa la presenza di file casuali come questo.
Per Lundberg,

Risposte:


38

Basato sulla seguente sezione del plugins/sudoers/sudoers.cfile di codice sorgente , non sembra possibile senza la ricompilazione sudo, indefinendo la USE_ADMIN_FLAGmacro pre-processore.

Inoltre, nota che sta controllando l'appartenenza al gruppo di entrambi admin e sudo . Non ho controllato il log delle modifiche, ma sospetto che l'ultimo controllo sia stato aggiunto quando è sudodiventato il gruppo predefinito per gli utenti privilegiati - forse il nome del file fa ancora riferimento alla admincompatibilità.

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 */

Ovviamente è possibile senza ricompilare sudo! Basta uscire objdump -d, rintracciare la logica coinvolta in quel controllo, quindi andare con il tuo fidato editor esadecimale (o anche hexdumpe un normale editor di testo farà un pizzico) per un po 'di chirurgia. Cosa potrebbe andare storto?
mtraceur,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.