[OSX] 'Stealth' verbinding maken met server/share

Pagina: 1
Acties:
  • 273 views sinds 30-01-2008
  • Reageer

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Topicstarter
Ik heb thuis een PB en op het werk hebben we een G5 en wat G4's staan. Die hele zwik maakt onder OSX automatisch bij opstarten verbinding met een aardig aantal servers of shared volumes.

Op zich lukt dat prima. Je geeft bij opstarten 1x je keychain wachtwoord en vervolgens legt hij alle verbindingen die je zo via de systeemvoorkeuren hebt ingesteld.

Wat ik alleen, zeker gezien het grote aantal verbindingen, irritant vindt is dat hij bij elke verbinding (op mijn werk bv 9) ook meteen voor elke server/share een venster open gooit. Ik ben al aan het zoeken geweest met Google enzo en dacht dat zoiets misschien wel via applescript zou moeten kunnen. Maar ik kan het gewoon niet vinden.

Het zou zo lekker zijn als je meteen verbinding had met de servers zonder al die venster in 1x en desnoods ook zonder die eenmalige keychain. Dat stukje veiligheid is hier overbodig.

Misschien dat hier iemand nog een goede tip/suggestie heeft, krijg het nog niet voor elkaar.

My Fizion | My 3D prints | LinkedIn


  • Q
  • Registratie: November 1999
  • Laatst online: 14:20

Q

Au Contraire Mon Capitan!

Hoe maken deze clients verbinding met de shares?

Verwijderd

Na even wat gegoogled te hebben:

http://forums.macosxhints.com/archive/index.php/t-22241.html

Ik ga het zelf ook eens proberen.

Thijs

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Topicstarter
Q schreef op 05 oktober 2004 @ 19:13:
Hoe maken deze clients verbinding met de shares?
Ik heb gewoon de snelkoppelingen in Startup Items gemikt. Gaat op zich prima.
Interessant, die was ik nog niet tegen gekomen. Het is een beetje een dirty manier maar als het werkt in elk geval weer wat.

Mooiste zou ik het vinden als ik gewoon zonder ook maar iets te doen bv connectie zou maken met alle servers, zonder dat je er ook maar iets van mee krijgt. Maar dit lijkt me een goed begin. Ga het ook proberen, zit helaas nog even met wat werk wat af moet.

My Fizion | My 3D prints | LinkedIn


  • leon1e
  • Registratie: December 2000
  • Laatst online: 13:02
code:
1
2
3
tell "Finder"
mount volume "afp://[gebruiker]:[wachtwoord]@[server]:/[volume]"
end tell


Zo uit mijn hoofd, ik kijk morgen even na of ik dit goed had. Dit maak zet je dan in een applescript, en hier maak je weer een programma van, vanuit de applescript editor. En dit programma past dan prima in je startup items.

Smb is dezelfde syntax indien van toepassing.

[ Voor 7% gewijzigd door leon1e op 05-10-2004 23:16 ]


  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Topicstarter
leon1e schreef op 05 oktober 2004 @ 23:15:
Zo uit mijn hoofd, ik kijk morgen even na of ik dit goed had. Dit maak zet je dan in een applescript, en hier maak je weer een programma van, vanuit de applescript editor. En dit programma past dan prima in je startup items.

Smb is dezelfde syntax indien van toepassing.
Ik heb het net even geprobeerd maar nog zonder succes.. kwam met wat zoeken nog wel iets andere regels tegen maar krijg fouten bij runnen van script. bv:

code:
1
2
3
tell application "Finder"
open location "smb://user:password@computername/sharename"
end tell


edit:
neem mijn pb wel ff mee naar het werk, daar ook nog ff kloten

[ Voor 8% gewijzigd door OzBoz op 06-10-2004 08:31 ]

My Fizion | My 3D prints | LinkedIn


  • blackd
  • Registratie: Februari 2001
  • Niet online
heb net wat in elkaar geflanst: (her en der geript en gecombineerd dus :+)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
set theShortUserName to do shell script "/usr/bin/whoami"

