Isso não tem nada a ver com bash
ou sudo
. O comando find
está usando a ação -exec
para executar o comando especificado em cada arquivo encontrado. Neste caso, o comando que está sendo executado é
touch -d @0
Se você verificar man touch
em um sistema GNU, verá que
-d, --date=STRING
parse STRING and use it instead of current time
Portanto, o -d
é uma maneira de escolher a data em que você deseja que touch
seja definido para o arquivo de destino. O @
informa à implementação GNU de touch
que esta é uma data definida como segundos desde a época . Como na verdade é 0 segundo, isso significa o início do horário do UNIX. Uma maneira fácil de verificar isso é dar a mesma data ao comando GNU date
:
$ TZ=UTC date -d @0
Thu Jan 1 00:00:00 UTC 1970
Assim, o comando que você mostrou encontrará todos os arquivos e diretórios em /var/lib/sudo
e definirá sua última data modificada para 00:00 UTC na quinta-feira de janeiro de 1970.
A razão pela qual a linha existe foi bem explicada em os comentários abaixo:
@crisron The purpose of the line is to ensure that all sudo passwords from any previous instance of sudo are expired. The first time a user runs sudo, for each session it'll create a file in that directory. Sudo then checks the time stamp on the file the next time you run it to decide whether or not to ask you for the password again. This line ensures that when the sudo daemon is restarted all passwords must be retyped the next time a user sudos something. – krowe