linux系统下切换root权限和普通用户权限

几点说明

  1. 本文中的linxiaoqing只是一个普通用户的实例
  2. 博主使用的ubuntu是中文的,所以系统提示会显示中文而不是英文

1.$和#在linux系统终端(命令行)中通常代表的什么

#打头——root用户身份
$打头——普通用户身份,不是root用户身份

例如下图绿色行:是普通用户linxiaoqing身份,底部白色那行就是root用户身份

linux系统下切换root权限和普通用户权限

2.如何使$变为#,即如何从普通用户linxiaoqing切换到root用户下

即如何从普通用户linxiaoqing切换到root用户下

  1. 键入su root(如上图首行),或者也可以直接输入su
  2. 然后按回车键
  3. 系统提示输入密码(如上图第二行)
  4. 输入root的密码【如果不成功,原因有两点如下】
  5. 输入密码后进入切换到root用户身份,$变为了#

3.切换失败原因一:可能你还没有为root设置密码

刚安装Ubuntu后,root用户默认是未**的

此时不允许登录和使用su命令或者su root命令转到root用户

如果此时我们尝试使用su或者su root命令切换root权限

将会出现“认证失败”或者“Authentication failure”的提示(这两个提示只是中文或者英文的区别)

所以为了使用root用户身份,我们需要先**root用户,也就是给root初始化一个密码步骤如下

步骤和示例图如下,按照步骤对照示例图跟好理解哦

  1. 图示第一行:在linxiaoqing用户身份下,输入sudo passwd root命令
  2. 提示:sudo passwd root这个命令的意思是为root用户设置密码
  3. 图示第二行:系统提示“输入新的UNIX密码”,此时输入你的密码并按回车确认
  4. 注意:你输入密码的时候显示屏上不会显示出来,只要你输入结束后,按回车键确认就行
  5. 图示第三行:系统提示“重新输入新的UNIX密码”,然后你就把刚才输入的密码在输入一次,然后按回车键
  6. 上一步操作的目的是:让你确定你第一次输入进去的密码确实是你想设置的那个密码
  7. 图示第四行:接下来系统提示“passwd:已成功更新密码”
  8. 现在我们已经成功**root了

linux系统下切换root权限和普通用户权限

tips:

输入sudo passwd root这个命令后,可能会弹出一个提示:需要输入当前普通用户的密码

输入当前普通用户的密码后确认身份就可以修改root的密码了

linux系统下切换root权限和普通用户权限

4.切换失败的原因二:你忘记密码了

步骤和第三点一样

5.区分su 、su root 、su linxiaoqing、su -的区别

  1. pwd是查看当前所在目录路径
  2. su - USERNAME:su就是switch user,即切换用户的简写

  3. su - USERNAME的格式:su -l USERNAME(-l为login,即登陆的简写)其中的 -l 可以将 l 省略掉,所以此命令常写为su - USERNAME

  4. 如果不指定USERNAME(用户名),默认即为root

  5. 所以切换到root的身份的命令即为:su - root或是直接 su -

  6. 下图:要求普通用户lingxiaoqing在不注销登陆的情况下,使用root权限

  7. 使用root权限操作完之后,通过命令exit或logout,或者是快捷键ctrl+D即可返回原用户身份。

  8. linux系统下切换root权限和普通用户权限

  9. 上图中我们发现提示语有绿色和白色的区别,自行感受什么叫做“不注销linxiaoqing”的情况下使用root

  10. su和su - 的区别

    1. su - USERNAME   切换用户,同时切换到新用户的工作环境中

    2. su USERNAME      只是切换用户,不改变原用户的工作目录及其他环境变量目

  11. 下面用几个实验来验证

1.打开终端窗口,默认在普通用户身份下

然后输入pwd查看当前目录路径,显示为用户目录

linux系统下切换root权限和普通用户权限

2.在普通用户身份下,键入su和密码,更改为root身份

然后键入pwd查看当前目录路径,发现还是在用户目录
使用exit,作用是退出root身份回到普通用户身份
再次使用pwd查看当前目录,仍然在用户目录下

