A maioria dos programas em /usr/bin
deve ter permissões 755 - legível e executável por todos, gravável apenas pelo seu proprietário, que é root. Alguns programas são setuid ou setgid : eles têm privilégios extras, que são concedidos pelo bit setuid ou setgid nas permissões. /usr/bin/sudo
é um deles; ele precisa ser root setuid: chmod 4755 /usr/bin/sudo
restaura.
Se você só tem pacotes oficiais do Debian (ao invés de pacotes em distribuições derivadas do Debian ou de outras fontes), então você pode descobrir quais contêm binários setuid / setgid passando pelo Lintian relatórios: setuid , setgid , ambos . Em princípio, todos esses pacotes devem vir com um arquivo em /usr/share/lintian/overrides
que declara o binário setxid (a tag “sobrescrita” nessas páginas indica a presença de tal declaração), mas alguns pacotes não estão em conformidade (incluindo os onipresentes). como at
e xserver-xorg
).
O script a seguir imprime um script de shell que executa o comando chmod
para restaurar arquivos em /usr/bin
para suas permissões padrão, se as permissões padrão incluírem o bit setuid ou setgid.
wget -q -O - https://lintian.debian.org/tags/set{uid,gid,uid-gid}-binary.html |
sed -n 's~^.*> *\(usr/bin/[^ ]*\) \([0-7][0-7][0-7][0-7]\).*~[ -e / ] \&\& chmod /~p'
Além disso, algumas permissões podem ser configuradas localmente. Essas permissões são registradas com 'dpkg-statoverride . Você pode listá-los com
dpkg-statoverride --list '/usr/bin/*'
e você pode reaplicar essas permissões com
dpkg-statoverride --list '/usr/bin/*' |
awk 'system("chmod " $3 " " $4)'
Se você tem pacotes que não são do Debian, a única maneira de ter certeza de obter permissões corretas é reinstalá-los com apt-get --reinstall install PACKAGE-NAME
.