为了冒充超级用户1我需要像这样运行命令
sudo -u superuser1 -i
我确实尝试sudo -u superuser1
这意味着切换到superuser1并且它完全有意义,但它不起作用
我还阅读了关于sudo手册页-i选项
-i, - login 运行目标用户的密码数据库条目指定的shell 作为登录shell。这意味着登录特定的资源文件等 因为.profile或.login将由shell读取。如果命令是 指定,它通过shell的-c传递给shell执行 选项。如果未指定任何命令,则执行交互式shell。 sudo尝试在运行之前更改为该用户的主目录 贝壳。该命令使用类似于a的环境运行 用户将在登录时收到。命令环境部分在 sudoers(5)手动文档-i选项如何影响环境 在sudoers策略正在使用时运行命令。
我可以看到,它将命令置于交互模式,但它没有解释原因
sudo -u superuser1
不起作用。
任何人都可以解释-i的确切含义,以及为什么没有它不起作用
答案 0 :(得分:1)
这是明确地在您在问题中引用的手册页内容中给出的:
如果未指定命令,则执行交互式shell。
特定于sudo -i
的行为。如果您需要交互式shell,则需要运行sudo -i
或类似sudo -u user1 -- bash -i -l
的内容。
答案 1 :(得分:0)
正如您在手册页中看到的那样,-i选项不仅可以将命令置于交互模式,还可以执行.profile和大概.bashrc的内容。我想,要运行命令,必须指定一个使用“-i”选项时自动加载的环境变量。