I'm small company owner, currently managing about 15 Debian based boxes, providing VoIP and hosted PBX services

Company is growing, I have less time to manage all of that machines

I'd like to hire system administrator, but I have a strong fear of giving root access to the stranger.

Many things could go wrong, he can make mistakes, he can install backdoors. It's not about broken system. Mis-managed VoIP server could lead to significant loss due tool fraud, premium number calls and so on. Loss can go in millions.

I have read posts stating that I must have level of trust, and if someone will make damage, than I can sue him. But that's not the case for SMB. In such situation my company will bankrupt before first court session.

Before down-voting - This problem is for sure not new or unique, but I haven't found on serverfalut information that is recent, can be applied to Debian servers and relies on software with licence costs that my small business can afford. So currently I see no duplicate thread.

No-root access is probably not going to be productive, I can't imagine resolving any serious system problems without root. Maybe I'm wrong?

What strategies can be used in this situation? Is there any software that could help?

  • 1
    This depends on the tasks you want 'the stranger' to do. You can probably configure the system in such a way that the stranger can only do the tasks that you specify. For instance you can limit or set the sudo command for a sub-set of tasks
    – anneb
    Oct 9, 2017 at 16:16
  • Why would a stranger want to ruin your company? It is more likely that the stranger or you yourself make mistakes that could cost 'millions'. Prepare backups, set limits.
    – anneb
    Oct 9, 2017 at 16:21
  • Selinux or apparmor can restrict access to a lot of things, even to the root user, but you'd need to configure them properly...
    – Zip
    Oct 9, 2017 at 20:06
  • The liability of the company is not entirely an IT problem. With some legal advice you set the expectations in an employment agreement, and not be entirely ruined personally should the worst happen. And then take out insurance against those risks if appropriate. And so on. Oct 10, 2017 at 2:28

1 Answer 1


If you can't trust your employees your company will never grow.

To answer your question more directly; you can give a user access to elevated privileges without giving them the password to the root user account. Nobody should use the root user account. Not even you. What you are looking for is called "sudo". I'm sure you've seen it before.


Step 1. Make an admin account for yourself that has root privileges by giving it full sudo powers. Then generate a new password for the root account using a password manager. Now nobody on Earth knows that password. Only pull it out of the password manager in an emergency. Begin using your new admin account today.

(Now all actions taken with your account are traceable to you. Never share logins because then you can't tell who did what.)

Step 2. Make another admin account for testing. Use this account to prove your ability to grant and deny access to various things. You can have finite control over what sudo functions they can perform using the sudoers file and ACLs. This can be as complicated or as simple as you want.

Step 3. Envision job roles. Design your system so you can grant access to all the functions of each job role. Then make test accounts for each of these roles. Log in to them and prove they can perform their duties. Prove also that they can't do things you don't want them to.

Read up on sudo and the sudoers file: https://wiki.debian.org/sudo

Once you grok the user scheme, consider using a system like puppet to automatically configure your systems. Puppet is complicated. If you hire someone that knows how to use puppet that person will likely understand Linux administration better than you do. Trust that person. One puppet master can automatically keep the configurations of all of your systems in sync. Pay this person well and they might be the only employee you need for a long time.


NOTE: Consider hiring a cyber security professional who specializes in Linux. It sounds like you need some help securing your systems.

  • It's not about I'm paranoid, I know that I must trust, but I'd also like to have some control. You know, "trust but verify". Thanks for advice with sudo, will check it. But I'm not sure can I predict what set of commands will be useful in case of emergency. Any suggestions regarding enabling logging of every ssh session (both input and commands output)? Logs should go to some append-only storage
    – Matthias
    Oct 10, 2017 at 10:00
  • Sure, you need a log server. Set up something like Nagios and configure it to collect all of your logs. This protects you from log modification and loss of data. nagios.com/downloads/nagios-log-server
    – HackSlash
    Oct 10, 2017 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.