su sudo gksudo-转

这几个命令的相同点和不同点...

login shell & non-login shell

login shell: 登录shell, 会执行.bash_profile和.bashrc, 需要用户名和密码, Ctrl+Alt+F1登录后就是一个登录shell
non-login shell: 非登录shell, 执行.bashrc, 不执行.bash_profile, 需要已经登录, 在gnome里开启的图形terminal是非登录shell

interactive shell & non-interactive shell

interactive shell: 交互式shell, 例如gnome的图形terminal
non-interactive shell: 非交互式shell, 可能由一个进程启动, 用户看不到输入或输出

su

su -c apt-get install vlc
-c 执行命令

su -
登录shell

sudo

用户必须在sudoers文件里或在一个group里(这个group在sudoers文件里)

sudo su
非登录shell, HOME环境变量变成root

sudo -i
登录shell
近似于sudo su -
启动由目标用户的password数据库项指定的shell

sudo -s
非登录shell, HOME环境变量还是当前用户
启动由SHELL环境变量指定的shell
如果没有SHELL环境变量则启动由当前用户的password数据库项指定的shell

sudo su = sudo + su + shell
sudo -i = sudo + shell

检测是否处于登录shell中(仅限bash)

1
shopt -q login_shell && echo 'Login shell' || echo 'No login shell'

sudo和gksudo

sudo和gksudo都是使用root权限来执行应用
sudo执行程序时使用的是当前用户的home及其配置,而gksudo使用的是root用户的home和配置

一般情况下看不出什么区别,但是对于那些针对不同用户有不同的配置文件和表现形式的应用程序来说,这两种方式的结果区别就很明显了。
比如使用sudo firefox出现权限问题,gksudo firefox就没有这个问题。

在不通过终端运行程序时,sudo没有办法提供一个界面来输入管理员密码,比如在快捷方式中。
还有些GUI程序只能用gksudo

Ubuntu设置root密码

在普通用户shell里
sudo passwd
但是最好不要使用root密码,通过sudo机制处理root权限比较好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值