Linux命令--su与sudo

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

相关命令:su - 与sudotomcat

1、Linux下su命令与su - 命令有什么区别?
      su是切换到其余用户,可是不切换环境变量(好比说那些export命令查看一下,就知道两个命令的区别了)
      su - 是完整的切换到一个用户环境
      因此建议你们切换用户的时候,尽可能使用 su - root,不然可能发现某些命令执行不了
      从超级用户root变成普通用户,输入exit命令便可安全

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

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

     若在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命令时,就不会提示输入密码了变量

相关文章
相关标签/搜索