É 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.

Josh
fonte
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 */
chave de aço
fonte
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