Skip to Content

Linux

xrayspx's picture

Dear Internet Advertisers

[music | Nick Cave and the Bad Seeds - All Tomorrows Parties]

This week both Ars Technica and Fark, both of whom get decent traffic, have basically begged users not to use ad blockers. I think people would be less likely to use ad block if your ads didn't kill our browsers, below are some examples.

On Fark, the square ad at the top of the right-hand navigation bar demolishes WebKit based browsers on Linux. Doesn't matter what the ad actually is, but if I hit Fark in Arora or ReKonq without Flash turned off, they die as soon as they hit that ad, every single time, write it down. Fix that shit.

Sprint ads. Sprint ads have been consistently crippling Mozilla based browsers on Linux as well, both Firefox and Flock. "Occasionally", using autoscroll (mid click scrolling), the browser will just crawl and become unresponsive. It will continue to slowly scroll until the ad is off the page, then become responsive again. I can't tell if this happens on Mac, since I mainly use Safari.


Holy fuck, it's the Perfect Storm(or perfect Curve I guess)! Luckily this session is in Chrome on a Mac or else my machine might have just shot itself in the face

I realize these are both Flash issues, and that the state of Flash on Linux and Mac is pretty abysmal, I use both platforms. So…. you want people to stop blocking your ads? Show ads that don't break my goddamn computer, is it a deal? Maybe stop dealing Flash ads? JS only? Maybe?

Now, I honestly don't use ad blockers. In the case of Arora or ReKonq, the only way is to turn off Flash, which is annoying, and in a general sense I don't mind getting ads. I do hate ads that break my browser, or which open popups, resize my browser, redirect me, etc. Stop that shit Fark, stop trying to open pop-ups, and fix the ad in the right-hand nav on the homepage and we'll be buds.

One more time: Don't complain that no one wants to view your ads when your ads are harmful.

Find LDAP groups with obsolete users

OpenLDAP has a nice "feature" that allows for group members to continue to exist, even if the user does not exist any more. Really handy! Problem is, if you, say, have a user in the "Domain Admins" group, and you delete that account, and then some normal user comes along with the same username, they will end up with unexpected elevated privileges.

So I created a script that I run weekly that finds group members that no longer exist, and sends me a report. It also tells me which groups are empty.

This relies on my toolbox... Find it here.

Using some of our new tools

Ok... Now that we have our toolbox Let's do something with it. Today we'll look at a simple solution to an everyday problem. Resetting a password.

Part 4: Wrapping up the foundations

Just to wrap up, and in case you are lazy like me, give you a whole file worth of subroutines. It's my toolbox and I'm giving it to you. I put this in a secure location and just call it from my other scripts. This makes the code much shorter in my other scripts, nearly auto-commenting, and avoids bugs because if it works in one, it will work in others.

NOTE: This uses the foundations in parts 1, 2 and 3. You can find them here: Part 1 Part 2 Part3

Part 3: The SubRoutines

Now for the tools. There's a lot here, but in further articles you will see how this can be useful. I'll go through each tool with what it does, how to call it, and then the code itself.

NOTE: This uses the foundations in parts 1 and 2. You can find them here: Part 1 Part 2

Part 2: Some Standard declarations and personalizing for your site

More foundational work. This stuff will configure for your site, and the routines that follow will regularly rely on them.

Part 1: Foundations

In our journey of code, it is always useful to have a foundation. For starters you will need to make sure that you have the following PERL packages installed, as we will be using them regularly.

Net::LDAP
Authen::SASL
IO::Socket::SSL
Digest::SHA
Mail::Sendmail
Crypt::SmbHash
CGI

I have found that some of these are much easier to install via packages (yum or apt-get), specifically Authen::SASL, as it requires Net::SSLeay, which requires it be compiled with the same compiler as your original perl installation. Most of the others can be installed from cpan.

Opening Message

Hello and Welcome!

Over the course of my time as an Admin I've done a lot of Google searches and writeen a lot of code that has been very helpful to me in my work. I will be posting things here that hopefully will help you in your quest to master some of these technologies (Or simply stand on the shoulders of midgets).

I by no means consider myself a Perl or LDAP expert. It has been a "Learn as you go" ordeal. No formal training, just get things done on an as-needed basis.

I assume that you have a basic knowledge of PERL and LDAP.

Enjoy!

-Sean

xrayspx's picture

Backups

I've recently had to think about the mechanics of making idiot-proof backups on Linux and OSX. The specific machine I'm backing up is a Linux host with a 40GB drive. Historically only about 10% of the drive has been used, and the user has an IMAP mailbox, so all the mail is safe already.

The smallest USB drive I could get was an Iomega 250GB for like $60. Since the drive is 6x bigger than the drive that's being backed up, I've decided to make a multi-snapshot backup set using rsync. I have rsync propagating deletions, so this is in the event the user realizes that they've deleted something they needed, but it was like 2 weeks ago, they can go rooting for it.

The basic idea is to test that the drive is mounted correctly. Then to rotate all the snapshot directories one step, then mv the oldest snapshot into position to receive the new sync update. This way I'm never copying anything, and I'm never resync'ing the entire directory structure.

Then I pop a dialog with the results of rsync, or a dialog saying the drive isn't attached correctly.

Here's the script I'm using:

Read More

Syndicate content