'chmod u + x' versus 'chmod + x'

81

Qual é a diferença entre chmod u+x e apenas chmod +x ? Eu vi uma tonelada de tutoriais que dizem usar u + x para tornar scripts executáveis. No entanto, o u não é mencionado na ajuda ou no manual do chmod. Omitir o u também não parece ter qualquer efeito. É apenas um argumento obsoleto? Obrigado.

    
por schwiz 08.03.2011 / 23:30

4 respostas

114

A página man de chmod abrange isso.

  • u significa usuário.
  • g significa grupo.
  • o significa outros.
  • um significa todos.

Isso significa que chmod u+x somefile concederá apenas o proprietário dessas permissões de execução, enquanto chmod +x somefile será igual a chmod a+x somefile .

A página do manual chmod diz:

  

O formato de um modo simbólico é   %código%.   Múltiplas operações simbólicas podem ser   dado, separado por vírgulas.

     

Uma combinação das letras 'ugoa'   controla o acesso dos usuários ao   arquivo será alterado: o usuário que   possui (u), outros usuários no arquivo   grupo (g), outros usuários que não   grupo do arquivo (o), ou todos os usuários (a). E se   nenhum destes é dado, o efeito é   como se 'a' fosse dado, mas bits que   são definidos no umask não são afetados.

    
por Octavian Damiean 08.03.2011 / 23:33
18

Basta fazer +x aplicá-lo a todos os sinalizadores: [u] ser, [g] roup, [o] thers.

Digite man chmod para obter mais informações.

    
por matpie 08.03.2011 / 23:34
7

chmod u+x tornará o arquivo executável para o usuário (ele somente o adicionará ao usuário, embora ele já possa ser executado pelo proprietário do grupo ou "outro").

chmod +x ou chmod a+x ('all plus executable bit') torna o arquivo executável por todos.

Se você fizer isso em um diretório, isso tornará o diretório pesquisável. Ou seja, você pode listar o conteúdo de um diretório no qual você tem permissão + x.

    
por belacqua 08.03.2011 / 23:51
1
  • chmod u+x file significa adicionar o bit executável ao proprietário do arquivo enquanto ignora o umask (Seu mod será configurado, sem dúvida).

  • chmod +x file significa adicionar o bit executável ao proprietário, grupo e outros enquanto considera o umask (Primeiro, verifique com umask e, em seguida, aplique os mods, pode ter efeitos diferentes com base no valor de umask).

vamos criar dois arquivos:

$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:45 file2

Agora eu defino o umask para "111" para remover os bits executáveis: umask 111 .

$ chmod u+x file1
$ chmod  +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug  5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:47 file2

Como você pode ver, o chmod ignorou o umask e o arquivo1 recebeu um bit executável para seu proprietário, mas o segundo não fez nada porque está considerando o valor de umask.

    
por Ravexina 04.08.2017 / 23:21