Alterando a UMASK do SVN

Posted: December 26, 2011 in Comandos, Linux
Tags: , , , ,

Esses dias eu estava com um problema relacionado à permissões…
Toda vez que o usuário logava no server CentOs, ele tinha o uid dele e o gid era o mesmo para todo o grupo (nesse caso, era o grupo de desenvolvedores).
E mesmo que a UMASK do server esteja como 0022, todos possuem o grupo em comum, quando um usuário logava, acessava um diretório específico e depois utilizava o comando ‘svn up’ o resultado era:

-rw-r–r– 1 user group 187 Dec 14 18:27 file.extension

Seguindo o padrão de UMASK do sistema, a permissão que ele traz para o arquivo é a 644 para arquivo e 755 para diretórios, sendo assim, pensei em alterar a UMASK para 002, assim o group já vem com as permissões nativas e todos poderão mexer!

Mas poxa, alterar a UMASK de todo o SO por causa de um problema?

E ai então, cacei uma solução e veio esse link aqui.

Então, segui a dica de definir um padrão de UMASK, mas somente para o SVN.

Primeiro, localizei o binário do svn:

[root@servername]# which svn
/usr/bin/svn

Renomeei esse binário para:

[root@servername]# mv /usr/bin/svn /usr/bin/svn-real

E então, criei um script dentro do binário padrão. Olha só:

# vim /usr/bin/svn

#!/bin/sh
umask 002
/usr/bin/svn-real “$@”

Resumidamente falando, essas linhas falam que a umask para o svn passará a ser 002 e que quando executar o comando svn , o binário padrão dele será chamado, que é o svn-real.

E pronto! Todos felizes!

Depois de um ‘svn up’, agora o resultado dos arquivos é o:

-rw-rw-r– 1 user group 11238 Dec 14 19:49 file.extension

Bacaninha né?

A fonte tá no link lá em cima e só pra garantir, tá aqui também! =)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s