Category Archives: Mac OS X

Auto Added by WPeMatico

Backup your Mac Time machine with Ubuntu (networked) 2024

Hardware used in this setup:

  • M1 Mac
  • Ubuntu Server 22.04

Server Setup: This install is VERY EASY!

  1. Install ‘netatalk’ on the ubuntu machine.
    • sudo apt-get -y install netatalk
  2. Edit afp.conf
    • sudo nano /etc/netatalk/afp.conf
      • Add your location that you would like to store the backup on the Ubuntu server. (Ensuring it exists)
  3. Restart the netatalk service (Ubuntu Server):
    • sudo service netatalk restart

That was the server side, now onto the mac setup.

  1. In a terminal on the mac, run the following command:
    • defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
    • Then Reboot
  2. Mount share by selecting “Connect to server” from the Finder app’s “Go” menu (or press +K) and enter the machine name or IP address of your Ubuntu machine
    • afp://192.168.1.100
      • This will use the ubuntu users credentials to authenticate
  3. Go to Time Machine preferences and select “Change location”, select to encrypt backup, and begin the backup process.
  4. The first backup takes a little longer, but after a few seconds you should be good to go!

Mac Devs – Pro Tip: Add Real Colors to bash.

If you have a new mac, and you are used to linux like me you probably are annoyed that all the colors in the shell are the same.

Of course, mac does have colors in the shell… However, they do not reflect if what you are looking at.

For Example, can you tell me from looking at the following which if a file, directory, and which is executable?

Where as once the script given below is ran it will look like the following:

Clearly you can see the file is white, the script is red because its executable, and the directories are a light blue. This can all be customized of course, but I find the defaults pretty good.

To Install these changes is quite easy, and I even made a script that can be ran without downloading. Simply run the following to make the changes and restart your terminal.

