Forum Linux.pl

Oprogramowanie => Inne => Wątek zaczęty przez: trebor_kr w 2009-08-26, 11:46:06

Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: trebor_kr w 2009-08-26, 11:46:06
Witam
Generalnie mam problem ze zmianą uprawnień plików.
1. Postawiłem serwerek plików na linie, skonfigurowałem sambe i użytkownicy kompów lokalnych z windą zaczeli korzystać z plików tam umieszczonych  uruchamiając programik windowsowy.
2. Postanowiłem aby kompy lokalne przenieść z windy na linuksa, a ponieważ na tych kompach chodzi specjalnie zrobiony dla mnie programik to zainstalowałem wine podmontowałem dysk serwera poprzez sshfs i programik działa. Ale .....
3. Podmotowany klient z linuksem po sshfs zmienia uprawniena plików na serwerze, a ten sam klient po sambie nie.
4. Jak są zmieniane uprawnienia plików to już inni użytkownicy nie mogą z nich korzystać.
5. Zaznacze że jak wszystko było oparte na sambie i windowsach to stworzyłem grupe użytkowników mających prawa do tych plików łącznie z ich modyfikacją oraz ustawiłem sambe na serwerze by dla nowych plików by tworzyła uprawniena 775 w konkretnym zasobie z którego użytkownicy korzystali.
6. O problemie już pisałem na innych forach i tam Koledzy poradzili mi bym zastosował umask=000 do montowania lokalnego tych plików po sshfs. Co się okazało, że owszem na kompie lokalnym ten plik lokalnie był podmonowany z orginalnymi uprawnianiami a po zakończeniu działania programiku na serwerze znowu lądował z innymi uprawnieniami i kolejny raz inni nie mogli korzystać z tych plików.
7. Inny kolega zasugerował mi że może programik kasuje te pliki i tworzy je na nowo z innymi danymi.. ale pytałem gościa co programik mi zrobił i on twierdzi że nie. Te pliki są tylko nadpisywane .. ale wychodzi na to że chyba nie ma racji.

Prosze więc o podpowiedz co zrobić walczyć z tym sshfs do połaczenia linux - linux bo chciałbym zrezygnować z winy na kompach lokalnych, czy iść w kierunku samby co przy połaczeniu lin - lin wydaje mi się troche niesensowne, a może się myle???

