chmod mantendo as permissões atuais do proprietário / grupo

1

Eu uso, por exemplo, para alterar as permissões de todos:

chmod 777 file

Agora, e se eu quiser preservar as permissões atuais?
Eu sei que há algo parecido com

chmod xx7 file

caso eu queira apenas alterar as permissões do mundo, mas não consigo resolver (esqueci).

Obrigado!

    
por Poni 23.01.2012 / 09:35

2 respostas

8

Você pode usar os símbolos o para outras pessoas, como:

chmod o+rwx file

chmod o-rwx file

ou

chmod o+r file

Você pode usar - para revogar ou + para conceder a permissão r , x , w ou qualquer combinação deles. Da mesma forma, você pode fazer isso para o usuário u ou grupo g .

    
por 23.01.2012 / 09:39
1

A resposta de Khaled é melhor: aprenda a usar símbolos.

Se você realmente deseja que algo defina as permissões que deseja, pode escrever algum tipo de script para obter o formato octal das permissões, retirar o último dígito e substituir o seu próprio.

Suponho que você pode escrever algum tipo de script bash como (nota: não testado e não tem validação de entrada):

#!/bin/bash

otherperm=$1
filename=$2

newperm='stat -c%a $filename  |sed -e "s/.$/$otherperm/"'

echo chmod ${newperm} ${filename}

mas, realmente, aprenda a usar símbolos no chmod.

    
por 23.01.2012 / 12:08