Dobrý den,
potřeboval bych trochu poradit s následujícím:
mám příkaz "X", který je třeba spustit jako "sudo X". Nicméně chci jej spustit při startu pc a samozřejmě nechci zadávat heslo. Takže jsem zkusil vytvořit skript, který by vlastnil root a který by měl nastaven sticky bit, ale pak z mě neznámého důvodu "X" selhal. Napadá někoho proč tomu tak je? Může mi někdo vysvětlit rozdíl mezi spuštěními:
a) z bashe pomocí sudo
b) z sudo -i bashe bez sudo
c) skriptem, který vlastní root a má nastaven sticky bit?
Myslím že by tam rozdíl být neměl(záleží-li pouze na oprávněních toho kdo spouští), ale přesto je ...
předem dík za každou radu
alf.
X je ddccontrol a níže je výpis tří různých spuštění :
1. - provede se správně, jen něco žvaní o chybné odpovědi zařízení (ale zařízení zareaguje správně).
martin@AlfonzPC:~$ sudo ddccontrol pci:01:00.0-1 -r 0xe1 -w 0
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus pci:01:00.0-1...
EDID readings:
Plug and Play ID: SAM0168 [Samsung SyncMaster 710TM]
Input type: Digital
Writing 0xe1, 0x00(0)...
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 e1 5d 00 59 ff ff ff ff | Q...].Y....
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 e1 5d 00 59 ff ff ff ff | Q...].Y....
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 e1 5d 00 59 ff ff ff ff | Q...].Y....
------------------------
2. provede se jinak, oproti předchozímu příkazu se vyrojí několik "errorů" (ale zařízení stále ještě zareaguje správně - nechápu).
martin@AlfonzPC:~$ sudo -i
root@AlfonzPC:~# ddccontrol pci:01:00.0-1 -r 0xe1 -w 0
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus pci:01:00.0-1...
sendbytes: error - bailout.
Error while reading write message answer: Bad message
i2c-algo-bit.o: readbytes: i2c_inb timed out.
Error while reading read message answer: Bad message
EDID readings:
Plug and Play ID: SAM0168 [Samsung SyncMaster 710TM]
Input type: Digital
Writing 0xe1, 0x00(0)...
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 e1 5d 00 59 ff ff ff ff | Q...].Y....
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 e1 5d 00 59 ff ff ff ff | Q...].Y....
Invalid response, first byte is 0x51, should be 0x6e
51 82 01 e1 5d 00 59 ff ff ff ff | Q...].Y....
----------------------
3. nestane se to co se má stát.
martin@AlfonzPC:~$ ls -l test
-rwsrwxrwx 1 root root 296 2008-07-14 13:12 test
martin@AlfonzPC:~$ cat test
#!/bin/bash
ddccontrol pci:01:00.0-1 -r 0xe1 -w 0
martin@AlfonzPC:~$ ./test
ddccontrol version 0.4.2
Copyright 2004-2005 Oleg I. Vdovikin (oleg@cs.msu.su)
Copyright 2004-2006 Nicolas Boichat (nicolas@boichat.ch)
This program comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program under the terms of the GNU General Public License.
Reading EDID and initializing DDC/CI at bus pci:01:00.0-1...
nvidia_open: cannot open /dev/mem: Permission denied
Error while reading open message answer: Bad message
DDC/CI at pci:01:00.0-1 is unusable (-3).
If your graphics card need it, please check all the required kernel modules are loaded (i2c-dev, and your framebuffer driver).