When I first read the tip about sharing different folders, I thought surely someone will come out with something, and I was right, SharePoints came out, but it was lacking some functions I wanted, like restarting AppleShare.
So I started working on a tool in perl to take care of it for me until a newer version of SharePoints came out that would address these issues. While sharepoints is a great tool with a nice GUI, its new version still lacked this functionality, so I decided to post this one in case anyone wanted to use it.
Read the rest of this article if you'd like to see the script and how to use it...
Here is what you get when you don't give it any options:
Paste the following into a text file, name it, then open a terminal and "chmod filename 755" so that it's executable.
So I started working on a tool in perl to take care of it for me until a newer version of SharePoints came out that would address these issues. While sharepoints is a great tool with a nice GUI, its new version still lacked this functionality, so I decided to post this one in case anyone wanted to use it.
Read the rest of this article if you'd like to see the script and how to use it...
Here is what you get when you don't give it any options:
[user @machine]% ./appleshareAnd here is an example of sharing a folder that only the owner has access to:
Usage: appleshare {add|delete|list} {share name} {path} {owner|everyone} {full|readonly}
[user @machine]% ./appleshare add pictures /Users/user/Pictures ownerAnd here is an example of sharing a folder that anyone has readonly access to:
[user @machine]% ./appleshare add pictures /Users/user/Pictures everyone readonlyOwner is assumed to have full access unless readonly is specified. Here is an example of how to delete a shared folder:
[user @machine]% ./appleshare delete picturesHere is an example of how to list the currently shared folders:
[user @machine]% ./appleshare listCreating the script
Paste the following into a text file, name it, then open a terminal and "chmod filename 755" so that it's executable.
#!/usr/bin/perl
$usage= "Usage: appleshare {add|delete|list} {share name} {path} {owner|everyone} {full|readonly}\n\n";
if (! $ARGV[0]) {die "$usage";}
if ($ARGV[3] eq "" || $ARGV[3] eq "owner") {
$mode="700";
} elsif ($ARGV[3] eq "everyone") {
$mode="755";
if ($ARGV[4] eq "full") {
$mode=$mode+22;
}
} else {
die "$usage";
}
if ($ARGV[0] eq "add") {
&add;
} elsif ($ARGV[0] eq "delete") {
&delete;
} elsif ($ARGV[0] eq "list") {
&list;
} else {
print "Invalad arguments. $usage";
}
exit 0;
sub add {
system ("/usr/bin/sudo /usr/bin/nicl / -create /config/SharePoints/$ARGV[1]");
system ("/usr/bin/sudo /usr/bin/nicl / -append /config/SharePoints/$ARGV[1] directory_path $ARGV[2]");
system ("/usr/bin/sudo kill -HUP `cat /var/run/lookupd.pid`");
system ("/usr/bin/sudo /bin/chmod $mode $ARGV[2]");
print "Added AppleShare mount of $ARGV[1]\n";
&restart_ATS;
}
sub delete {
system ("/usr/bin/sudo /usr/bin/nicl / -delete /config/SharePoints/$ARGV[1]");
system ("/usr/bin/sudo kill -HUP `cat /var/run/lookupd.pid`");
print "Deleted AppleShare mount of $ARGV[1]\n";
print "If you shared this with full access for everyone, you may want to fix\nyour permissions on the directory involved.\n";
&restart_ATS;
}
sub list {
system ("/usr/bin/sudo /usr/bin/nicl / -list /config/SharePoints/");
}
sub restart_ATS {
@processes = `/usr/bin/sudo ps -xco pid,command`;
foreach $process (@processes) {
if ($process =~ "AppleFileServer") {
$process =~ s/AppleFileServer//g;
chomp $process;
system ("/usr/bin/sudo kill -9 $process");
}
}
print "Restarting AppleTalk service...\n";
system ("/usr/bin/sudo /usr/sbin/AppleFileServer &");
}
•
[9,332 views]

