0

At work, I have a few legacy servers that I log into as root, and then su down to a user. I continue to run into an issue where after doing so, I am unable to run screen as this user.

I don't want to open screen as root, because then I have to consciously su down the user every new shell, and I often forget.

The question is, is there an easier resolution to this than I'm currently aware of? My current solution is to find my terminal pts number, then set it chmod 666.

I'm looking for something akin to X11's xhost ACL management, if such a thing exists for this situation.

VxJasonxV
  • 911
  • 1
  • 16
  • 29
  • See http://serverfault.com/questions/116775/sudo-as-different-user-and-running-screen for a solution which doesn't involve `chown`'ing terminal devices manually (yuck!). – voretaq7 Mar 29 '10 at 21:54
  • The correct answer to this problem is to not log in as root. – VxJasonxV Nov 01 '20 at 00:20

1 Answers1

1

It's a bad idea to chmod root's TTY to 666 for reasons that are hopefully obvious. Instead, transfer ownership to the target user, and change it back later.

A bash function to make this all simpler is:

screenas() { chown $* ``tty`` && su - $* -c screen && chown root `tty` }

Paste that into your .bashrc file, and, to run screen as a user, screenas username.

Fahad Sadah
  • 1,496
  • 11
  • 21
  • I was figuring a chown would be the best way (perhaps, "The Right Way"?) to go about it, and I could drop that function in, and alias screen to call it, then run screen with the original parameters given. – VxJasonxV Mar 29 '10 at 20:31