Portál AbcLinuxu, 11. května 2024 11:55


Dotaz: Deploy skript a práva

svido avatar 9.3.2015 15:46 svido | skóre: 28
Deploy skript a práva
Přečteno: 216×
Odpovědět | Admin
Ahoj, mám problém s nastavením práv na našem develop serveru. Pokusím se přiblížit problém...

Na daném serveru jsou Git repozitáře a i Apache. Git je nakonfigurován tak, že work tree je mimo vlastní repositář a vlastní work tree je slouží jako DocumentRoot pro jednotlivé weby. Napsal jsem bash skript, který automaticky fetche Git, zesynchronizuje work tree. Existuje group git a apache, každý vývojář má svůj účet, kterým se hlásí na devel server. DocumentRoot pro každý web má na všech souborech nastavenu user group apache (ve které je každý uživatel). Práva na nadresářích jsou 0775, na souborech také.

Problém nastává tehdy, když potřebuji na DocumentRootu nastavit rekursivně na všechny adresáře i soubory group apache. Skript končí chgrp: changing group of `sites': Operation not permitted. Měl jsem za to, že pokud bude uživatel ve skupině a je na daném souboru / adresáři stejná skupina, může změnit práva. Což asi neplatí.

Co dělám špatně, resp. je nějaká možnost aby i uživatelé, kteří nemají přístup přes sudo mohli změnit práva? Napadá mě sticky bit, ale to se mi moc nechce...

Díky za každý nápad
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

svido avatar 9.3.2015 16:04 svido | skóre: 28
Rozbalit Rozbalit vše Re: Deploy skript a práva
Odpovědět | | Sbalit | Link | Blokovat | Admin
ještě dodám, že v sudoers mám:
%wheel  ALL=(ALL)   NOPASSWD: ALL
a sám jsem ve skupině wheel a ani mě to nejde
svido avatar 9.3.2015 17:29 svido | skóre: 28
Rozbalit Rozbalit vše Re: Deploy skript a práva
naivně jsem si myslel, že pokud nastavím sudoers, tak aby vyjmenovaní uživatelé mohli pouštět pod sudem chgrp bez hesla. Jako samotný příkaz to jde, ale ze skriptu ne.

Sudoers:
User_Alias  GROUP_PRAGUE = franta, lojza, pepan
GROUP_PRAGUE ALL= NOPASSWD:/bin/chgrp -R apache /var/www/html/website1
v konsoli:
sudo chgrp -R apache /var/www/html/website1
ve skriptu:
sudo -u root chgrp -R -H $USER_GROUP $SELECTED_WORK_TREE_PATH
9.3.2015 20:51 nobody
Rozbalit Rozbalit vše Re: Deploy skript a práva
btw: kdyz das do scriptu:
whoami
napise ti to franta, lojza, nebo pepan ? :)
svido avatar 9.3.2015 21:33 svido | skóre: 28
Rozbalit Rozbalit vše Re: Deploy skript a práva
vypíše pepan / franta atd. Je jen pár lidí, kteří jsou ve skupině wheel a mohou pustit sudo
9.3.2015 19:23 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Deploy skript a práva
Odpovědět | | Sbalit | Link | Blokovat | Admin
Možná sudo kontroluje přítomnost terminálu, nebo se vám do toho cpe třeba SELinux.
svido avatar 9.3.2015 19:49 svido | skóre: 28
Rozbalit Rozbalit vše Re: Deploy skript a práva
Taj to netuším. Na serveru je CentOS. Dá se to nějak zjistit?
9.3.2015 19:58 pavele
Rozbalit Rozbalit vše Re: Deploy skript a práva
Pokud ti nefunguje sudo ve skriptu, podívej se na sudoers:

### Defaults requiretty
svido avatar 9.3.2015 22:22 svido | skóre: 28
Rozbalit Rozbalit vše Re: Deploy skript a práva
to jsem nějak nepochopil. V postatě mi stačí, aby uživatel, který není ve skupině wheel mohl nastavit práva přes chgrp / chown na pevně daných adresářích.

Ať ale zkouším co zkouším, tak mě pod mým účtem, který má wheel to běží, ale u uživatele, který tam není, nejde pustit sudo přímo z deploy skriptu.

Je mi jasný, že dělám někde chybu a budu moc rád za pomoc s vyřešením :-)
9.3.2015 20:03 DarkKnight | skóre: 26
Rozbalit Rozbalit vše Re: Deploy skript a práva
getenforce

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.