A página de manual diz:
executar / pesquisar apenas se o arquivo for um diretório ou se já tiver permissão de execução para algum usuário ( X)
O POSIX diz:
O símbolo de permissão X deve representar a parte de execução / pesquisa dos bits do modo de arquivo se o arquivo for um diretório ou se os bits atuais do modo de arquivo (não modificado) tiverem pelo menos um dos bits de execução (S_IXUSR, S_IXGRP ou S_IXOTH) definidos. Será ignorado se o arquivo não for um diretório e nenhum dos bits de execução estiver definido nos bits atuais do modo de arquivo.
Este é um sinalizador de permissão condicional: chmodanalisa o que está sendo processado no momento e, se é um diretório ou se possui algum bit de execução definido em suas permissões atuais (proprietário, grupo ou outro), ele age como se a permissão solicitada fosse x, caso contrário, ele a ignora. A condição é verificada no momento em que chmoda Xinstrução específica é aplicada , para que você possa limpar os bits de execução na mesma execução a-x,a=rwXpara definir apenas o bit executável nos diretórios.
Você pode ver se um arquivo possui um bit de execução definido, observando a parte "access" da statsaída do ou a primeira coluna de ls -l. Os bits de execução são representados por x. -rwxr-xr-xé comum para executáveis e indica que o bit executável está definido para o proprietário, grupo e outros usuários; -rw-r--r--é comum para outros arquivos e indica que o bit executável não está definido (mas o bit de leitura está definido para todos e o bit de gravação para o proprietário). Consulte Noções básicas sobre permissões UNIX e seus atributos, com muito mais detalhes.
Assim, no seu exemplo, u=rwXdefine as permissões do proprietário para ler e gravar em todos os casos e, para diretórios e arquivos executáveis, execute; da mesma forma para group ( g=rX) e other ( o=rX), leia e execute para diretórios e arquivos executáveis.
A intenção desse operador é permitir que o usuário forneça chmoduma variedade de arquivos e diretórios e obtenha as permissões de execução corretas (supondo que nenhum dos arquivos tenha um conjunto de bits de execução inválido). Evita ter que distinguir entre arquivos e diretórios (como no tradicional find . -type f -exec chmod 644 {} +e nos find . -type d -exec chmod 755 {} +comandos) e tenta lidar com os executáveis de maneira sensata.
(Note-se que o MacOSchmod aparentemente suporta apenas Xpara +operações.)
---, ---, ---um indoe sem um "conjunto de bits"?