bash < <(curl -sSl https://gist.githubusercontent.com/MattCurryCom/6348692ffd9903d249907fb5212056d5/raw/080810de0caa9e0bdf70741104ab6bec1b2a8929/mac-linux-colors.sh)

Please don’t take my word for what the script does, I highly recommend that you look at the script before if you don’t trust it. Just use the URL in the curl for reference. Its very simple.

Linux Gaming just got way better!

Since the release of ProtonDB, there have been over 2500 games added to Linux!

What is Proton?

Proton is a new tool released by Valve Software that has been integrated with Steam Play to make playing Windows games on Linux as simple as hitting the Play button within Steam. Underneath the hood, Proton comprises other popular tools like Wine and DXVK among others that a gamer would otherwise have to install and maintain themselves. This greatly eases the burden for users to switch to Linux without having to learn the underlying systems or losing access to a large part of their library of games. Proton is still in its infancy so support is inconsistent, but regularly improving.

ProtonDB is used to collaborate on performance on different hardware/software configurations. Allowing the community to work together to get the games working.

Setting Up Proton in STEAM – Tested Ubuntu 18.10

NAOMI gets an Upgrade… A head…

NAOMI-HEAD

 

Hardware Shown:

  • High Resolution Raspberry PI Camera
    • Eventually I would like to try stereoscopic vision
  • PIR Motion Sensor
    • Used to ‘Wake’ NAOMI to motion in the room.
  • UltraSonic Range Sensor
    • She will track any motion
    • Once an Object/Person/Face is being tracked the Range Sensor will take measurement readings.
  • PWM HAT
    • Used to remove ‘Jitter’, and allow for other Servos
    • May try an “Arm”
  • Server Mount Allowing Pan/Tilt

Be Careful with LetsEncrypt!

 

I must say, like a lot of people I love the idea of a free SSL Certificate.  So I thought this would be great for my site.  So I downloaded the LetsEncrypt package on to an Ubuntu 15.10 box.  The server was running Apache2, and was pretty much stock.  When I applied the cert to the site, it was super easy.  I was very impressed with the ‘–apache’ option.  I then updated my URLs in WordPress to HTTPS.  That’s it I was up and running in a few min.  I was pretty happy at this point.

Then, I realized it broke all of the other services I had on the machine that were public facing.  I had several.  Even ones with their own certs were breaking.  So I decided to remove it…. After removing it from Apache completely I noticed an issue.  All of my users that had been to the site; were getting redirected still.  Somehow it is keeping the redirct with the cert/data that is installed when the cert is installed from visiting the site.

Long story short, I had many people that thought my site was down.  I even moved servers; and it still happened. I tried clearing browser cache, DNS Cache on my MAC, from another IP. Finally after a reinstall (probably not needed, but quicker); I was able to actually load my site without the redirect.  I am sure there is something here I am not seeing; but to be honest I didn’t feel like spending all my time dealing with browser settings.

If anyone would like to let me know how they get around this I would like to know.

I hope this helps those who are thinking of trying out LetsEncrypt.  I am not saying its a bad product; or idea.  I love the install and the idea of it.  However, the practical implementation is not there yet.  For those reading this keep in mind that it is still in Beta as of this article.  So this might eventually go away.

P.S. – To those on the LetsEncrypt project, I appreciate all the work; and I hope you take this criticism positively. A good uninstall path is needed before I think this will go mainstream on monolithic boxes.  Maybe its ok with a 12 factor applications.

Sincerely,

Matthew Curry

Quick Tip of the Day.

Not that I have them daily, but I might if I get a good response.

Have you ever tried logging into an SSH server, and get a weird error:

/.ssh/config: line 22: Bad configuration option: 342200202

This is a very simple issue but it can be a huge PITA if you can’t fix it quickly.  This is especially true for those of us that have to use an enormous amount of keys in our daily lives.  I know, I have a fairly simple config for SSH, but I still ran into this issue when I pasted a block of text in  ~/.ssh/config.  I opened the file with VI, and NANO. I was only able to get it to work when I removed the spaces before each line it complained about.  I then just put them back as normal, and saved.

It turns out, that copying from another place can have the spaces not interpreted properly. They are tabbed indentations actually.  Once manually removed they are replaced by a normal “space” in the code and it should work properly.  I hope this saves some time for some people.

 

Thanks,
Matthew D. Curry

 

Time Machine Backup with Ubuntu 15.x and OSX 10.7+

In the Older versions of this how-to, you will see people use the method shown just below.  Obviously that no longer works.  I will walk you through setting up TimeMachine via AFP over your LAN.  This is using an Ubuntu 15.04 machine; but since all the packages are common and in the base repos; I don’t see there being a problem getting it to work on any distro.

 OLD METHOD:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
NOTE: Any OSX after 10.6 Lion, will have to use the method demonstrated here.

 

Step 1: Install Netatalk

Install the following packages:

sudo apt-get install netatalk libc6-dev avahi-daemon libnss-mdns

Step 2: Configure /etc/nsswitch.conf

Once those packages are installed, we have to adjust 4 configuration files:

sudo nano /etc/nsswitch.conf

Locate the following:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

Add mdns  as below:

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns

Step 3: /etc/avahi/services/afpd.service

sudo nano /etc/avahi/services/afpd.service

Paste the following:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">%h</name>
    <service>
        <type>_afpovertcp._tcp</type>
        <port>548</port>
    </service>
    <service>
        <type>_device-info._tcp</type>
        <port>0</port>
        <txt-record>model=TimeCapsule</txt-record>
    </service>
</service-group>

Step 4: /etc/netatalk/AppleVolumes.default

Now we setup the share:

sudo nano /etc/netatalk/AppleVolumes.default

At the bottom the section that reads:

# The line below sets some DEFAULT, starting with Netatalk 2.1.
:DEFAULT: options:upriv,usedots

# By default all users have access to their home directories.
~/                      "Home Directory"

# End of File

Change the path “~/”  to your share directory.

IMPORTANT:  Don’t forget to add ‘tm’ to options:upriv,usedots
As seen below:

# The line below sets some DEFAULT, starting with Netatalk 2.1.
:DEFAULT: cnidscheme:dbd options:upriv,usedots,tm

# By default all users have access to their home directories.
/path/to/share                       "Time Capsule"

# End of File

Step 5: /etc/default/netatalk

Now, we need to adjust netatalk settings.

sudo nano /etc/default/netatalk

Locate the following section:

#### Set which legacy daemons to run.
#### If you need AppleTalk, run atalkd.
#### papd, timelord and a2boot are dependent upon atalkd.
ATALKD_RUN=no
PAPD_RUN=no
TIMELORD_RUN=no
A2BOOT_RUN=no

Update it to reflect the following:

#### Set which legacy daemons to run.
#### If you need AppleTalk, run atalkd.
#### papd, timelord and a2boot are dependent upon atalkd.
ATALKD_RUN=no
PAPD_RUN=no
CNID_METAD_RUN=yes
AFPD_RUN=yes
TIMELORD_RUN=no
A2BOOT_RUN=no

Once all is completed, and all the services have been restarted on the Ubuntu server.  The drive should show up under “Select Disk” under “Time Machine Preferences”.  If you have an old one, you may have to remove it.  Once selected you can use it as if it were physically plugged in.

 

*TIP – Use a wired connection only, and a gigE network will help immensely.  I do not recommend WiFi .

TCPDUMP with Date for Wireshark

Just another handy snippet:

It will date the output, and also put it in a handy pcap for Wireshark.

tcpdump -i eth1 -s0 -v -w /tmp/capture_`date +%d_%m_%Y__%H_%I_%S`.pcap

*Note: Should work on all Linux distros (make sure to have the right network interface selected, Ex: eth1); it might have to be slightly modified for Mac. Windows can go DIAF.

 

Remove Spaces (or any character) from File Names in Linux

This is actually a pretty common thing to run into in a Linux file system.  It is especially prevalent in the files that are moved from another operating system (Usually Windows).  So if you get files that need to have a space or a character removed, the below snipped is a very simple, and handy way to fix this issue.

└─(11:26:40)-(~/Example)->ls
file 1.txt
file – 2.txt

So, from here we want to rename the file “file 1.txt” to “file_1.txt”.  This would be done as follows:

rename ‘s/ /_/g’ file 1.txt

This will remove any spaces in the file-name listed.  If you want to do all the files in a directory:

rename ‘s/ /_/g’ *

Here is an example output if we run it on all the files in the directory (as seen above):

└─(11:33:59)-(~/Example)->ls
file_1.txt
file_-_2.txt

 

Note:  If you are new to Linux; and you haven’t heard of the “sed” command, that is the syntax used in the command.  If you get comfortable with this, then you can easily learn sed, which is a great tool to have on the command line.

If you use Microsoft, you get what you deserve…

…only if you read this and keep using it…

🙂

     If you use Microsoft, it doesn’t make you dumb. We all know its the most popular, and shoved down your throat by the $2,000,000,000 they spend a year trying to sway your opinion.  Not to mention the bullying tactics I have seen first hand in the B2B space.

Keep in mind I am not talking solely about privacy as seen in the picture below.  However, that alone should be enough for any business to stop using them immediately.  Most companies are afraid of change, because it usually costs money. Although, if you truly calculate the costs of running Microsoft as an OS you will see that it is much higher.  Not only is it fiscally irresponsible (not to mention ethically/morally), but if you are a software company; or one that relies on it heavily.  You will find that the completely horrid security of windows makes it a great target.  Combine that with uneducated users and you get the hackers favorite playground.

You may have noticed that I haven’t mentioned performance comparisons.  Thats because windows doesn’t even come close to the stability and speed of Linux/BSD.  Here is an experiment for you Windows users.  Try turning it on, and not doing anything and let it run for a month straight.  Then make note of when it crashes (because it will).  Then do the same with a vanilla Linux install. I turned my last laptop off after 376 days of uptime.

Microsoft