É possível parar a criação de .sudo_as_admin_successful?


46

Toda vez que executo um comando sudo, um arquivo chamado .sudo_as_admin_successfulé criado no meu diretório pessoal. Até onde eu sei, isso existe com o único objetivo de desabilitar esta mensagem que o bash imprime na inicialização:

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

É possível interromper essa mensagem comentando a seção relevante em /etc/bash.bashrc, mas sudoainda cria um arquivo irritante no meu diretório pessoal.

Esta página sugere que você pode parar o arquivo que está sendo criado por retirar-se da admingrupo, mas não estou em qualquer desses grupos - idmostra que estou em josh, adm, cdrom, sudo, dip, plugdev, lpadmine sambashare, e adminnão está na /etc/group.

Existe uma maneira de impedir que este arquivo seja criado?


Eu acredito que isso não é uma duplicata desta pergunta , pois estava perguntando se era possível fazer com que o aviso impresso pelo bash desaparecesse, e não se é possível parar o arquivo que está sendo criado sudo.


1
O que é tão irritante nisso? Quase não ocupa espaço.
— precisa saber é o seguinte

12
@edwinksl É uma confusão visual quando estou tentando encontrar outra coisa. Eu não deveria estar ciente de sua existência, já que nunca a modificarei.
— Josh

5
e é por isso que existe um. na frente. Por que você está incluindo arquivos ocultos em suas visualizações?
— Rinzwind

11
Pelo menos esse arquivo deve se colocar em .config ou .local. Não é raro que precisamos procurar arquivos ocultos, especialmente no diretório inicial. Não foi por isso que .config / .local foram inventados, devido à sobrecarga ridícula do diretório inicial, da qual esse arquivo é possivelmente o exemplo mais gratuito?
— NeilG

1
Não para iniciar uma guerra de distros (isso é solicitado no askubuntu.com), mas verifiquei duas vezes: isso é algo que o Ubuntu adicionou e que não está presente na distribuição Debian upstream. Provavelmente foi adicionado como "amigável", mas eu, como o OP, considero irritante a presença de arquivos aleatórios como este.
— Por Lundberg

Respostas:


38

Com base na seção a plugins/sudoers/sudoers.cseguir do arquivo de código-fonte , não parece possível sem recompilar sudo, indefinindo a macro do USE_ADMIN_FLAGpré-processador.

Além disso, observe que está verificando a associação ao grupo de ambos admin e sudo . Não verifiquei o changelog, mas suspeito que a última verificação foi adicionada quando sudose tornou o grupo padrão para usuários privilegiados - talvez o nome do arquivo ainda se refira à admincompatibilidade.

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

Claro que é possível sem recompilar sudo! Apenas saia objdump -d, rastreie a lógica envolvida nessa verificação e entre com seu confiável editor hexadecimal (ou até mesmo hexdumpum editor de texto comum fará uma pitada) para uma cirurgia. O que poderia dar errado?
— mtraceur 31/10
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.