开发者

Enter password for a sudo command in a chain of commands

开发者 https://www.devze.com 2023-03-07 17:17 出处:网络
In Linux how can I enter the password for one of the commands in a chain of commands which requires a sudo. One example which I can think of is when after running a long compile job, I want to shutdow

In Linux how can I enter the password for one of the commands in a chain of commands which requires a sudo. One example which I can think of is when after running a long compile job, I want to shutdown the machine.

make ; sudo ini开发者_如何学Ct 0 

I want the shutdown command to run only after make finishes, but would like to enter the password right away, because I won't be there when the first command is done. Also, I don't want to run "make" with super user privileges. So switching to root and running the commands is also out of the question.

Thanks!


sudo sh -c "su -c 'make' $USER && init 0"

Change your uid early and often. That's the Chicago way!


You can run sudo -v to update the sudo timestamp - this means you won't need to enter a password for x minutes (default is 5). You can change the timeout by editing the timestamp_timeout in the sudoers file.

You also might want to change your command to

make && sudo init 0

which will only shut down if make completes successfully.


One possibility is to use Expect to automate the password input.

Here's a simple HOW-TO for expect and passwords: http://www.linux.com/archive/feed/56066

Another possibility is to edit your /etc/sudoers and set your user to be able to use sudo without password. if you check the file it will be explained in the comments there.


Why not pipe the password into sudo?

make; echo 'password' | sudo -S init 0


Change the timeout for sudo to something long enough to cover your usage, then run something like sudo echo to authenticate, then run your other commands. As long as the password timeout hasn't been reached, it should execute without asking again.


You can add that to your sudoers file

username ALL = NOPASSWD: /sbin/init

where username is the username you want to allow.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号