Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I would like to have a script , once run this script , it will go to the root shell , I tried the below but it is not work, can advise how can I do it ? thanks
su - root < /tmp/password.txt where password.txt is the plaintext of root password
p.s. this is testing only , please ignore the security issue.
I can't think of a script, but if you're willing to ssh to the localhost, that could work for passwordless access.
Make sure your user has an ssh key generated via:
Code:
ssh-keygen -t rsa
Press enter throughout the prompts, the key here is to not enter a password, rather, have a blank password. Once this is done, copy the ssh id to the root profile so it has the matching key for authentication
Code:
ssh-copy-id root@localhost
Then to escalate without a password - ssh root@localhost.
If that's too much typing, put it in a bash shell with a short name in your bin directory. I just tested and it works
(You'll need the openssh-clients package for commands such as ssh-copy-id, just fyi)
It will ask for password and now you will be logged in as root
If you do not want that it should ask password, copy your .pub file which is in user/.ssh and save in /root/.ssh as authorized_keys
Now next time when you log in to root, it will not ask password.
But if you do not want to use ssh and use sudo for root log in, you can use
Code:
sudo -i
It asks for your (user) password and you shift to root command prompt.
But if you do not want that it should ask password.
open /etc/sudoers
and uncomment following line
Code:
%sudo ALL=NOPASSWD: ALL
Now if you run sudo -i
it does not ask password and you will shift on root command prompt.
1. ssh auth keys (can even be used for a local login)
2. sudo NOPASSWD
3. expect tool - probably worst as it means putting passwd in the file in plaintext
I'll, take your word for it not being a security issue in this particular case ...
Ofcourse You can use script to reach on root command prompt.
Code:
#!/bin/bash
sudo -i
If you have uncommented 'NOPASSWD' line in /etc/sudoers and you run above script, it takes you on root command prompt without asking any password.
************************
Code:
#!/bin/bash
ssh ip-of-your-server
If you have created authorized_keys in /root/.ssh and run above script, it takes you on root command prompt without asking any password.
After being a member here for TEN YEARS, can you not write a very simple script by now? Especially after asking dozens of questions about scripting, and being handed answers (and directed to scripting tutorials), MANY times.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.