this post was submitted on 21 Mar 2025
18 points (87.5% liked)

Linux

53618 readers
57 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 7 years ago
MODERATORS
 

Is there a way to require a user to wait a certain time instead of asking for a password every time he wants to execute a command as root or access the root / or another user account?

all 26 comments
sorted by: hot top controversial new old
[–] cypherpunks@lemmy.ml 24 points 1 year ago* (last edited 1 year ago) (1 children)

sure. first, configure sudo to be passwordless, or perhaps just to stay unlocked for longer (it's easy to find instructions for how to do that).

then, put this in your ~/.bashrc:

alias sudo='echo -n "are you sure? "; for i in $(seq 5); do echo -n "$((6 - $i)) "; sleep 1; done && echo && /usr/bin/sudo '

Now "sudo" will give you a 5 second countdown (during which you can hit ctrl-c if you change your mind) before running whatever command you ask it to.

[–] Flyswat@lemmy.ml 12 points 1 year ago (2 children)

In terms of security, an alias can be easily overridden by a user who can even choose yo use another shell which will not read .bashrc.

So this solution cannot force/require the user to comply to the delay requirement.

I was thinking maybe with a PAM module the delay can be achieved but I haven't found one that readily does that. Maybe OP needs to implement one :)

[–] alphadont@lemmy.ca 1 points 1 year ago

If an untrusted user is sitting at the console of a sudoer account, armed with its password, all is lost and any security has effectively been defeated already. While I do understand the concern it seems like something of a moot point.

[–] Hawke@lemmy.world 1 points 1 year ago

pam_faildelay almost does it, but it only delays on auth failure. You would want something that delays on success. Might be almost as simple as “if not” on a check on pam_faildelay.

[–] Hawke@lemmy.world 7 points 1 year ago* (last edited 1 year ago)

I can’t find anything that quite fits your requirements.

Putting a NOPASSWD option on your sudo config should cover the removal of the password requirement, but this may be ill-advised; it is probably wiser to increase the timestamp_timeout duration.

The intentional delay is tougher, and for that it looks like you’d need to write a PAM module. pam_faildelay is very close to what you need, you’d just need to make it produce a delay on success as well as failure.

[–] mbirth@lemmy.ml 6 points 1 year ago

What purpose should this fulfil? If you are unsure whether your command is correct, double-check it before hitting the ENTER key.

[–] mark@social.cool110.xyz 4 points 1 year ago

@dontblink You would have to write a PAM module to do that

[–] deadcatbounce@reddthat.com 1 points 1 year ago (1 children)

Yes; the command prefix that you're looking for is

shutdown now ; (followed by your sudo command if you wish)

It will provide the appropriate delay before using the root command via sudo or having logged again as root (sigh)!

[–] m33@theprancingpony.in 1 points 1 year ago (1 children)

@deadcatbounce @dontblink That's the Linux version of "press ALT+F4 to enable cheatmode" 🤣

[–] deadcatbounce@reddthat.com 1 points 1 year ago* (last edited 1 year ago) (1 children)

Please don't desecrate my Linux with (what I assume is) Windows talk.

Bleugh! I need a shower!

[The worst Linux users are ex Windows users; 2004 vintage here]