sudo -k vs. sudo -K

6

Eu sei o que a man page tem a dizer sobre o -K e -k:

‑K

The ‑K (sure kill) option is like ‑k except that it removes the user's cached credentials entirely and may not be used in conjunction with a command or other option. This option does not require a password. Not all security policies support credential caching.

‑k[command]

When used alone, the ‑k (kill) option to sudo invalidates the user's cached credentials. The next time sudo is run a password will be required. This option does not require a password and was added to allow a user to revoke sudo permissions from a .logout file. Not all security policies support credential caching. When used in conjunction with a command or an option that may require a password, the ‑k option will cause sudo to ignore the user's cached credentials. As a result, sudo will prompt for a password (if one is required by the security policy) and will not update the user's cached credentials.

Portanto, se não houver necessidade de usar um comando em conjunto com essas opções, estou correto em assumir que K é sempre a melhor opção para usar, em vez disso, que k?

    
por Codrguy 27.06.2013 / 19:40

2 respostas

7

sudo -K e sudo -k , sem um comando, fazem a mesma coisa: invalidam as credenciais em cache do usuário.

sudo -k command ... é diferente: ignora as credenciais armazenadas em cache do usuário para o comando atual, mas não as invalida.

Use -k com um comando quando você quiser executar um único comando sem usar ou invalidar suas credenciais armazenadas em cache. (Na verdade, não sei por que você quer fazer isso, mas a capacidade está lá.)

Use sudo -k ou sudo -K se você quiser estragar suas credenciais em cache.

Resumo:

sudo -k           # clobbers cached credentials
sudo -K           # clobbers cached credentials
sudo -k command   # ignores cached credentials
sudo -K command   # invalid

ATUALIZAÇÃO:

Revisitando essa resposta, parece que a única diferença entre -k e -K é que -k aceita um comando e -K não. Não estou convencido de que ter duas opções separadas é útil, pois -K realmente não adiciona nenhuma funcionalidade que -k não forneça. Há uma diferença sutil no texto na página man; -k "invalida as credenciais em cache do usuário", enquanto -K "remove totalmente as credenciais em cache do usuário". Eu não acho que indica uma diferença real na maneira como isso afeta as credenciais.

    
por 27.06.2013 / 19:57
2

sudo -K invalidará suas credenciais armazenadas em cache em todas as sessões do terminal. Isso pode ser útil para executar antes de bloquear seu DE.

sudo -k só invalidará suas credenciais armazenadas em cache para a sessão de terminal atual.

    
por 26.07.2017 / 15:06

Tags