Prawa dostepu do urzadzen

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Śro, 24 Maj 2000, 19:24:21 CEST


On Wed, 24 May 2000, Tomasz Kłoczko wrote:
[..]
> > przy każdym logowaniu z fizycznej konsoli user będzie dopisywany do
> > grupy "audio".
> > Można analogicznie zrobić dla flopa, cdromu itp.
> 
> Już sam nie wiem jak to jest, bo z mana wynika, że żeby móc zamontować
> urządzenie wystarczy mieć uprawnienia do odczytu urządzenia. Mount jednak
> sie pluje przy ustawionym sgid=disk i bez suid root że musi mieć
> uprawnienia roota. Jeszcze musze to sprawdzić ale wygląda na to, że jest
> tu jakiś byk w mount/umount. Jeżeli dałoby sie z tego zrezugnować to
> możnaby dać na mount/umount sgid=disk.

Właśnie sprawdziłem.
Dokładnie do powyższego jest potrzebne:

        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;

Czyli sgid=disk na mount/umount nie wystarczy.
To jest lista czynności do jakich uprawnia CAP_SYS_ADMIN:

/* Allow configuration of the secure attention key */
/* Allow administration of the random device */
/* Allow device administration (mknod)*/
/* Allow examination and configuration of disk quotas */
/* Allow configuring the kernel's syslog (printk behaviour) */
/* Allow setting the domainname */
/* Allow setting the hostname */
/* Allow calling bdflush() */
/* Allow mount() and umount(), setting up new smb connection */
/* Allow some autofs root ioctls */
/* Allow nfsservctl */
/* Allow VM86_REQUEST_IRQ */
/* Allow to read/write pci config on alpha */
/* Allow irix_prctl on mips (setstacksize) */
/* Allow flushing all cache on m68k (sys_cacheflush) */
/* Allow removing semaphores */
/* Used instead of CAP_CHOWN to "chown" IPC message queues, semaphores
   and shared memory */
/* Allow locking/unlocking of shared memory segment */
/* Allow turning swap on/off */
/* Allow forged pids on socket credentials passing */
/* Allow setting readahead and flushing buffers on block devices */
/* Allow setting geometry in floppy driver */
/* Allow turning DMA on/off in xd driver */
/* Allow administration of md devices (mostly the above, but some
   extra ioctls) */
/* Allow tuning the ide driver */
/* Allow access to the nvram device */
/* Allow administration of apm_bios, serial and bttv (TV) device */
/* Allow manufacturer commands in isdn CAPI support driver */
/* Allow reading non-standardized portions of pci configuration space */
/* Allow DDI debug ioctl on sbpcd driver */
/* Allow setting up serial ports */
/* Allow sending raw qic-117 commands */
/* Allow enabling/disabling tagged queuing on SCSI controllers and sending
   arbitrary SCSI commands */
/* Allow setting encryption key on loopback filesystem */

CAP_SYS_ADMIN jest stanowczo za szerokie. Byłoby do przjęcia gdyby w ext2
było można ustawić CAP_SYS_ADMIN dla uruchamianej binarki mount/umount, bo
jakieś nadawanie generalnie wszystkim procesom CAP_SYS_ADMIN poprzez
pam_cap w np. /etc/pam.d/{login,xdm,gdm,kdm} byłoby wyważaniem dżwi z
całym budynkiem. Może jakaś przeróbka mount/umount żeby programy używały
pam i żeby w pliku autentykacji dla tych programów był używany moduł
pam_cap coś by rozwiązało (wydaje się, że tak). Janek co Ty na to ?

.. chyba że ja to niepoprawnie rozumiem.

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



Więcej informacji o liście dyskusyjnej pld-devel-pl