Strona 1 z 2

modprobe, ładowanie danego modułu przez użytkownika?

: 03 stycznia 2010, 11:32
autor: kitor
Moja karta telewizyjna, OEM oparta o układ Phillips SAA7134 nie jest poprawnie rozpoznawana przez moduł saa7134. Aby uruchomić kartę muszę wykonać najpierw

Kod: Zaznacz cały

rmmod saa7134
a następnie:

Kod: Zaznacz cały

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.

Kod: Zaznacz cały

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?

: 03 stycznia 2010, 12:13
autor: ryba84

Kod: Zaznacz cały

man sudoers

: 03 stycznia 2010, 12:31
autor: ilin
karta nie jest spięta z kartą dźwiękową, a podłączona bezpośrednio do miksera
Możesz jaśniej wyjaśnić Twoją konfigurację sprzętową?

: 03 stycznia 2010, 13:35
autor: kitor
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.

: 03 stycznia 2010, 13:47
autor: darkwater
kitor, gdybyś przeczytał:

Kod: Zaznacz cały

man sudoers
wiedziałbyś, że można zdefiniować konkretne przywileje dla konkretnych poleceń, wraz z parametrami.

: 03 stycznia 2010, 14:36
autor: kitor
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.

: 03 stycznia 2010, 14:42
autor: winnetou
Dziękuje...

: 03 stycznia 2010, 14:55
autor: ryba84
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 ;)

: 17 stycznia 2010, 00:11
autor: kitor

Kod: Zaznacz cały

# /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?

: 17 stycznia 2010, 04:32
autor: ryba84
A linijka z grupą tv nie powinna tak wyglądać:

Kod: Zaznacz cały

%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ć.