Fórum Ubuntu CZ/SK
Ostatní => Archiv => Téma založeno: makl 02 Března 2007, 02:16:20
-
Nedaří se mi připojit si vzdálený cifs svazek do souborového systému aniž bych musel být root.
Připojení se superuživatelskými privilegii funguje dobře, a to jak sudo mount -t cifs -o username=USER,password=XXX,workgroup=PRACOVNI-SKUPINA,rw //svazek_na_serveru /pripojny_bodtak i příslušným řádkem v /etc/fstab a následným příkazem:FSTAB:
//svazek_na_serveru /pripojny_bod cifs user=USER,pass=xxxxxx,dom=DOMENA,users 0 0
PŘÍKAZ:
sudo mount /pripojny_bodTu možnost "users" tam mám, protože jsem si tady někde přečetl, že díky ní budou moci mountovat i normální uživatelé. Bohužel to ale nefunguje, jak bych si představoval:makl $ mount /pripojny_bod
mount error 1 = Operation not permitted
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)Kde jsem se dočetl akorát tak This command may be used only by root, unless installed setuid, in which case the noeexec and nosuid mount flags are enabled.
Moc ale netuším, co bych měl teď udělat, takže prosím o rady.
-
U mountovani smbfs/cifs svazku je situace jina nez u mountovani lokalnich oddilu.
Dulezita je informace
smbmnt must be installed suid root for direct user mounts (1000,1000)
smbmnt failed: 1Suid root se pro smbmnt nastavi prikazem
sudo chmod +s /usr/bin/smbmnt
-
Příkaz "sudo chmod u+s /usr/bin/smbmnt" jsem taky zkoušel, ale píše to pořád, že operace není povolena a že si mám pročíst manové stránky.
Ten chybový kód "smbmnt must be ..." se mi vypisoval, když jsem místo "cifs" měl v fstabu "smbfs". Když jsem potom přidal ta "s" práva, tak se mi dostalo:27942: session setup failed: ERRDOS - ERRnoaccess (Access denied.)
SMB connection failedZadal jsem tu hlášku do googlu, ale nic uspokojivého jsem nenašel. Tak jsem radši dal zase všechno zpátky.
Teď mám dilema, jestli se snažit něco vydumat s pomocí té hlášky, nebo se spíš snažit prorazit přes to cifs a ne smbfs (když jsem se kdysi ptal správce sítě, tak jsem dostal příkaz k připojování "mount -t cifs ..."), což by mělo být asi více korektní.
Co myslíte?
-
IMHO je fuk jestli pouzijete smbfs nebo cifs. Zkuste se zeptat vaseho spravce, proc pozaduje zrovna cifs.
-
Tak jestli je to fuk, tak máme aspoň víc možností na to, jak se připojit.
Ještě jsem se chtěl zeptat, jestli všechny ty různé možnosti (noperms, uid, gid, ...), na které jsem při pročítání fóra narazil mají nějaký vliv na to, jestli bude souborový systém na vzdáleném disku přimountován, nebo mají vliv až na to, jak s ním bude možno zacházet.
-
Tak jsem vyzkoušel ještě mountování přes smbfs, takže jsem změnil fstab a provedl:
FSTAB:
//svazek_na_serveru /pripojny_bod smbfs user=USER,pass=xxxxxx,dom=DOMENA,users 0 0
PŘÍKAZ:
sudo mount /pripojny_bodale nedostane se mi přístupových práv:makl $ sudo ls /pripojny_bod/
ls: /pripojny_bod/: Permission deniedTotožný výsledek má i ruční mountovánísudo mount -t smbfs -o username=USER,password=XXX,workgroup=PRACOVNI-SKUPINA,rw //svazek_na_serveru /pripojny_bodTakže bych raději šel přes to cifs, u kterého bych si ještě rád nastudoval možnost "credentials", abych udržel heslo na bezpečnějším místě než v /etc/fstab.
-
to uz je otazka nastevi prav adresare /pripojny_bod
nastavte prava nejmene na 755
-
to uz je otazka nastevi prav adresare /pripojny_bod
nastavte prava nejmene na 755
Když přece zadám "sudo ls /pripojny_bod/", tak by se práva kontrolovat neměla (?).
-
Mohl by se ještě někdo prosím zamyslet nad těmi možnostmi (http://forum.ubuntu.cz/viewtopic.php?id=7691#p54724)?
Jakákoli pomoc (hlavně s cifs) stále vítána. Díky
-
Ahoj,
funguje teda někomu mountování cifs disků bez sudo? Já sem se s tím trápil hodně dlouho a podle mě maj chybu v programech mount a umount.cifs. Tak sem to opravil a teď to chodí naprosto v pohodě. Chtěl sem napsat bug report na Sambu, ale to bylo složitější, než celá oprava. Pokud budete chtít, tak až se dostanu domů, můžu sem uploadovat ty upravený soubory i s návodem.
-
Pokud budete chtít, tak až se dostanu domů, můžu sem uploadovat ty upravený soubory i s návodem.
Určitě chceme (aspoň já bych prosil) ;)
-
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.html
2) 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...
-
Jsi borec, máš u mě vyznamenání. Funguje to parádně. Jel jsem podle toho návodu a žádné problémy jsem neměl. Ještě zakázat ty aktualizace a bude to perfektní. Ještě jednou díky.
-
Není zač, jestli je na tomhle fóru nějakej šikovnej admin, tak by to moh hodit někam do FAQ, je to podle mě docela běžná věc a mohlo by to pomoct dalším lidem...
-
Nevim, jestli je bezna vec uprava systemovych zdrojaku v C a jejich kompilace, spis jsem presvedceny ze ne. Do FAQ by se to hodilo, ale pro velmi pokrocile uzivatele. BFU - tech je tu prevazna vetsina, si s tim neporadi. Pokud je to opravdu vazna chyba a ne feature, melo by to byt reportovano.