Applescript som sätter rättigheter på en mapp och dess innehåll.

Tråden skapades och har fått 10 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2004-11-01 23:27

Hej på er allihop. Jag har ett problem som jag beskiver här.

Nu är det så att jag verkligen inte är någon stjärna på Applescript så jag undrar om någon kanske skulle kunna hjälpa mig lite. Skulle alltså behöva ett scripts som man droppar en mapp på så ställer den om rättigheterna för mappen och allt i den så alla kan göra vad de vill med den.

Kanske är jättemycket jobb eller?

/acke

  • Medlem
  • 2004-11-02 21:54

Inte nog med att jag inte är en stjärna, jag orkar inte testa det heller... vad händer när det inte funkar?

Är det så att det har med rättigheter i Unix att göra (typ behörighet att köra chmod eller pilla på filerna öht)? Vad säger resultatet från "do shell script"?

En sak som jag dock kan se är att om det skulle funka så kommer den bara att ändra rättigheterna på det man droppar på scriptet, och inte innehållet i mappar några mappar. Vill man det måste man gå igenom innehållet i alla mappar och köra do shell script på det också. Sånad exempelkod finns på Apples AppleScriptsida.

  • Medlem
  • Stockholm
  • 2004-11-03 00:44

Jag provade och ändra till chmod 777 som ger allt och alla full access. Men som sedan wlao säger så ändras inte mapparna och filers inuti. Detta borde man ju kunna ordna genom att utöka shell scripts biten i scriptet. Men hur...?

Tack för hjälpen så här långt.

Tillägg: har hittat den länken som kanske kan vara nått.
http://www.apple.com/applescript/guidebook/sbrt/pgs/sbrt.09.htm

Eller kanske inte förresten.

  • Medlem
  • International user
  • 2004-11-03 09:12
Ursprungligen av acke:

Jag provade och ändra till chmod 777 som ger allt och alla full access. Men som sedan wlao säger så ändras inte mapparna och filers inuti. Detta borde man ju kunna ordna genom att utöka shell scripts biten i scriptet. Men hur...?

Tack för hjälpen så här långt.

Tillägg: har hittat den länken som kanske kan vara nått.
http://www.apple.com/applescript/guidebook/sbrt/pgs/sbrt.09.htm

Eller kanske inte förresten.

använd chmod -R

för mer info kolla: man chmod

  • Medlem
  • Stockholm
  • 2004-11-03 00:59

Vad sägs om det här? Ändrar dock bara rättigheterna och inte ägare eller grupp.

Det funkar ju bra men är det på något sätt livsfarligt och hur ändrar man hur rättigheterna ställs och ägare och grupper?

on open these_items
repeat with i from 1 to the count of these_items
set this_item to (item i of these_items)
set item_path to quoted form of (POSIX path of this_item)
set the item_info to info for this_item
if folder of the item_info is true then
do shell script "chmod -R ugo+rw " & item_path
else if (alias of the item_info is false) then
do shell script "chmod ugo+rw " & item_path
end if
end repeat
end open

  • Medlem
  • Stockholm
  • 2004-11-03 08:32

Du kan låsa rättigheterna i en mapp genom att sätta en "sticky bit" som gör att allt som läggs i mappen kommer att få samma rättigheter som mappen har:

Säg att systemet(rwx) äger en mapp och du och din bror är med i samma grupp (rwx) medan alla andra enbart ska kunna läsa och köra proggen (rx) så borde det bli något i stil med

chmod -R 2775 "Er mapp"

"2" an före rättigheterna i chmod sätter "sticky bit"-en.

Jag surade som f-n över rättighetsstrul innan jag kom på den....

  • Medlem
  • Stockholm
  • 2004-11-07 23:42

Har ändrat samt bättrat på det scriptet. Fungerar bra nu. Tack för all hjälp.

  • Medlem
  • Stockholm
  • 2004-11-08 14:48

Självklart! Inte så mycket skillnad iofs. Fungerar bra. Ger "öppet hus" för allt och alla. Det går ju lätt att ändra chmod numret.

on open these_items
repeat with i from 1 to the count of these_items
set this_item to (item i of these_items)
set item_path to quoted form of (POSIX path of this_item)
set the item_info to info for this_item
if folder of the item_info is true then
do shell script "chmod -R 777 " & item_path
else if (alias of the item_info is false) then
do shell script "chmod 777 " & item_path
end if
end repeat
end open

  • Medlem
  • Stockholm
  • 2004-12-08 22:38

Jag igen. Fungerade bra fram tills för några dagar sedan. Lade scriptet på servern i samma mapp som de mappar som ska ändras. Drar jag nu en mapp till scriptet så öppnas det och körs men det biter inte. Inga rättigheter ändras.
Funkar inte heller om man har scriptet på sin dator och sedan dra mappen man ska ändra ovanpå scriptet på skrivbordet. Funkar endast omman kopierar ned mappen lokalt och köp programmet därifrån helt plödsligt. Någon som vet varför?

Det beror väl på att användardatabasen på servern inte är densamma som på din dator varifrån du kör skriptet? Av samma anledning funkar det inte att ändra rättigheter på mappar/filer i en monterad nätverksvolym. Det måste ändras lokalt på servern eller via Workgroup Manager.
Fast chmod 777 borde väl funka ändå, eller?

  • Medlem
  • Stockholm
  • 2004-12-09 09:48
Ursprungligen av acke:

Jag igen. Fungerade bra fram tills för några dagar sedan. Lade scriptet på servern i samma mapp som de mappar som ska ändras. Drar jag nu en mapp till scriptet så öppnas det och körs men det biter inte. Inga rättigheter ändras.
Funkar inte heller om man har scriptet på sin dator och sedan dra mappen man ska ändra ovanpå scriptet på skrivbordet. Funkar endast omman kopierar ned mappen lokalt och köp programmet därifrån helt plödsligt. Någon som vet varför?

EDIT2: Ok, som jag sa tidigare men blev förvirrad av - läs swedes svar, det borde kunna lösa ditt problem utan script.

Först sätter du gruppen på mappen till en grupp som alla dina användare är med i. Sen kör du chmod 2775 mappnamn. Tvåan sätter set-group-id-bit på mappen (inte "sticky bit" som används för annat och sätts med chmod 1xxx) och gör att allt som läggs i mappen automagiskt ärver gruppen.

/Kalle

Senast redigerat 2004-12-09 10:04
1
Bevaka tråden