tell application "Keychain Scripting"
    set myKeyChain to keychain theShortUserName
    set theKeyList to every Internet key of myKeyChain
    repeat with x from 1 to (length of theKeyList)
        set theKey to item x of theKeyList
        if the name of theKey is "OXYGEN" then
            set machineKey to theKey
        end if
    end repeat
    
    set theUser to account of machineKey as string
    set thePassword to the password of machineKey as string
    set theServer to the server of machineKey as string
    set theProtocol to the protocol of machineKey as string
    set thePath to the path of machineKey as string
end tell

set theURL to (text 1 thru ((offset of (ASCII character 32) in theProtocol) - 1) of theProtocol) 
& "://" & theUser & ":" & thePassword & "@" & theServer & "/" & thePath as string

mount volume theURL 
set thePassword to "nul"


Hierbij maak ik 1 keychain Internet password item aan met daarin de url: smb://server/share die genaamd is "OXYGEN". Daardoor hoef je je password niet in je script / app op te slaan.

Ik gebruik dit voor 1 computer hier thuis, en daarbij heb ik wat aanpassingen gedaan zodat ik meerdere shares kan mounten, zonder meerdere keychain items aan te moeten maken:
code:
1
2
3
4
5
6
set theURL to (text 1 thru ((offset of (ASCII character 32) in theProtocol) - 1) of theProtocol) 
& "://" & theUser & ":" & thePassword & "@" & theServer & "/" as string

mount volume theURL & "c$"
mount volume theURL & "f$"
mount volume theURL & "g$"


Als je meerdere servers hebt zul je met een lijstje moeten werken ofzo, om alle keychain items te vinden. Ik weet niet precies hoe dat netjes moet.
Je kan ook dit stuk kopieren en plakken met andere namen, en opslaan in verschillende variabelen (machineKey1, machineKey2 etc.):
code:
1
2
3
if the name of theKey is "OXYGEN" then
     set machineKey to theKey
   end if

Je zult dan de code om de username, password etc. uit de keychain item te halen moeten herhalen per key:
code:
1
2
3
4
5
set theUser to account of machineKey as string
set thePassword to the password of machineKey as string
set theServer to the server of machineKey as string
set theProtocol to the protocol of machineKey as string
set thePath to the path of machineKey as string

misschien kan het nog korter door dit in de set theURL declaratie te doen.

Nog mooier is, zoals ik al zei, met lijstjes of arrays ofzo, maar ik heb geen idee hoe dat moet :P

Overigens kan het al zo simpel zijn:
code:
1
mount volume "smb://user:pass@server/path"

(dus zonder Tell (application) "Finder")

[ Voor 27% gewijzigd door blackd op 06-10-2004 09:01 ]

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Topicstarter
blackd schreef op 06 oktober 2004 @ 08:38:
heb net wat in elkaar geflanst: (her en der geript en gecombineerd dus :+)

Overigens kan het al zo simpel zijn:
code:
1
mount volume "smb://user:pass@server/path"

(dus zonder Tell (application) "Finder")
Hmmm.. ga straks eens even puzzelen, interessant :)

My Fizion | My 3D prints | LinkedIn


  • leon1e
  • Registratie: December 2000
  • Laatst online: 13:02
Ok update2, dit gebruik ik hier op het werk ook :)

code:
1
2
3
4
5
6
7
8
set Username to "user"
set Password to "wachtwoord"

tell application "Finder"
    if not (exists disk "naam van te mounten disk") then
        mount volume "smb://" & Username & ":" & Password & "@server.domein/share"
    end if
end tell

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Topicstarter
leon1e schreef op 06 oktober 2004 @ 16:33:
Ok update2, dit gebruik ik hier op het werk ook :)

code:
1
8<
Thanks! Werkt helemaal perfect. Alleen heb ik van Password Passw gemaakt omdat AppleScript dat steeds bleef zien als een gereserveerd woord.

Heb verder nog een kleine aanpassing gedaan vooral handig voor laptop. Ik hang via WiFi aan de servers maar om nou te voorkomen dat hij gaat mekkeren als hij de servers niet kan vinden is het bij mij dit geworden:

code:
1
2
3
4
5
6
7
8
9
10
set Username to "user"
set Passw to "wachtwoord"

tell application "Finder"
    if not (exists disk "naam van te mounten disk") then
     try
        mount volume "smb://" & Username & ":" & Passw & "@server.domein/share"
     end try
    end if
end tell


Op die manier houdt ie zich mooi koest :)

