Автор Тема: Монтиране на windows share  (Прочетена 3019 пъти)

johnpetp

  • Участници
  • ***
  • Публикации: 4
    • Профил
Монтиране на windows share
« -: Jun 10, 2007, 20:54 »
Здравейте,
от скоро се занимавам а Linux и се случи така че се зхванах с Ubuntu 6.10. Та да споделя проблема си. Може би е елементарен но аз вече зациклих.
Та програма за работа със склад работеща под DOS. Основната  база данни е на Windows машина. Ситуацията в момента. Във fstab съм сложил реда:
Примерен код

//johnpetp/video /home/work/Sklad smbfs rw,user,username=guest,password= 0 0

Значи всичко работи ако компютъра на който е Linux-а се стартира СЛЕД компютъра с Windows (главната база). Проблема изниква ако уиндовския комп не е пуснат когато се стартира Линукса. Идеята ми е дали може да се напише "нещо" (аз му викам bat file) което първо да проверява дали има връзка със въпросния Windows компютър и след това да монтира мрежовия път.
Може би по-големия ми проблем е че в терминал "mount" ми казва че само root може да го прави. Четох че трябва да се даде "SUID root" на mount smbmount и smbmnt. Правих нещо но  mount продължава да твърди че само root може да го прави. За smbmount казва че библиотеките за smbmount не могат да бъдат с "SUID root". А ако ползвам smbmnt не излиза никакво съобщение но директорията /home/work/Sklad става файл с размер 0 и като се опитам да вляза там ми дава I/O error и браузването на файловата с-ма  става страшно бавно. Значи да спомена че писането на КАКВОТО И ДА БИЛО В ТЕРМИНАЛ ОТ СТРАНА НА ПОТРЕБИТЕЛЯ се изключва. Благодаря предварително.



Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Монтиране на windows share
« Отговор #1 -: Jun 10, 2007, 22:26 »
Първото, което се сещам, е boot скрипт с проверка чрез ping, който ще монтира устройството, вместо fstab. Т.е., нещо подобно
Примерен код
#!/bin/bash                                                                                                                                                
                                                                                                                                                            
ping -c 1 -w 5 111.222.333.444 &>/dev/null                                                                                                                      
if [ $? -ne 1 ]; then
      smbmount //johnpetp/video /home/work/Sklad -o guest
fi

където 111.222.333.444 е IP-то на johnpetp

edit: "bat file" под Windows. Тук еквивалента е гореописаното нещо - bash script  '<img'>



Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

johnpetp

  • Участници
  • ***
  • Публикации: 4
    • Профил
Монтиране на windows share
« Отговор #2 -: Jun 11, 2007, 11:16 »
Цитат (neter @ Юни 10 2007,23:26)
edit: "bat file" под Windows. Тук еквивалента е гореописаното нещо - bash script  '<img'>

'<img'>  '<img'>  '<img'>
То и аз затова "bat file" съм го сложил в кавички, че с това моето изкривено Windows мислене. ':p'  ':p'  ':p'

Сега по поста.
Може би не съм се изразил достатъчно добре това с fstab-a си работи достатъчно добре. Проблема е че ако не е монтирана Windows-ката директория защото отдалечения комп не е бил включен как после да го монтирам без да съм root.
Идеята е да се напише някакъв скрипт така че потребителката да не и се налага да пише нищо. Значи ако отдалечения комп е включен да се монтира отдалечената директория и да се пуска програмата. А ако не е пуснат да извежда съобщение и да спира.  И всичко това от Gnome средата на потребителя без да се налага да се пише нещо или да се налага да се въвеждат пароли. 'B)'

P.S. Горния код ми дава следното съобщение ако не съм root
Примерен код
libsmb based programs must *NOT* be setuid root.
4338: Connection to johnpetp failed
SMB connection failed
а ако съм root всичко си работи

P.P.S. Къде трябва да го сложа този код за да е boot time



Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Монтиране на windows share
« Отговор #3 -: Jun 11, 2007, 12:27 »
В такъв случай, сещам се за два варианта:
1. Правиш си един подобен скрипт
Примерен код
#!/bin/bash                                                                                                                                                
ping -c 1 -w 5 111.222.333.444 &>/dev/null
if [ $? -ne 1 ]; then
   find /home/work/Sklad |grep file &>/dev/null
   if [ $? -ne 0 ]; then
      smbmount //johnpetp/video /home/work/Sklad -o guest
   fi
fi

който скрипт слагаш да се изпълнява от crontab на всеки 2 минути например и когато имаш ping към johnpetp, но папката не е монтирана, скрипта ще си я монтира сам. За целта, в //johnpetp/video си направи един файл с име по избор и замени file в скрипта (след grep). Този файл ще се проверява за наличие и липсата му ще означава, че папката не е монтирана (не е много хитро, ама сега за това се сещам)

2. Добавяш твоя обикновен потребител във файла /etc/sudoers във формат
Примерен код
user ALL=(ALL) NOPASSWD:ALL

