Forçando sudo para solicitar uma senha

23

Se eu fizer o seguinte:

sudo su -
//enter password
exit
exit
//login again straight away
sudo su -

A segunda invocação do sudo não solicita uma senha porque, embora eu tenha feito o logout novamente, ainda estou dentro de algum limite de tempo, o que significa que não é necessário solicitar minha senha novamente.

Como eu estou experimentando alguns novos privs para garantir que eles funcionem, isso está realmente me atrasando enquanto espero que o tempo limite aconteça.

Existe algum comando que eu possa executar para redefinir o tempo limite?

Eu não quero alterar o tempo limite ou afetar outros usuários, a propósito!

    
por Rich 03.03.2011 / 15:52

2 respostas

37

sudo -k Será eliminado o registro de data e hora do tempo limite. Você pode até colocar o comando depois, como sudo -k test_my_privileges.sh

De man sudo :

-K The -K (sure kill) option is like -k except that it removes the user's time stamp entirely and may not be used in conjunction with a command or other option. This option does not require a password.

-k When used by itself, the -k (kill) option to sudo invalidates the user's time stamp by setting the time on it to the Epoch. 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.

Você também pode alterá-lo permanentemente. De man sudoers :

timestamp_timeout

Number of minutes that can elapse before sudo will ask for a passwd again. The timeout may include a fractional component if minute granularity is insufficient, for example 2.5. The default is 5. Set this to 0 to always prompt for a password. If set to a value less than 0 the user's timestamp will never expire. This can be used to allow users to create or delete their own timestamps via sudo -v and sudo -k respectively.

    
por 03.03.2011 / 16:00
5

A resposta de Shawn é ótima, mas há uma opção de configuração adicional que pode ser útil nessa situação.

De man sudoers :

tty_tickets

If set, users must authenticate on a per-tty basis. With this flag enabled, sudo will use a file named for the tty the user is logged in on in the user's time stamp directory. If disabled, the time stamp of the directory is used instead.

This flag is on by default.

De man sudo :

When the tty_tickets option is enabled in sudoers, the time stamp has per-tty granularity but still may outlive the user's session. On Linux systems where the devpts filesystem is used, Solaris systems with the devices filesystem, as well as other systems that utilize a devfs filesystem that monotonically increase the inode number of devices as they are created (such as Mac OS X), sudo is able to determine when a tty-based time stamp file is stale and will ignore it. Administrators should not rely on this feature as it is not universally available.

Eu acho que é relativamente novo. Se o seu sistema suportar, se você efetuar logout, então login, o sudo pedirá sua senha novamente. (Eu tenho sudo -K no meu script de logout de shells também.)

    
por 04.03.2011 / 01:15

Tags