O que significa o argumento “+ x” no Unix? (Quanto às permissões)? [duplicado]

1

Eu uso o Ubuntu e alguém me aconselhou a alterar as permissões para um arquivo com sudo chmod " +x " .

Não está claro para mim se +x significa alterar as permissões para algo muito geral como 777 ou 775 ou algo totalmente diferente.

Eu tentei usar o Google +x unix e +x linux , mas não consegui encontrar dados sobre isso em uma pesquisa rápida.

Aqui estão as ordens que fiz (assim estou preso no estágio 4):

  1. instale o wget
  2. executar wget http://files.drush.org/drush.phar
  3. executar sudo mv drash.phar /usr/local/bin/drush
  4. executar sudo chmod +x /usr/local/bin/drush
  5. teste drush
por JohnDoea 21.06.2016 / 21:26

3 respostas

2

x é uma apresentação simbólica do modo executável (também pode ser em formato numérico) que o comando chmod usa para definir a permissão executável de um arquivo (no caso de diretórios, ele define seu modo pesquisável). + define o modo executável e - não o define.

Da página man do chmod:

The format of a symbolic mode is [ugoa...][[+-=][perms...]...], where perms is either zero or more letters from the set rwxXst, or a single letter from the set ugo. Multiple symbolic modes can be given, separated by commas.

Veja este link para mais informações: chmod

    
por 21.06.2016 / 21:43
2

O " +x " ao qual você se refere é o argumento do modo simbólico para chmod . Como determinado, e supondo que seu chmod venha do Gnu Coreutils, esse argumento direciona chmod para definir os bits executáveis para usuário, grupo e outros, exceto para aqueles bits executáveis configurados em umask . Então, se o seu umask é 0077 (como é comum), esse comando só irá definir o bit executável para o usuário que possui o arquivo. Se sua umask é 0007 (como também é comum), o usuário e o grupo que possui o arquivo poderão executá-lo.

É provável que o efeito pretendido seja que todos os usuários possam executar o arquivo. Você pode conseguir isso usando modos simbólicos, especificando que todos os bits de execução devem ser definidos:

chmod a+x filename

ou declarando explicitamente as permissões desejadas:

chmod 0755 filename

Os modos simbólicos são um atalho maravilhosamente útil, mas muito do seu comportamento é deixado como "implementação definida" pelo POSIX. Portanto, também é útil lembrar os modos numéricos e seus significados para scripts e instruções portáveis.

    
por 21.06.2016 / 21:56
1

chmod pode dar direitos de duas maneiras:
1) com números (por exemplo, o arquivo chmod 744 fará o arquivo wrx para você e r para o grupo e outros)
2) com direito específico à categoria específica
(por exemplo, chmod + x dará todos os direitos de execução)
no seu caso eu suponho que o seu usuário e seu grupo (talvez) precisem executar o direito nem todos mais alguns exemplos:

 chmod u=rx file        (Give the owner rx permissions, not w)
 chmod go-rwx file      (Deny rwx permission for group, others)
 chmod g+w file         (Give write permission to the group)
 chmod a+x file1 file2  (Give execute permission to everybody)
 chmod g+rx,o+x file    (OK to combine like this with a comma)
    
por 21.06.2016 / 21:43