за да дадеш право на user да изпълнява команди като root и си правиш един скрипт, в който монтираш чрез sudo. Т.е.
Примерен код
sudo smbmount //johnpetp/video /home/work/Sklad -o guest




Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

johnpetp

  • Участници
  • ***
  • Публикации: 4
    • Профил
Монтиране на windows share
« Отговор #4 -: Jun 11, 2007, 15:08 »
Благодаря много.

Второто ми хареса повече. Направих го и стана.

Още веднъж благодаря много. '<img'>  '<img'>  '<img'>
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Монтиране на windows share
« Отговор #5 -: Jun 11, 2007, 16:34 »
Честито!  ':ok:'

А скриптовете, които се изпълняват при boot, седят обикновено в /etc/init.d, но не е задължително. Програмите, които инсталираш, ще си сложат скриптовете там, но ако сам си правиш boot скрипт, той може да бъде навсякъде, важното е да бъде изпълним. Все пак ти препоръчвам да си ги слагаш в /etc/init.d. След като бъде направен, трябва да се направят symlink-ове към него в /etc/rc*.d папките. Всяка rc*.d папка отговаря на определен init. По подразбиране, машината ти се включва в init 2, но слагай symlink-ове във всички папки. Init от 2 до 5 са за включване, другите за изключване. Symlink-овете трябва да се кръщават във формат #**ime, където # е буква S или K съответно за включване или изключване, ** е двуцифрено число, определящо реда на изпълнение на скриптовете (може да има и по повече от 1 скрипт с едно и също число, но не повече от виртуалните конзоли, които по подразбиране са 6). Symlink се прави с примерна команда
Примерен код
ln -s /etc/init.d/file /etc/rc2.d/S52file


Успех и приятни емоции в Unix среда ти пожелавам  '<img'>
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

iskren

  • Напреднали
  • *****
  • Публикации: 185
  • Distribution: Fedora Core 8
  • Window Manager: KDE3
    • Профил
    • WWW
Монтиране на windows share
« Отговор #6 -: Jun 12, 2007, 01:10 »
@neter
офф// много знаеш бе! '<img'>. Кажи каде мога да прочета подробно как стоят нещата със стартирането на линукса (и стартиращи се конфигурационни фаилове) (а и със всичко останало). Аз четох Running Linux дето уж е най-добрата но - бързо се отказах '<img'>.

Относно 2рия начин със лъгането на sudo - то нали точно това прави линуксите толкова стабилни - не всеки има право да прави каквото си ще (в windows default user-а става с admin права и 95% не сменят това). Та добавянето на всеки user сред тези имащи root права не е ли много опасно??
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Монтиране на windows share
« Отговор #7 -: Jun 12, 2007, 02:28 »
@iskren, за sudoers дадох насоката. Вярно е, че даването на такива широки права за обикновен потребител се налага изключително рядко, но sudoers е гъвкав откъм желания, така че с прочитането на това човек може да си организира нещата така, че да изглеждат добре и сигурно. А за стартирането на Линукс... не се наемам да ти предложа четиво, но какво точно искаш да разбереш? Системата монтира дисковете от fstab, зарежда и останалия хардуер и изпълнява скриптовете в rc*.d папката за съответния init. Ако не си създавал ръчно външни boot скриптове, то всички приложения, които се изпълняват при старт са описани в /etc/init.d. Някои от тях може да нямат symlink в съответната rc*.d папка, следователно няма да се заредят (или спрат) при този init. Ако имаш някакви конкретни въпроси, кажи ги, защото ми е малко трудно да ти опиша по-подробно схемата  '<img'>
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

iskren

  • Напреднали
  • *****
  • Публикации: 185
  • Distribution: Fedora Core 8
  • Window Manager: KDE3
    • Профил
    • WWW
Монтиране на windows share
« Отговор #8 -: Jun 12, 2007, 02:37 »
@neter
off// за сега няма по конкретно - мерси много за информацията - ще я поразгледам (преди ми се наложи да гледам/променям rc* файла при стартиране на bash и то се оказа файл, който вика 2ри, който зарежда цяла директория... а за цялата система кой знае какво е (ти доста добре го описа в първия си пост - ще разгледам '<img'> )
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
share
Настройка на програми
mtab 6 3334 Последна публикация Jun 29, 2003, 15:01
от
Share dir
Общ форум
FireMan 2 2344 Последна публикация Jan 28, 2004, 09:52
от kolio_kolev
samba i share-nati windows-ki printeri
Настройка на програми
zmei 5 2682 Последна публикация Oct 18, 2004, 10:31
от zmei
Share internet to windows
Настройка на програми
baskata 2 2324 Последна публикация May 22, 2006, 10:55
от baskata
samba, windows несъществуващ share
Хардуерни и софтуерни проблеми
lod 1 2809 Последна публикация Nov 07, 2008, 17:24
от lod