Z góry dzięki za odp. Pozdrawiam
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: kamzor w 2009-08-26, 14:22:27
Jeżeli zamierzasz postawić wszystkie kompy na linuksie to proponuję wykorzystać standardowy (jeszcze za unixa) lokalny system plików NFS (http://lazowski.wordpress.com/2009/06/30/konfiguracja-serwera-i-klienta-nfs-pod-ubuntu/) :)

Pozdrawiam!
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: trebor_kr w 2009-08-30, 23:54:13
No tak tylko po wszystkich testach okazało sie, że jednak to użytkownik tego programiku na windzie nadaje plikowi nowe prawa i go zapisuje i inni już nie mogą pracowac na tym pliku.
Może zaczne od innej strony - jak ustawić opcje że user nadaje z klucza wszytkim nowo tworzonym plikom bądź modyfikowanym prawa rwxrwx--- a nie standardowo rw-------.
To powinno rozwiązać według mnie problem i wtedy juz chyba nie będzie ważne czy to idzię po ssh czy jeszcze inaczej..
Poradźcie...
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: arctgx w 2009-08-31, 18:25:10
Kluczowym słowem jest tu maska uprawnień.

Z ciekawości szukam jak ustawić domyślną maskę dla plików tworzonych po stronie klienta NFS, a zamiast tego przypadkowo wpadłem na opcję dla serwera samby: zerknij do manuala (man -LC -P 'less -p "create mask\\> "' smb.conf).
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: trebor_kr w 2009-09-02, 14:29:33
Poczytałem o umask i ustawiłem na serwerku w pliku /etc/profile kod umask 002 co by wszyscy juz z góry mieli przydzielone nowe uprawnienia do tworzonych plików. i grupy tez mogly je odczytywać.
Sprawdziłem umask wyskoczyło 0002 czyli działa....
Ale nieeeeeeee....
Klient podmontował dysk po sshf i nic z tego dalej jak byLo tak jest czyli na nowo wyskakują standardowe uprawnienia 022.
Nawet na kliencie zmieniłem tak jak na serwerku w pliku profile i.. dalej tak samo....
Co na to powiecie???
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: arctgx w 2009-09-02, 16:44:33
Cytat: trebor_kr
Klient podmontował dysk po sshf i nic z tego dalej
Miało być sshfs?

Plik /etc/profile odczytywany jest przez powłokę, np. basha. Otworzyłeś powłokę, zaimportowała profil, pokazała ustawioną w nim maskę. Gdybyś za pomocą tej powłoki odpalił program, który nie narzucałby praw, odziedziczyłby prawdopodobnie maskę z powłoki (czyli nadrzędnego procesu).

Najprawdopodobniej zamontowanie systemu plików przez sshfs nie odpala żadnej powłoki po stronie serwera. Polecenie sshfs ma jednak opcję umask.

Swoją drogą, w międzyczasie miałem znaleźć odpowiedź na to czy włączone rozszerzone uprawnienia ACL na danym systemie plików z włączonym montowaniem typu nfs z obsługą tych uprawnień. Na razie nie znalazłem chwili, by spokojnie uzupełnić wiedzę.
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: trebor_kr w 2009-09-04, 10:31:34
OK.

sshfs r@192.168.10.2:/home/elektromi_gastro/kopia /media/serwer/elektromi_gastro/Zasoby -o umask=000

takim poleceniem montuje spod klienta pliki z serwerka i na kliencie maska owszem nie jest zmieniana natomiast na serwerku tak i to według domyślnej i wychodzi 022.

To jak mam podziałać aby serwerek także nie zmieniał maski swoich plików??

Może coś z poleceniem jest nie tak?
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: arctgx w 2009-09-04, 12:18:56
Umask z sshfs działa u mnie jak trzeba, np. wartość 666 daje ---x--x--x nowo powstałemu plikowi (dla eksperymentu dobrze jest kopiować bez nadpisywania plik o prawach 777 i sprawdzać uprawnienia kopii). Jasne jest, że maska ta ustawiana jest tylko na tym kliencie. Odpaliłem jednocześnie zwykłego klienta ssh, maska była inna. Podobnie programom działającym po stronie serwera trzeba ją prawdopodobnie narzucić osobno, jeśli chcesz by zostawiały pliki z określonymi prawami.

Edit ChmOOrecK: Naprawiłem swój błąd... okienka mi się po... ale już posprzątałem ;-)
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: trebor_kr w 2009-09-04, 14:06:11
Właśnie
Plikom po stronie serwera trzeba narzucić maskę.... Ale jak.
Skoro plik X przygotowuje go i zmieniam mu uprawnienia na rwxrwxrwx /czyli wszyscy wszystko mogą/ następnie ten plik montuje poleceniem sshfs po stronie klienta oczywiście z maską umask=000 i tak tam ląduje.
Poźniej odpalam programik windowsowy po wine po zakończeniu zmiena plik X po prostu go kasuje i wstawia nowy z uaktualnionymi danymi.
Po stronie klienta maska się nie zmienia pozostaje dalej taka jak była.
Po stronie serwera maska się zmienia na rw-r--r-- i już inni nie moga z tego pliku skorzystac oprócz tego konkretnego klienta.
Zaznaczam że na serwerku nie pracuje żaden ale to żaden program co by miał zmieniac te pliki. NIC
Tylko na lokalnych klientach to hula.
Następnie jak miałem sambe to w opcjach ustawiłem domyślna maską dla nowych plików na rwxrwx--- i było ok pliki nie były zmieniane na serwerku co do ich uprawnień tylko ich zawartość
Czyżbym musiał się łączyć po sambie serwer lin i klient lin....????
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: arctgx w 2009-09-04, 17:31:43
Cytat: trebor_kr
Właśnie
Plikom po stronie serwera trzeba narzucić maskę.... Ale jak.
Skoro plik X przygotowuje go i zmieniam mu uprawnienia na rwxrwxrwx /czyli wszyscy wszystko mogą/ następnie ten plik montuje poleceniem sshfs po stronie klienta oczywiście z maską umask=000 i tak tam ląduje.
Poźniej odpalam programik windowsowy po wine po zakończeniu zmiena plik X po prostu go kasuje i wstawia nowy z uaktualnionymi danymi.
Po stronie klienta maska się nie zmienia pozostaje dalej taka jak była.
Po stronie serwera maska się zmienia na rw-r--r-- i już inni nie moga z tego pliku skorzystac oprócz tego konkretnego klienta.
Zaznaczam że na serwerku nie pracuje żaden ale to żaden program co by miał zmieniac te pliki. NIC
Tylko na lokalnych klientach to hula.
Następnie jak miałem sambe to w opcjach ustawiłem domyślna maską dla nowych plików na rwxrwx--- i było ok pliki nie były zmieniane na serwerku co do ich uprawnień tylko ich zawartość
Czyżbym musiał się łączyć po sambie serwer lin i klient lin....????
Cytuj
Właśnie

Plikom po stronie serwera trzeba narzucić maskę.... Ale jak.

Skoro plik X przygotowuje go i zmieniam mu uprawnienia na rwxrwxrwx /czyli wszyscy wszystko mogą/ następnie ten plik montuje poleceniem sshfs po stronie klienta oczywiście z maską umask=000 i tak tam ląduje.

