
1 AoEiuV020JP 2023-12-27 11:13:35 +08:00 不太理解,确实如你所说 sudo 运行的程序当前用户就是 root ,这有什么问题吗? 考虑 xy problem , 非要判断的话可以通过 shell 进程或者 x 进程 UID 判断当前有那些用户是登录状态, |
2 liumory 2023-12-27 12:03:14 +08:00 sudo -E 可以保留当前用户的环境变量。那么是否可以通过环境变量记录当前的用户名,然后再通过 sudo -E 传递给 root 。 export USER_INFO=whoami;sudo -E your_program |
3 AoEiuV020JP 2023-12-27 12:13:16 +08:00 |
4 ppllss OP @AoEiuV020JP @liumory 就是想通过 sudo 这样的命令 sudo ./myService 但是程序获取到的 user.Current() 是 root 想获取到当前用户的信息,可行吗? |
5 AoEiuV020JP 2023-12-27 15:19:29 +08:00 @ppllss #4 按 3 楼的办法说不定可以,但习惯上你的程序如果必须 root 权限运行又必须对特定用户有影响,那就应该直接把用户当成参数传进去,不要想歪门邪道去获取非执行者的身份, 参考 passwd 命令,默认是修改当前用户的密码, sudo passwd 那就是修改 root 用户的密码,而不是修改执行 sudo 前的用户的密码, 要用 roof 权限修改特定用户的密码,那就是 sudo passwd <username>, 把要操作的对象当作参数传入,这就是最普通合适的做法, |
6 AoEiuV020JP 2023-12-27 15:20:36 +08:00 @AoEiuV020JP #5 尖括号被吞了, 要用 roof 权限修改特定用户的密码,那就是 sudo passwd 《 username 》, 把要操作的对象当作参数传入,这就是最普通合适的做法, |
7 AoEiuV020JP 2023-12-27 15:23:55 +08:00 @AoEiuV020JP #6 擦,居然是 v2ex-script 的 bug ,我还以为 v 站吞尖括号了, |
8 AoEiuV020JP 2023-12-27 15:37:48 +08:00 |
9 ppllss OP @AoEiuV020JP 谢谢了 |
10 julyclyde 2024-01-01 21:07:59 +08:00 不是应该用 SUDO_USER 吗? |