My Fizion | My 3D prints | LinkedIn


  • blackd
  • Registratie: Februari 2001
  • Niet online
Interessant nu je WiFi noemt.

Zo zou je een script kunnen bouwen met
http://www.macosxhints.co...p?story=20040222210724156 en dan met name het stuk onderaan
code:
1
(do shell script "ifconfig en0 | awk '/inet/ {print $2}'") is not equal to ""

om te checken of je wifi verbinding een IP heeft.

Dan met de dictionary van Internet Connect (Script Editor -> Open Dictionary -> Internet Connect), waarmee je de netwerknaam kan opvragen (thuisnetwerk) en zo je shares mounten zodra je connected bent met je eigen draadloze netwerk.

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Topicstarter
blackd schreef op 06 oktober 2004 @ 19:52:
Interessant nu je WiFi noemt.

Zo zou je een script kunnen bouwen met
http://www.macosxhints.co...p?story=20040222210724156 en dan met name het stuk onderaan
code:
1
(do shell script "ifconfig en0 | awk '/inet/ {print $2}'") is not equal to ""

om te checken of je wifi verbinding een IP heeft.

Dan met de dictionary van Internet Connect (Script Editor -> Open Dictionary -> Internet Connect), waarmee je de netwerknaam kan opvragen (thuisnetwerk) en zo je shares mounten zodra je connected bent met je eigen draadloze netwerk.
Poef.. das wel de mooie manier inderdaad. Zou ik ook weer kunnen uitbereiden met een if then oid zodat ie bv op mijn werk weer gaat kijken naar een andere netwerknaam. Wel leuk om eens ff in te duiken. Maar ik ben compleet nieuw wat betreft AppleScript en dit was mijn eerste poging. Na wat gefrunnik kwam ik achter dat 'try > end try' en dat werkt netjes. Maar als ik eens wat tijd heb ga ik er wat meer induiken. Zou zo al legio dingetjes weten die gewoon wat betreft ons werk veel handiger kunnen volgens mij.

My Fizion | My 3D prints | LinkedIn


  • blackd
  • Registratie: Februari 2001
  • Niet online
* blackd is ook nog een beetje AppleScript n00b :+
Die try - end try had ik zelf nog niet uitgevogeld, die ga ik er ook nog in opnemen.
Zou mooi zijn als alles automagisch gaat, zodra je verbinding hebt met je eigen wifi netwerk, en de shares zijn beschikbaar, dat ze gemount worden.
Als ik wat leuks heb uitgevogeld, zal ik 't hier wel posten.

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • Q
  • Registratie: November 1999
  • Laatst online: 14:20

Q

Au Contraire Mon Capitan!

Mac os x heeft ook de geweldige feature dat je "locations" op kan geven. Mocht daar gebruik van worden gemaakt is dat misschien ook nog een opsteker, ik zou alleen niet weten hoe je dat kunt opvragen.

  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Topicstarter
@Q: Dat van die locations kwam ik volgens mij al wel ergens tegen tijdens mijn gezoek. Er kan veel maar ik moet zeggen dat ik het lastig vind om dingen te vinden die goed uitgelegd zijn. Interessant is het wel.

@blackd: moet je zeker doen. Het is ook wel leuk hoe je het uit kan bouwen. Ik wilde een melding met 'Mounting Shares' oid meenemen in mijn script en kreeg wel een melding maar kwam er niet automatisch vanaf en wilde proberen om zeg maar iets voor paar seconden te laten zien. Maar kreeg meteen zo'n window met ok/cancel. Wilde meer een message hebben die vanzelf pleitte ging. Kwam al wel display alert etc tegen maar nog niet wat ik zocht.

My Fizion | My 3D prints | LinkedIn


  • leon1e
  • Registratie: December 2000
  • Laatst online: 13:02
OzBoz schreef op 06 oktober 2004 @ 19:18:
[...]

Thanks! Werkt helemaal perfect. Alleen heb ik van Password Passw gemaakt omdat AppleScript dat steeds bleef zien als een gereserveerd woord.
True, er stond een specifiek woordje bij ons in password en die heb ik even weggeknipt. Maar niet aan gedacht dat het reserved was 8)7

  • blackd
  • Registratie: Februari 2001
  • Niet online
