Como saber todos os arquivos no Ubuntu com stickybits?

2

Agora eu entendo os bits pegajosos e por que devo usá-los com base na minha pergunta:

Agora tenho uma nova pergunta.

Como eu poderia listar todos os arquivos que possuem stickybits no meu Ubuntu Linux?

    
por Community 12.03.2014 / 06:58

2 respostas

3

Aqui vamos nós de novo:)

Este comando deve atendê-lo:

find / -perm +1000 

Detalhes:

Para adicionar um modo numérico / octal de stickybit, você deve adicionar "1" ao início do diretório. exemplo:

chmod 1757 ~/Desktop/test

então, para procurar um stickybit, você precisa procurar por todos os arquivos com "this one", o que significa ter permissões +1000 (1 aqui para stickybit e "000" para quaisquer que sejam as permissões iniciais)

Portanto, este comando irá procurar em todo o sistema de arquivos por cada arquivo que tenha permissão "+1000".

Agora, se você testar este comando, poderá notar que muitos erros são gerados aqui, o que torna a saída pouco clara, e esses erros acontecem porque você está tentando pesquisar em alguns locais e não tem acesso de leitura.

Então, para se livrar desses erros, você pode redirecionar esses erros para /dev/null

 find / -perm +1000 2> /dev/null

Além disso, você pode redirecionar a saída para um arquivo "output.txt" em vez de manter a saída no "terminal stdout"

find / -perm +1000 >output.txt 2>/dev/null
    
por Maythux 12.03.2014 / 07:01
0

Gostaria apenas de fazer alguns pontos, ampliando a resposta muito boa de Hadi. Primeiro de tudo, o bit pegajoso não tem efeito sobre os arquivos no Linux. Como explicado em man chmod :

  

STICKY FILES no
         Em sistemas Unix mais antigos, o bit pegajoso fazia com que arquivos executáveis          acumulado no espaço de troca. Esse recurso não é útil na VM moderna          sistemas, e o kernel Linux ignora o bit pegajoso em arquivos . De outros          Os kernels podem usar o bit pegajoso nos arquivos para propósitos definidos pelo sistema.          Em alguns sistemas, somente o superusuário pode definir o bit em arquivos.

Portanto, não faz sentido procurar arquivos com o sticky bit set, assim também podemos limitar a pesquisa apenas a diretórios, o que acelerará enormemente as coisas. Isso pode ser feito usando find :

find / -type d -perm /1000 2>/dev/null

Além disso, observe que estou usando a sintaxe -perm /mode em vez de -perm +mode . Isso ocorre porque +mode está obsoleto e pode retornar em resultados inesperados. De man find :

   -perm /mode
          Any of the permission bits mode are set for the file.  

   -perm +mode
          Deprecated,  old way of searching for files with any of the per‐
          mission bits in mode set.  You should use -perm  /mode  instead.
          Trying to use the '+' syntax with symbolic modes will yield sur‐
          prising results.  For example, '+u+x' is a valid  symbolic  mode
          (equivalent to +u,+x, i.e. 0111) and will therefore not be eval‐
          uated as -perm +mode but instead as  the  exact  mode  specifier
          -perm  mode  and so it matches files with exact permissions 0111
          instead of files with any execute bit set.  If  you  found  this
          paragraph  confusing,  you're  not alone - just use -perm /mode.
          This form of the -perm test  is  deprecated  because  the  POSIX
          specification  requires  the  interpretation of a leading '+' as
          being part of a symbolic mode, and so we switched to  using  '/'
          instead.

Por fim, você também pode usar os modos simbólico em vez de octal, que podem ser mais fáceis de ler se você não estiver acostumado:

find / -type d -perm +'+t' 2>/dev/null 
    
por terdon 12.03.2014 / 12:42