我是一个新的 Ubuntu 用户,发现有些人告诉我使用sudo -i获取 root 权限,而其他人告诉我使用sudo -s. 有什么不同?我使用哪一种以及何时使用?
dot*_*hen 11
sudo -i和之间的主要区别sudo -s是:
sudo -i为您提供根环境,即您的~/.bashrc被忽略。sudo -s给你用户的环境,所以你~/.bashrc的受到尊重。下面是一个例子,你可以看到,我有一个应用程序lsl在我的~/.bin/目录是通过访问sudo -s而与访问sudo -i。另请注意,Bash 提示会随 一起更改,sudo -i但不随sudo -s:
dotancohen@melancholy:~$ ls .bin
lsl
dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl
dotancohen@melancholy:~$ sudo -i
root@melancholy:~# which lsl
root@melancholy:~# exit
logout
dotancohen@melancholy:~$ sudo -s
Sourced .bashrc
dotancohen@melancholy:~$ which lsl
/home/dotancohen/.bin/lsl
dotancohen@melancholy:~$ exit
exit
Run Code Online (Sandbox Code Playgroud)
虽然sudo -s方便给你熟悉的环境,但我推荐使用的sudo -i原因有两个:
.bashrc.小智 4
sudo -i\nRun Code Online (Sandbox Code Playgroud)\n\n\ni [命令]\n -i(模拟初始登录)选项运行由目标用户的密码数据库条目指定的 shell 作为登录 shell。这意味着 shell 将读取特定于登录名的资源文件,例如 .profile 或 .login。如果指定了命令,则会通过 shell 的 -c 选项将其传递到 shell 执行。如果未指定命令,则执行\n 交互式 shell。sudo 在运行 shell 之前尝试更改\n 该用户的主目录。安全策略应将环境初始化为最小的变量集,类似于用户登录时出现的情况。sudoers(5) 手册中的命令环境部分记录了 -i 选项的使用方式影响使用 sudoers 策略时\n运行命令的环境。\n\n\n
sudo -s\nRun Code Online (Sandbox Code Playgroud)\n\n\n -s [command]\n -s (shell) 选项运行 SHELL 环境变量指定的 shell(如果已设置)或密码数据库中指定的 shell。如果指定了命令,则会通过 shell 的 -c 选项\n 将其传递到 shell 执行。\n 如果未指定命令,则会执行交互式 shell。\n\n
| 归档时间: |
|
| 查看次数: |
2981 次 |
| 最近记录: |