su(switch user)命令的作用:切换用户,一般是普通用户与root用户之间的切换。
例:
>su                #输入su命令
Password:      #提示输入密码

相关命令:su - 与sudo

一、Linux下su命令与su - 命令有什么区别?
      su是切换到其他用户,但是不切换环境变量(比如说那些export命令查看一下,就知道两个命令的区别了)
      su - 是完整的切换到一个用户环境
      所以建议大家切换用户的时候,尽量使用 su - root,否则可能发现某些命令执行不了
      从超级用户root变成普通用户,输入exit命令即可

二、Linux下su和sudo的区别
      由于su(或是su - root)切换到超级权限用户root后,权限无限制,可以使用root的所有权限
      如果多个普通用户同时切换到root用户对系统进行操作,可能会出现不同人对同一个文件进行不同操作,那很不安全
      最好是有针对性的放开权限,明确哪些工作是由哪个用户进行操作,并且约定其使用哪个命令来完成与其相关的工作,此时sudo命令可以解决该问题
      通过sudo,我们能把某些root账号拥有的权限针对性的赋权给普通用户,并且不需要普通用户知道root密码
      所以sudo 相对于权限无限制性的su来说,还是比较安全的,因此sudo被称为受限制的su或授权许可的su
      sudo 执行命令的流程是当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令
      执行完成后,直接退回到当前用户。而这些的前提是要通过修改配置文件/etc/sudoers来进行授权

三、配置sudo必须用超级用户使用visudo编辑/etc/sudoers文件,之所以用visudo编辑有两个原因:
      一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查

若在sudoers文件中写入以下一行:
     tomcat ALL=(ALL)    ALL
     第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明tomcat可以在此主机上执行后面的命令;(可以通过hostname命令来查看本台linux机器的主机名)
     第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令;
     最后一个ALL指命令名。
     写入以上语句后,表示tomcat和root拥有一样的权限,什么命令都可以使用,这样子的话,对于系统来说太不安全了,
     让tomcat用户可以执行某些命令(例:ifconfig和ls),在sudoers文件中写入以下一行:
     tomcat hostname=    /sbin/ifconfig,   /bin/ls

在crt上输入命令查看:
     [tomcat@localhost ~]$ sudo ls /root
     PassWord:
     此时的问题是:登录后,每次使用sudo还要输入密码。若是使用sudo命令时不想输入密码,这样修改配置文件:
     tomcat localhost=NOPASSWD:     /bin/cat, /bin/ls
     再次用sudo cat或是sudo ls命令时,就不会提示输入密码了

最新文章

  1. poj 1651 Multiplication Puzzle
  2. 使用B或BL跳转时,下一条指令的地址是这样计算的
  3. 问题解决——在结构体中使用set保存结构体数据
  4. localResizeIMG
  5. 简单几何(线段相交) POJ 1066 Treasure Hunt
  6. Java反射机制(创建Class对象的三种方式)
  7. 关于Spring IOC容器解释
  8. inet address example(socket)
  9. Linux统计文件/目录数量ls -l | grep "^-" | wc -l匹配开头和结尾
  10. akoj-1319-四方定理
  11. JSR系列开篇
  12. webRTC中音频相关的netEQ(四):控制命令决策
  13. Heroku发布前准备
  14. vue-cli项目开发/生产环境代理实现跨域请求+webpack配置开发/生产环境的接口地址
  15. Python序列[1,2,3,4,5]
  16. ubuntu 原生迅雷
  17. webmin改https访问
  18. HDU 3802Ipad,IPhone
  19. 老菜鸟致青春,程序员应该选择java 还是 c#-
  20. 第三章 广义线性模型(GLM)

热门文章

  1. 从并发处理谈PHP进程间通信(一)外部介质
  2. 安卓TCP通信
  3. API code
  4. DevExpreess汉化使用方法及汉化包
  5. 如何在shell脚本中导出数组供子进程使用
  6. Linux配置JDK
  7. 【转】jqGrid学习之介绍
  8. MySQL主从复制与主主复制
  9. 两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍
  10. 点击Robot Framework的桌面快捷图标后,没有反应(没有打开应用程序)