正确的方式来切换sudoers中的用户

/ etc / sudoers中这两个选项有什么区别:

user1 mymachine =(user2)ALL

user1 mymachine = / bin / su – user2

对于选项1,我会做以下user1:

sudo -u user2 -i

对于选项2,我将以user1的身份执行以下操作(此选项还要求“ Defaults!authenticate ”,以便它不要求input密码):

sudo su – user2

两种方法有没有优点/缺点? 最终结果似乎是一样的。

这两个命令会给你相同的结果,但它们是不同的:

“sudo -u user2 -i”的情况下,您将获得该“user2”的完整初始环境,如另一个用户的初始login状态。

“sudo su – user2”的情况下,您将获得保存的user1的环境variables。 但恕我直言,使用sudo su对我来说是一样糟糕的“grep | awk”