linux系统下切换root权限和普通用户权限
3.在普通用户身份下,键入su root和密码,更改为root身份

然后键入pwd查看当前目录路径,发现还是在用户目录
使用exit,作用是退出root身份回到普通用户身份
再次使用pwd查看当前目录,仍然在用户目录下

linux系统下切换root权限和普通用户权限

4.对比上面2和3点的实验,发现su和su root的作用都是把普通用户改为root用户,但是没有更改我们的当前工作目录


5.在普通用户身份下,键入su -  然后输入密码,切换到root
pwd查看目录,发现当前目录该变了,变成/root,说明su - 命令同时更改了用户身份和当前工作目录
键入su linxiaoqing,发现这个操作的结果是切换到linxiaoqing用户
键入pwd,发现当前工作目录还是/root,说明上一步su linxiaoqing 命令的操作只是更改用户,没有更改目录
键入exit,再键入pwd,查看发现还是root目录,说明这一步的exit只是退出了linxiaoqing这个用户身份,没有更改目录
再次键入exit,观察结果发现注销了root用户,回到普通用户身份,再用pwd查看目录,发现回到了普通用户的工作目录 

linux系统下切换root权限和普通用户权限

6.su、su root、su lingxiaoqing、su -小结

1.从是够能够更改当前工作目录可以区分命令“su 用户名”和命令“su - ”,前者只更改用户名,后者两个都更改

2.“su 用户名”的命令中,用户名为空时默认用户名是root

7.sudo是什么

使用su切换用户时需知晓对应用户的登陆密码,即若切换成root用户身份,需知道root用户的登陆密码。

作为root用户管理员,如何授权其他普通用户,在不需要知晓root密码的情况下,执行root权限的命令操作?

此时即可使用sudo。

1.sudo表示 “superuser do”。

2.它允许已验证的用户以其他用户的身份来运行命令。

3.上一点说的其他用户可以是普通用户或者超级用户。

4.大部分时候我们用它来以提升的权限来运行命令。

下面用一个实验验证上述说明

1.在普通用户身份下,输入sudo -s

2.如果输错密码错误,结果是提示请重试,三次输错将会操作失败

3.输入密码成功后,结果是从普通用户身份切换到root身份

4.pwd查看当前目录,仍旧是普通用户的目录

linux系统下切换root权限和普通用户权限

sudo apt 常用指令如下:

  1. sudo apt-get update, #更新源
  2. sudo apt-get upgrade ,#更新已安装的包
  3. sudo apt-get dist-upgrade, #升级系统
  4. sudo apt-get dselect-upgrade, #使用 dselect 升级
  5. sudo apt-get build-dep package, #安装相关的编译环境
  6. apt-get source package ,#下载该包的源代码
  7. sudo apt-get clean && sudo apt-get autoclean #清理下载文件的存档
  8. sudo apt-get check #检查是否有损坏的依赖
  9. sudo apt-get install package=version,#安装指定版本的package
  10. sudo apt-get install package - - reinstall,#重新安装package
  11. sudo apt-get -f install,#强制安装
  12. sudo apt-get remove package --purge,#删除包,包括删除配置文件等
  13. sudo apt-get remove package ,#删除包
  14. sudo apt-get autoremove ,#自动删除不需要的包,清理包文件
  15. sudo apt-cache show python,#显示关于package的记录
  16. sudo apt-cache search python ,#正则匹配搜索package的信息
  17. sudo apt-cache depends python,#显示pakage的原始依赖信息
  18. sudo apt-get rdepends python,#显示依赖package的包
  19. sudo apt-cache showpkg python,#显示单个package的信息
  20. sudo apt-cache showsrc python,#显示package的源程序记录
  21. sudo apt-cache sump python,#简介得形式显示package的所有文件
  22. sudo apt-cache unmet python,#显示所有不满足的依赖
  23. sudo apt-cache pkgnames python,#列出系统中所有的包含package的包