OzBoz schreef op 07 oktober 2004 @ 00:45:
@Q: Dat van die locations kwam ik volgens mij al wel ergens tegen tijdens mijn gezoek. Er kan veel maar ik moet zeggen dat ik het lastig vind om dingen te vinden die goed uitgelegd zijn. Interessant is het wel.
Ik heb ook effe wat uitgezocht maar dat is niet makkelijk om met locations te werken... kijk maar eens hoe je de location e.d. in Network Locations wijzigt: http://george.ph.utexas.edu/~dsteck/code/switchtolanl

Ik denk dat ik toch bij 't opvragen van de naam van het wifi netwerk blijf :+

Overigens zit ik wel aan te denken om 't password in de keychain te houden.
Da's namelijk ten eerste veel veiliger dan je password in een script opslaan, en ten tweede kun je makkelijker je shares die je wil mounten managen.

Ga maar naar Keychain Access en kijk eens naar een Internet Key. Daar kun je de volgende gegevens invoeren:
code:
1
2
3
4
5
Name: unieke naam
Kind: Internet Password
Account: gebruikersnaam
Where: smb://server/share
Comments:

En daarbij zit natuurlijk je password.
Al deze gegevens kun je opvragen, en zelfs de 'Where' informatie kun je los opvragen (protocol: smb://, server: server, path: share) dus dat is ideaal.
Als je dan alle Internet keys opvraagt met als protocol SMB of APF, kun je heel makkelijk alle mogelijke shares mounten.
Maar, niet elke share is overal beschikbaar, dus als je nou zelf in het Comments veld de naam van het wireless netwerk zet waar de share beschikbaar is, dan kan ik dat in mijn AppleScript matchen.

Als je dan een nieuwe share wilt toevoegen, hoef je alleen maar een Internet password aan te maken, met de juiste comment.

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • OzBoz
  • Registratie: Maart 2000
  • Laatst online: 16-06-2025

OzBoz

.:.H.:.I.:.P.:.

Topicstarter
blackd schreef op 07 oktober 2004 @ 11:29:
[...]
Overigens zit ik wel aan te denken om 't password in de keychain te houden.
Da's namelijk ten eerste veel veiliger dan je password in een script opslaan, en ten tweede kun je makkelijker je shares die je wil mounten managen.
Hier maakt het in principe niet zoveel uit (is puur voor wat rechten onderling).. maar misschien stomme vraag, maar als je zo'n applescript ding als application op slaat. Kun je dan nog steeds heel makkelijk bij de passwords komen of is dat wat safer?

My Fizion | My 3D prints | LinkedIn


  • blackd
  • Registratie: Februari 2001
  • Niet online
Volgens mij is dat veiliger, alleen het fijne weet ik er niet van.
Ik kan iig niet heel makkelijk declaraties van variabelen terugvinden ofzo. Maar ik weet niet of je nog wat kan met iets als een decompiler oid...

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


  • Uberprutser
  • Registratie: Januari 2000
  • Laatst online: 14:34
OzBoz schreef op 06 oktober 2004 @ 08:26:

code:
1
2
3
Tell Application "Finder"
Mount Volume "smb://user:password@computername/sharename"
end Tell
Dat is um :)

As you may already have guessed, following the instructions may break your system and you are on your own to fix it again.


  • paella
  • Registratie: Juni 2001
  • Laatst online: 15-02 21:22
Dat is 'um' inderdaad. Sterker nog, bij ons loggen de gebruikers aan op een AD domein, dus netwerk logon. Deze credentials onthoud OS X netjes, waardoor ik alleen maar

mount volume "smb://servernaam/share/" hoef te doen, in opstarten te zetten en voila, de share staat op het scherm.

No production networks were harmed during this posting


Verwijderd

Kan je via applescript niet een wachtwoord bij Keychain opvragen? Lijkt me wat veiliger dan het wachtwoord plain in je scriptje plaatsen en je password-management blijft centraal geregeld.

  • blackd
  • Registratie: Februari 2001
  • Niet online
Kutkabouter: Da's precies wat mijn script doet 8)7

9000Wp o/w SolarEdge SE6K - Panasonic 5kW bi-bloc - gasloos sinds 17-7-2023


Verwijderd

oeps... :o
Pagina: 1