Live data from Hacker News

🥺: the best sudo replacement

xeiaso.net

1–10 of 559 posts

Re: 🥺: the best sudo replacement

#9
post #6

Wait? it doesn't make any sense. So any userspace program can call `setuid(0)` and `execv()`? Why is there sudo in the first place? I am not getting it.

The program needs to have the setuid bits set on its inode (chmod u+s), and be owned by root.

https://en.wikipedia.org/wiki/Setuid

Sudo exists as an elaborate ACL scheme implemented in user-space which takes advantage of the setuid+root permission scheme implemented in the Unix kernel to allow granularly granting root access to non-root users.

But any program can be setuid and/or setgid to any user/group and it will then run as that effective user/group by any user with permission to execute that program.

There are handful of programs that are setuid root because they need to do things like open raw sockets that non-root users can't do, ping being the canonical example. Finding buffer overflows in these programs has been a source of privilege escalation security bugs.

Post reply on HN