'sudo ifcong en0 down' - does not stay down in OS X?
Use the networksetup command instead. On my system en0 is Wi-Fi, so I use networksetup -setairportpower en0 off. I actually use a little AppleScript that sits in my Dock and toggles the state. See the networksetup manual page for additional information using networksetup.

Save the AppleScript code as an application named Toggle Wi-Fi and then you can run it as needed/wanted. If you run it and Wi-Fi is on, it turns it off, and if it's off, it turns it on.

on run
    set interface to "en0"
    set status to do shell script "ifconfig " &amp; interface &amp; " | awk '/status:/{print $2}'"

    if status is "inactive" then
        do shell script "networksetup -setairportpower " &amp; interface &amp; "  on"
        display dialog "The Wi-Fi Network Adapter is turned: ON" with title "Wi-Fi Network Adapter Status" buttons {"OK"} default button 1 giving up after 3
    else
        do shell script "networksetup -setairportpower " &amp; interface &amp; "  off"
        display dialog "The Wi-Fi Network Adapter is turned: OFF" with title "Wi-Fi Network Adapter Status" buttons {"OK"} default button 1 giving up after 3
    end if
end run




Updated to address Ethernet Adapter usage:

on run
    set interfaceNumber to "en0"
    set interfaceName to "Display Ethernet"
    set status to do shell script "ifconfig " &amp; interfaceNumber &amp; " | awk '/status:/{print $2}'"

    if status is "inactive" then
        do shell script "networksetup -setnetworkserviceenabled " &amp; quoted form of interfaceName &amp; " on with administrator privileges"
        display dialog "Network Adapter " &amp; interfaceNumber &amp; " is turned: ON" with title interfaceName &amp; " Network Adapter Status" buttons {"OK"} default button 1 giving up after 3
    else
        do shell script "networksetup -setnetworkserviceenabled " &amp; quoted form of interfaceName &amp; " off with administrator privileges"
        display dialog "Network Adapter " &amp; interfaceNumber &amp; " is turned: OFF" with title interfaceName &amp; " Network Adapter Status" buttons {"OK"} default button 1 giving up after 3
    end if
end run


Note: In the code above the name of my Ethernet Adapter is "Display Ethernet" and you'll need to change it to whatever the name of your Ethernet Adapter is. You can ascertain it in System Preferences > Network.