Takže tady je mini HOWTO:
Věc: Jak připojovat CIFS disky jako běžný uživatel v Linuxu
V programech mount.cifs a umount.cifs asi špatně chodí kontrola práv, takže se mně za boha nepovedlo
připojit disky, aniž bych psal sudo. Tak jsem musel udělat opravu příkazů:
1) Stáhněte si zdrojáky - mount.cifs.c a umount.cifs.c a uložte si je někam na disk - třeba do domovského adresáře
Já je našel tady:
http://linux-cifs.samba.org/cifs/cifs_download.html2) Proveďte v nich následující úpravy:
a) mount.cifs.c
připsal jsem tenhle odstavec
if(statbuf.st_uid == 0) {
statbuf.st_uid = getuid();
}
před tenhle odstavec (špatně zjišťoval ID uživatele) - použijte funkci hledání :-)
if((getuid() != 0) && (geteuid() == 0)) {
if((statbuf.st_uid == getuid()) && (S_IRWXU == (statbuf.st_mode & S_IRWXU))) {
#ifndef CIFS_ALLOW_USR_SUID
/* Do not allow user mounts to control suid flag
for mount unless explicitly built that way */
flags |= MS_NOSUID | MS_NODEV;
#endif
} else {
printf("mount error: permission denied or not superuser and mount.cifs not installed SUID\n");
return -1;
}
}
b) umount.cifs.c
Odstavec za tímto řádkem jsem okomentoval - znaky /* a */
rc = umount_check_perm(mountpoint);
/* if (rc) {
printf("Not permitted to unmount\n");
return rc;
}*/
3) Programy zkompilujte programem gcc:
gcc jméno_souboru -o jméno_výstupního_souboru
gcc ./mount.cifs.c -o ./mount.cifs -DCIFS_ALLOW_USR_SUID
gcc ./umount.cifs.c -o ./umount.cifs
4) Nahraďte původní programy mount.cifs a umount.cifs v /sbin
sudo cp ./mount.cifs /sbin/mount.cifs
sudo cp ./umount.cifs /sbin/umount.cifs
5) Nastavte vlastníka - roota:
sudo chown root.root /sbin/mount.cifs
sudo chown root.root /sbin/umount.cifs
6) Přidejte sticky bit:
sudo chmod +s /sbin/mount.cifs
sudo chmod +s /sbin/umount.cifs
7) Pro lepší pohodlí napište odkaz na cifs svazek do /etc/fstab
Přidejte řádek:
//server/sdílený_disk /media/náš_mountpoint cifs user,noauto,rw,user=uživ_jméno,password=heslo_sdíleného_disku,uid=vlastník_souborů_na_cifs,gid=skupina_vlastníka_souborů_na_cifs 0 0
noauto - nepřipojuje disk po startu PC
user, password - jméno a heslo síťového disku
gid, uid - jméno a skupina vlastníka, kterému bude svazek patřit (je dobré si tam napsat běžného uživatele - sebe, pokud chcete mít neomezená práva
Pak by to mělo chodit. Nejsem si jistý akorát s tou kompilací - aby tam nedělaly problém nějaké závislosti. Kdybych věděl, jak se sem dá uploadovat, tak byh vám sem hodil i zkompilované soubory.
Jo a poslední věc: když se dá update systému, tak se z netu stáhnou zpátky soubory s chybou (to by chtělo nějak zakázat, ale ještě jsem na to neměl čas)
Teď už sem to psal spíš spatra, tak mějte soucit a kdyby něco nešlo přesně podle návodu, zkuste si to domyslet a nebo napište...