Poźniej odpalam programik windowsowy po wine po zakończeniu zmiena plik X po prostu go kasuje i wstawia nowy z uaktualnionymi danymi.

Po stronie klienta maska się nie zmienia pozostaje dalej taka jak była. Po stronie serwera maska się zmienia na rw-r--r-- i już inni nie moga z tego pliku skorzystac oprócz tego konkretnego klienta.

Zaznaczam że na serwerku nie pracuje żaden ale to żaden program co by miał zmieniac te pliki. NIC Tylko na lokalnych klientach to hula.

Następnie jak miałem sambe to w opcjach ustawiłem domyślna maską dla nowych plików na rwxrwx--- i było ok pliki nie były zmieniane na serwerku co do ich uprawnień tylko ich zawartość

Czyżbym musiał się łączyć po sambie serwer lin i klient lin....????
Dostrzegasz różnicę w czytaniu obu form?

Nie wiem czy dobrze zrozumiałem: napisałeś, że ten sam plik ma różne ciągi bitów uprawnień, zależnie od tego czy sprawdzasz je od strony klienta i serwera? Jaki to system plików?

Domyślna maska może być elementem środowiska powłoki, w której odpala się program. Żeby nie ustawiać jej globalnie (nie wiem czy to bezpieczne), najlepiej odpalić podpowłokę i w tylko niej ustawić umask oraz odpalić program. Albo w tym celu robisz skrypt, albo odpalasz polecenie w okrągłym nawiasie:
(umask 077; polecenie)
Wtedy maska macierzystej powłoki pozostanie niezmieniona.
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: trebor_kr w 2009-09-04, 22:44:03
Masz rację .. w twojej wersji czyta sie lepiej...

Tak dobrze zrozumiałeś.
Podglad na ten sam plik po stronie       klienta rwxrwx---
a po stronie                                        serwera  rw-r--r--

Nie wiem czemu ani dlaczego ale tak właśnie jest..

Ustawiłem domyślna maskę w pliku profile na 002 i również ta operacja nic nie zmieniła.

Zaznacze jeszcze raz /może to ma jakiś wpływ/ plik jest kasowany i tworzony na nowo /przynajmniej tak mi sie zdaje/ przez program wykonywany przez klienta a w dodatku jest to program windowsowy odpalany po wine..

Może że ta winda jcoś kaszani?

Albo inaczej.. tak głośno będe myślał...

Skoro Samba trzyma uprawnienia w ryzach i ona nadaje dla nowych plików exportowanych swoje uprawniena czyli w moim przypadku rwxrwx---

To może powłoka niema żadnego wpływu na pliki które sa podmontowane

A sshfs nie jest wstanie / przynajmniej ja nie umiem/ wygzekwować aby ten plik miał inne uprawnienai niż standardowe 022

Czy się myle?
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: arctgx w 2009-09-05, 02:02:34
Jest jeszcze jeden detal: maska nie narzuca dokładnie praw - odbiera tylko wybrane (czyli np. 022 odbiera prawa do pisania grupie i reszcie). Możesz więc odpalić program z umask=000 w środowisku (czyli nie odbierać niczego), a program tworzący plik niekoniecznie skorzysta z tego dobrodziejstwa. Co innego jeśli dasz odpowiednio większą maskę: program najprawdopodobniej nie przeskoczy nadanych nią ograniczeń. Nie chcę uogólniać - tak to przynajmniej wyglądało w moich prostych eksperymentach.
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: trebor_kr w 2009-09-05, 14:14:55
Jak dobrze zrozumiałe:

Mogę np. zakazać uruchamiania pliku czyli dać maskę 001 a wtedy już program nie zmieni wogóle maski..

Czy przypadkiem zmieni ale nie będzie mógł zmienić ostatniego prawa dla innych do uruchamiania pliku.?

Troche to pokrętne i może ja nie umiem tego klarownie przedstawić ..
Tytuł: Zmiana uprawnień plików po ssh a po sambie nie, jak to obejść?
Wiadomość wysłana przez: arctgx w 2009-09-05, 21:24:42
Rzeczywiście, pokrętnie napisałem o tym, że program nie przeskoczy praw ograniczonych przez maskę (czyli przemnoży bity własnych praw przez odpowiednie bity maski: 022 odpowiada masce 111101101). Tak dzieje się np. gdy program do stworzenia pliku użyje funkcji creat, biorącej uprawnienia jako jeden z argumentów. Plik tworzony za pomocą funkcji fopen dostawał prawa wg środowiskowej maski. Jest też funkcja chmod, której działania nie trzeba tłumaczyć. Podobnie do powłokowego polecenia chmod, jest w stanie dowolnie ustawić uprawnienia "własnemu" plikowi.

Najlepiej, gdyby ktoś tę moją pokrętną mieszankę doświadczeń i intuicji wsparł lub obalił bardziej rzeczowym dowodem :D

Źródła: man 2: open, fopen, fclose.