proprietário e grupo padrão para symlink e chown pass-through

1

Eu tenho duas perguntas, mas elas estão intimamente relacionadas entre si.

Eu tenho um novo servidor Debian da Linode, e meu servidor anterior era um CentOS rodado pelo Hostgator. Eu uso este comando com bastante frequência para links simbólicos:

ln -s /home/codebase/classes classes

as permissões ficarão assim no servidor do CentOS:

lrwxrwxrwx 7 root root  4096  Jan 10 classes

com permissões sendo 777 e proprietário: grupo sendo raiz: raiz

No entanto, o servidor Debian mostrará

lrwxrwxrwx 7 cpm210 cpm210  4096  Jan 10 classes

qual é o usuário: grupo da pasta em que foi criado (de qualquer forma, estou logado como root)

pergunta # 1, por que há uma diferença neles e devo aceitar o cpm210: cpm210 como o padrão para o servidor Debian?

pergunta # 2: Eu tenho uma pasta, digamos /var/www/cpm210/public_html cheia de arquivos, mais digamos vários links simbólicos de pastas para outros locais (normalmente uma biblioteca de base de código). As pastas do código base têm outras permissões e, portanto, o apache só pode ler esses arquivos - exatamente o que eu quero. No entanto, no processo de mover arquivos para a pasta public_html, acabo precisando emitir este comando:

chown -R cpm210:cpm210 /var/www/cpm210/public_html/*

Mas eu gostaria de fazer isso sem tocar nos links simbólicos, apenas nos arquivos.

Como faço isso?

    
por Oliver Williams 19.03.2015 / 10:53

1 resposta

1

Basta usar chown com --dereference conforme descrito por chown(1) . Então, no seu caso:

chown --dereference -R cpm210:cpm210 /var/www/cpm210/public_html/

também o caractere curinga no final era desnecessário, pois você usa -R .

O oposto seria --no-dereference (short -h ), btw.

    
por 19.03.2015 / 11:07