|
modprobe, ładowanie danego modułu przez użytkownika?
kitor - 03-01-2010 11:32
Moja karta telewizyjna, OEM oparta o układ Phillips SAA7134 nie jest poprawnie rozpoznawana przez moduł saa7134. Aby uruchomić kartę muszę wykonać najpierw rmmod saa7134
a następnie:
modprobe saa7134 card=21
Niestety po uaktywnieniu karty przez modprobe od razu pojawia się dźwięk na jej wyjściu, co w moim wypadku jest dość uciążliwe - karta nie jest spięta z kartą dźwiękową, a podłączona bezpośrednio do miksera. Oczywiście po zakończeniu oglądania telewizji również trzeba wyłączyć moduł saa7134 aby nie było słychać ostatnio oglądanego kanału.
sudo rmmod saa7134 sudo modprobe saa7134 card=21 tvtime #po zamknięciu tvtime sudo rmmod saa7134
Można by to ubrać w ładny skrypt, ale cały czas jest tu polecenie sudo, które wymaga oczywiście hasła administratora. I tu kształtuje się pytanie - czy jest jakaś opcja umożliwienia zwykłemu użytkownikowi modprobe/rmmod na danym module bez konieczności korzystania z uprawnień roota?
ryba84 - 03-01-2010 12:13
man sudoers
ilin - 03-01-2010 12:31
Możesz jaśniej wyjaśnić Twoją konfigurację sprzętową ?
kitor - 03-01-2010 13:35
Karta normalnie łączona jest za pomocą zewnętrznego kabelka jack 3.5mm - jack 3.5mm z LineIn karty dźwiękowej. Ja zamiast podpinać do karty mam podpięte do miksera (sprzętowy, Phonic MX202), dzięki czemu mogę dźwięk regulować niezależnie od tego co idzie z karty dźwiękowej ;-)
ryba84
Z tego co zrozumiałem mogę pozwolić użytkownikowi wykonywać polecenie modprobe i rmmod. Z tym że ja chciałbym to ograniczyć do wywołania konkretnego modułu przez te polecenia.
darkwater - 03-01-2010 13:47
kitor, gdybyś przeczytał man sudoers, wiedziałbyś że można zdefiniować konkretne przywileje dla konkretnych poleceń, wraz z parametrami.
kitor - 03-01-2010 14:36
Cóż, przyznaję że przejrzałem tylko artykuł na jakilinux.org, nie miałem czasu żeby całego man'a przeczytać. No ale skoro tak mówisz to poszukam.
winnetou - 03-01-2010 14:42
Dziękuje...
ryba84 - 03-01-2010 14:55
Przejrzyj dokładnie mana i na pewno jest tam możliwość wykonywania konkretnych poleceń z konkretnymi parametrami bez podawania hasła. To linux więc ja uważam, że lepiej jest dać komuś wędkę niż podać rybę na tacy ;)
kitor - 17-01-2010 00:11
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. #
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification root ALL=(ALL) ALL ALL ALL=NOPASSWD:/sbin/shutdown %tv ALL=(root) NOPASSWD: /sbin/modprobe saa7134 card=21, /sbin/rmmod saa7134 # Allow members of group sudo to not need a password # (Note that later entries override this, so you might need to move # it further down) %sudo ALL=(ALL) ALL # #includedir /etc/sudoers.d
Dodałem grupę "tv", umieściłem siebie w tej grupie, dalej sudo prosi o hasło. Co robię źle?
ryba84 - 17-01-2010 04:32
A linijka z grupą tv nie powinna tak wyglądać:
%tv ALL = NOPASSWD:/sbin/modprobe saa7134 card=21, /sbin/rmmod saa7134
Mogę się mylić ale nie chce mi się sprawdzać. A i pamiętaj odstęp między %tv i ALL to nie spacja tylko tabulator. Jeśli to nie jest u Ciebie tabulator to popraw bo nie będzie działać.
kitor - 17-01-2010 18:19
Niestety, nie działa (no chyba że muszę się przelogować?), sprawdzałem również z
ALL ALL = NOPASSWD:/sbin/modprobe saa7134 card=21, /sbin/rmmod saa7134
ryba84 - 17-01-2010 19:44
Chyba się musisz przelogować. Zresztą sprawdzić nie zaszkodzi.
Edit:
U mnie działa taki wpis: ryba ALL=NOPASSWD: /etc/init.d/ntp-client start
Co prawda tylko dla jednego użytkownika, ale przy grupie również powinno działać.
kitor - 25-01-2010 18:47
kitor ALL=NOPASSWD: /sbin/shutdown kitor ALL=NOPASSWD: /sbin/modprobe saa7134 card=21 kitor ALL=NOPASSWD: /sbin/rmmod saa7134
Również nie działa, żadne z tych trzech poleceń. :-/
darkwater - 25-01-2010 19:03
Również nie działa, żadne z tych trzech poleceń.
Wiesz oczywiście że skoro w /etc/sudoers podałeś te polecenia wraz ze ścieżką, wywoływać je musisz również z podaniem całej ścieżki?
/sbin/modprobe saa7134 card=21
kitor - 25-01-2010 20:22
Tak.
kitor@kitor-debian:~$ sudo /sbin/modprobe saa7134 card=21 [sudo] password for kitor: ^C kitor@kitor-debian:~$ sudo -l Matching Defaults entries for kitor on this host: env_reset
User kitor may run the following commands on this host: (root) NOPASSWD: /sbin/shutdown (root) NOPASSWD: /sbin/modprobe saa7134 card\=21 (root) NOPASSWD: /sbin/rmmod saa7134 (ALL) ALL kitor@kitor-debian:~$
Nie wiem skąd bierze się "\" w "card\=21", w sudoers go nie ma. Ale rmmod również nie działa.
mesiu84 - 26-01-2010 10:42
Zobacz czy nie masz problemu z ustawieniami dźwięku w systemie, też zdarzały mi się takie przypadki ale wystarczyło pogrzebać w ustawieniach głośności. Aby po wyłączeniu TV dźwięk też się wyłączał pamiętam że zmieniałem coś w alsamixer i w samym tvtime, ładowanie i wyładowywanie modułu za każdym razem to niepotrzebne dodawanie sobie pracy, zresztą będziesz musiał każdorazowo uruchamiać konsole i wpisywać te polecenia, a po co sobie życie utrudniać?
kitor - 26-01-2010 16:29
W ustawieniach Alsy nie mam regulacji od saa7134 (wiem że niektóre karty mogły przesyłać dźwięk po PCI, moja do nich nie należy). Poza tym napisałem, że dźwięk mam podpięty do miksera audio poza komputerem, więc alsa odpada.
A co do konsoli, zawsze można porobić skrypty ;-) tylko najpierw musi sudoers zagadać.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|