sudo -i:为什么这会给root shell?

时间:2017-03-23 13:22:03

标签: linux shell sudo

运行var geoAddress; $(document).ready(function ($) { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { geoAddress = "http://api.openweathermap.org/data/2.5/weather?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude + "&units=metric&appid=6776250c9f90718881dbecfc4c7c5319"; }); } $.ajax({ url: geoAddress, success: function (parsed_json) { var location = parsed_json.name; var country = parsed_json.sys.country; var temp_c = Math.round(parsed_json.main.temp); var description = parsed_json.weather[0].description; var icon = parsed_json.weather[0].icon; // Add to Dom $('.weather-place').html(icon + "<p>" + location + ", " + country + "</p><p>" + temp_c + "°C</p>" + "</p><p>" + description).fadeIn(400); } }); }); 我最终在Linux机器上安装了root shell。

但是阅读sudo -i选项,它说:

-i

我不清楚。

为什么 -i, --login Run the shell specified by the target user's password database entry as a login shell. This means that login-specific resource files such as .profile or .login will be read by the shell. If a command is specified, it is passed to the shell for execution via the shell's -c option. If no command is speci‐ fied, an interactive shell is executed. sudo attempts to change to that user's home directory before running the shell. The command is run with an environment similar to the one a user would receive at log in. The Command Environment section in the sudoers(5) manual documents how the -i option affects the environment in which a command is run when the sudoers policy is in use. 根?

这与target user有什么不同?

1 个答案:

答案 0 :(得分:0)

因为'root'是默认用户。 重点来自我。

  

-u user, - user = user

     

以默认目标用户以外的用户身份运行命令(通常为root )。用户可以是用户名或以“#”字符为前缀的数字用户ID(UID)(例如,对于UID 0为#0)。将命令作为UID运行时,许多shell要求使用反斜杠('\')转义'#'。某些安全策略可能会将UID限制为密码数据库中列出的UID。只要未设置targetpw选项,sudoers策略就允许不在密码数据库中的UID。其他安全策略可能不支持此功能。

sudo su有效地执行用户指定的su命令(默认情况下为root)。

  

su命令用于在登录会话期间成为另一个用户。在没有用户名的情况下调用,su默认为成为超级用户。

当您将su作为'root'运行时(由于使用sudo),您不会被要求用密码证明您的身份 - 许多系统不允许'root '使用密码登录,在/etc/shadow的字段2中放置!

  

“!” - 帐户被密码锁定,用户将无法通过密码验证登录,但仍可允许其他方法(例如ssh密钥)

此外,即使root 具有密码访问权限,那么在具有多个管理员或共享开发系统的系统上,共享密码也不理想。