Forum Linux.pl
Oprogramowanie => Usługi => Wątek zaczęty przez: cicho-ciemny1 w 2008-12-01, 22:29:33
-
Chciałbym się dowiedzieć w jaki sposób można nadać danemu użytkownikowi prawa do wykonywania niektórych poleceń takich jak mount lub make install?
-
`man sudo`
`man sudoers`
`man visudo`
+ Google dla powyższych
Można też napisać prosty program w C/C++, wykonujący polecenie za pomocą system("polecenie"), skompilować, i:
chown root:root program
chmod u+s program
chmod a+x program
albo
chown root:grupauprawnionych program
chmod u+s program
chmod ug+x program
Odsyłam tu do `man chmod`.
-
Jeżeli chodzi o mount, możesz stworzyć osobną grupę użytkowników (np o nazwie monterzy) i dodać usera do tej grupy a następnie w /etc/fstab dodać opcję group=monterzy (AFAIR oznacza ona: pozwól userom z danej grupy montować dane urządzenie). W przypadku make install poważnie bym się zastanowił, ponieważ de facto dajesz userowi pełne prawa admina (może sobie cokolwiek w Makefile'u nasmarować i następnie to wykonać).
W razie wszelkich technicznych szczegółów, tak jak kolega powyżej, odsyłam do dokumentacji.
-
skoro odradzasz mi nadanie uprawnień do "make install" to co moge zrobić aby użytkownik mógł zaistalować sobie jakiś program.
-
`make install` nie jest potrzebny do instalacji programu.
`make` to polecenie wykonujące polecenia z pliku Makefile. `make install` wykonuje polecenia znajdujące się pod etykietą "install" w tym pliku. Zazwyczaj jest to po prostu kopiowanie plików do miejsc docelowych. I jeśli ścieżka instalacji jest domyślna, wymaga to praw roota, bo kopiowanie następuje do katalogów systemowych.
Ale:
1) Program po skompilowaniu `make` najczęściej może działać z katalogu, w którym był kompilowany.
2) Można nie instalować programu dla całego systemu. Wystarczy, że user wywoła:
./configure --prefix=/home/user/program/
potem kompiluje pisząc `make` i zainstaluje lokalnie za pomocą `make install`.
Zamiast configure może być potrzebne cmake, wtedy dla ustalenia wybranej ścieżki instalacji wpisujemy:
cmake -D CMAKE_INSTALL_PREFIX="/home/user/program/"
Poza tym, po co i jakie programy chcesz, aby userzy mogli sobie instalować? Jeśli dostępne są w repozytorium, to ty powinieneś je zainstalować.
-
Dzięki za info!!! :)