Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witajcie.
Wiecie, w jaki sposób mogę ustawić atrybut pliku/folderu tak, aby dany użytkownik nie mógł go wykonać/zapisać/zmodyfikować/zmienić nazwy/usunąć, a pozostali mogli?
Np. plik o nazwie: pliczek.txt będzie właścicielem użytkownika: user1, i teraz chciałbym, aby użytkownik o nazwie: user2 miał określone prawa do tego pliku wymienione powyżej.
Pozdrawiam.
Offline
chmod
i
chown
Offline
A mógłbym prosić o jakiś przykład?
Bo męczę się z tym i nic nie wychodzi :/
PS. Po co chown? Nie chcę zmienić właściciela pliku, a chmod samo chyba nie wystarczy, gdyż uprawnienia będą dotyczyły tylko użytkownika na którego jest plik.
Ostatnio edytowany przez desavil (2011-10-13 15:08:24)
Offline
1. chown, by upewnić się, że user2 nie jest właścicielem
2. chgrp, by zmienić grupę na taką, do jakiej user2 nieprzynależy
3. chmod, by pozostali nie mieli przyzwolenia do czegokolwiek
Offline
Mógłbym prosić o jakieś przykłady?
Bo tak jak już mówiłem, nazwy poszczególnych opcji mi nic nie pomagają.
Próbowałem wiele opcji i nie wychodziło mi to.
PS. Z mojej strony działa to w ten sposób:
Mam użytkownika o nazwie: user1, oraz user2. Za pomocą użytkownika: user1 odpalam aplikacje.
Na user2 działa pureftpd + mysql (w bazie podany guid i uid - user2).
Chciałbym teraz uzyskać takie coś, iż z poziomu user1 z plikiem może robić wszystko, ale user2 praktycznie nic, tylko odczyt, gdyż nie chcę aby użytkownik mógł z nim cokolwiek robić poprzez FTP.
Pozdrawiam i czekam na odpowiedź.
Ostatnio edytowany przez desavil (2011-10-13 16:50:30)
Offline
zmiana nazwy/usuwanie i takie operacje nie opieraja sie na uprawnieniach do pliku a na uprawnieniach do katalogu zawierajacego ten plik
Offline
Zmiana właściciela:
chown user1 /katalog/plik
lub rekursywnie (katalog wraz z jego zawartością):
chown -R user1 /katalog/
Zmiana grupy:
chgrp jakaś_grupa /katalog/plik
lub
chgrp -R jakaś grupa /katalog
Zmiana właściciela i grupy zarazem:
chown user1:jakaś_grupa /katalog/plik
lub
chown -R user1:jakaś_grupa /katalog
zmiana uprawnień na odczyt (r - read) dla pozostałych (o - others):
chmod o=r /katalog/plik
lub
chmod -R o=r /katalog/
Dokładniejsze przykłady są chociażby na wikipedii (hasła: chmod, chown, chgrp).
Offline
Ehh, widzę że źle mnie zrozumieliście.
To jak zmienić użytkownika/grupę/chmody pliku wiem.
Opiszę dokładnie co chcę uzyskać, może teraz lepiej zrozumiecie.
Chodzi mi o to, że mam sobie w katalogu /home/games/ inne podkatalogi:
/home/games/1 /home/games/2 /home/games/3
W systemie mam użytkownika games, który tworzy te podkatalogi (katalogiem domowym jest /home/games tego usera) - połączone to jest ze specjalnym panelem zarządzania, ale to nie ma znaczenia.
Mam postawiony serwer FTP - pureftpd z użytkownikami w bazie i każdy ma swój katalog (jeden) wymieniony powyżej.
W każdym z tych podkatalogów znajduje się plik o nazwie: start - również stworzony przez usera games, z prawami do wykonania (uruchomienia).
Użytkownik ma dostęp do swojego katalogu poprzez FTP, konto ma w bazie i użytkownikiem FTP jest user: proftpd - w bazie podany jego uid oraz gid.
Chcę teraz uzyskać takie coś, iż użytkownik łącząc się na FTP z tym plikiem start nie może nic robić, modyfikować/usuwać/zmieniać nazwy...
Natomiast właściciel może wszystko - jak to właściciel :P, a co najważniejsze uruchomić go.
Wydaje mi się, że teraz lepiej to opisałem.
Ostatnio edytowany przez desavil (2011-10-13 18:33:17)
Offline
Poustawiać konta na FTP (co chyba zrobiłeś) i nie logować się jako proftpd na to konto ftp. Bo tu trochę, jak zauważyłeś, jest nieco bezpieczeństwo działania takiego czegoś nadwyrężone.
Offline
Ja nie loguję się na konto usera proftpd, w bazie jest tylko tego usera UID oraz GID, gdyż tego wymaga każdy serwer FTP.
A loguję się normalnie na podany login oraz hasło w bazie jakie sobie ustawiłem.
Offline
kondziu jah,
Zmiana właściciela:
lub rekursywnie (katalog wraz z jego zawartością):
Zmiana grupy:
Zmiana właściciela i grupy zarazem:[/quote]
Po co mam zmieniać właściciela i grupę, skoro obecna mi odpowiada, czyli plik ma użytkownika oraz grupę taką samą przez jakiego użytkownika został stworzony, w tym wypadku usera games - i tak ma pozostać.zmiana uprawnień na odczyt (r - read) dla pozostałych (o - others):[/quote]
Nie działa, plik nadal mogę usuwać/modyfikować/zmieniać nazwę przez FTP.
Bardzo Was proszę o jakąś sensowną pomoc, wydaje się, że napisałem temat "Uprawnienia Pliku" i każdy pomyśli, że chodzi tutaj o nadanie chmod 777 i to wszystko, ale tak nie jest, bo to podstawy podstaw. Tutaj jest inny problem.Offline
Po pierwsze, możesz to zrobić samymi uprawnieniami bez problemu, o ile sensownie zaprojektujesz strukturę tych uprawenień w kontekście użytkowników i grup.
Jest też np chattr:
http://pl.wikipedia.org/wiki/Chattr
Jeśli same uprawnienia gdzieś nie starczają, to można się pobawić w ACL, chociaż to akurat w tym przypadku strzelanie z armaty do wróbla. ;P
Sznurki:
http://pl.wikipedia.org/wiki/Access_Control_List
http://www.linux-magazine.pl/index.php/content/download/3508/11900/file/KnowHow_Acl.pdf
A jeśli ACL nie wystarczy, to zawsze masz jeszcze np Selinux czy Grsecurity - gdzie można tworzyć własne systemy uprawnień, np zabronić userowi root czytania logów.
Ale to już wyższa szkoła jazdy. :D
Sznurki (Grsecurity):
http://grsecurity.net/gracldoc.htm
http://www.gentoo.org/proj/pl/hardened/grsecurity2.xml?style=printable
To by było na tyle
;-)
Ostatnio edytowany przez Jacekalex (2011-10-14 10:35:53)
Offline
Mógłbym prosić o jakieś przykłady, jak mam to skonfigurować i jak najprościej?
Bo męczę się z tym, męczę patrzę na te przykłady z wiki i nie tylko, testuję i nic nie wychodzi.
Ostatnio edytowany przez desavil (2011-10-14 11:32:27)
Offline
Postanowiłem, że użyję ACL - bo wyczytałem, że on to niby ma potrafić.
Zamontowałem partycję, uprawnienia nadaje.
Teraz tak.
Katalog: /home/games/1 - GID/UID: games, chmod: 775
Łącząc się przez FTP, mogę tworzyć foldery itp. wszystko - tak ma być.
Wysyłam przez FTP plik o nazwie: test - jego GID/UID to automatycznie: pureftpd
Loguję się na roota i wykonuję tę komendę:
setfacl -m u:pureftpd:r /home/games/1/test
Uprawnienia zostały nadane, lecz przez FTP nadal mogę z plikiem robić wszystko.
Gdzie popełniłem błąd?
Pozdrawiam.
Offline
Time (s) | Query |
---|---|
0.00014 | SET CHARSET latin2 |
0.00006 | SET NAMES latin2 |
0.00124 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='13.58.161.115' WHERE u.id=1 |
0.00070 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.58.161.115', 1732457232) |
0.00055 | SELECT * FROM punbb_online WHERE logged<1732456932 |
0.00087 | DELETE FROM punbb_online WHERE ident='85.208.96.200' |
0.00071 | SELECT topic_id FROM punbb_posts WHERE id=183151 |
0.00009 | SELECT id FROM punbb_posts WHERE topic_id=19863 ORDER BY posted |
0.00055 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=19863 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00179 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=19863 ORDER BY p.id LIMIT 0,25 |
0.00077 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=19863 |
Total query time: 0.00752 s |