Infusion Technology Solutions Blog

Technology related solutions, tips, tricks, and other interesting topics

How to Enable Open Directory Debugging

May1

By default the MacOS X Open Directory debugging log file is disabled. You can temporarily reenable it by running the following command in the Terminal app:

sudo killall -USR1 DirectoryService

After you reboot, debugging will be disabled again. If you want to enable Open Directory debugging so that it stays enabled across reboots, run the following command in the Terminal app:

touch /Library/Preferences/DirectoryService/.DSLogAtStart

To disable debugging again just delete that file:

sudo rm /Library/Preferences/DirectoryService/.DSLogAtStart

The debugging log file is located at:

/Library/Logs/DirectoryService/DirectoryService.debug.log

posted under Apple | No Comments »

Users Are Unable to Connect to the FTP Service on Mac OS X Server

April1

Symptom: Users are unable to connect to the FTP service on MaxOS X Server 10.4. Both local user accounts and Open Directory users are unable to connect to the server via FTP. However they are able to connect to the server via Apple File Sharing (AFP). The system.log file has FTP server entries which contain “… ACCESS DENIED (not in any class) …” and “… FTP LOGIN REFUSED (access denied) … ”

Solution: The FTP server configuration file has become corrupt. Perform the follow steps to reset the FTP server configurations back to default:

sudo serveradmin stop ftp
cd /Library/FTPServer/Configuration
sudo mv ftpaccess ~/Desktop
sudo cp ftpaccess.default ftpaccess
sudo serveradmin start ftp

This replaces the ftpaccess file with a fresh clean one without any corruptions. Since this procedure resets all the FTP service settings back to default, you’ll need to reconfigure the FTP service settings to what you had before.

You can read more about this problem at the following Apple Discussion Forums thread: Link

posted under Apple | No Comments »

Leopard ByHost Plist Preference File Naming Convention Change

March18

In Mac OS X 10.4 Tiger some system preferences were unique to a particular computer and so were named using a naming convention that included the MAC address of the first network device in the computer (en0). In Mac OS X 10.5 Leopard this naming convention was changed to use a different unique identifier other than the first network adapter’s MAC address. Leopard now uses something called the UUID for this unique identifier. You can determine a UUID of a Leopard computer by running the terminal command:

ioreg -rd1 -c IOPlatformExpertDevice | grep -E '(UUID)'

Terminal

posted under Apple | No Comments »

How To Determine Dynamic Library Dependencies For An Executable or Library File in OS X

March15

This script uses otool -L to determine and print all dynamic library dependencies of a given executable or library file recursively and you use it like this:

$ checklibs.pl /bin/ls
   /bin/ls:
            /usr/lib/libgcc_s.1.dylib
            /usr/lib/libncurses.5.4.dylib
            /usr/lib/libSystem.B.dylib
   /usr/lib/libgcc_s.1.dylib:
            /usr/lib/libSystem.B.dylib
   /usr/lib/libncurses.5.4.dylib:
            /usr/lib/libgcc_s.1.dylib
            /usr/lib/libSystem.B.dylib
   /usr/lib/libSystem.B.dylib:
            /usr/lib/system/libmathCommon.A.dylib

Here’s the script which was written by Marc Liyanage:

#!/usr/bin/perl
#
# Written by Marc Liyanage <http://www.entropy.ch>
# use strict;
use warnings; 

my ($file) = @ARGV;
die $! unless (-f $file); 

my $libs = {};
check_libs(file => $file, libs => $libs); 

print
	map {("\n$_:\n", map {"\t$_\n"} sort {lc($a) cmp lc($b)} @{$libs->{$_}})}
	sort {lc($a) cmp lc($b)}
	grep {@{$libs->{$_}}}
	keys(%$libs);
sub check_libs {
	my (%args) = @_;
	my $libs = $args{libs};
	my @file_libs = grep {$_ ne $args{file}} grep {$_} map {/^\s+(\S+)/} qx(otool -L $args{file});
	$libs->{$args{file}} = \@file_libs;
	foreach my $lib (grep {!$libs->{$_}} @file_libs) {
		unless (-f $lib) {
			$libs->{$lib} = ['(missing)'];
			next;
		}
		check_libs(%args, file => $lib);
	}
}

In case my blog software mangles the code above, you can download the script in a plain text file by clicking here: checklibs.zip

Code

posted under Apple | No Comments »
« Older Entries