su和sudo的区别与使用


一. 使用 su 命令临时切换用户身份 1、su 的适用条件和威力
su命令就是切换用户的工具,怎么理解呢?比如我们以普通用户beinan登录的,但要添加用户任务,执行useradd ,beinan用户没有这个权限,而这个权限恰恰由root所拥有。解决办法无法有两个,一是退出beinan用户,重新以root用户登录,但这种办法并不是最好的;二是我们没有必要退出beinan用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。我们可以看到当然通过su 切换是一种比较好的办法;
通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证;
2、su 的用法:
su [OPTION选项参数] [用户]
-, -l, --login 登录并改变到所切换的用户环境;
-c, --commmand=COMMAND 执行一个命令,然后退出所切换到的用户环境;
至于更详细的,请参看man su ;
3、su 的范例:
su 在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等;
[table=400][tr][td][beinan@localhost ~] $ su
Password:
[root@localhost beinan]# pwd
/home/beinan[/td][/tr][/table]su 加参数 - ,表示默认切换到root用户,并且改变到root用户的环境;
[table=400][tr][td][beinan@localhost ~] $ pwd
/home/beinan
[beinan@localhost ~] $ su -
Password:
[root@localhost ~]# pwd
/root[/td][/tr][/table]su 参数 - 用户名
[beinan@localhost ~] $ su - root 注:这个和su - 是一样的功能;
Password:
[root@localhost ~]# pwd
/root
[beinan@localhost ~] $ su - linuxsir 注:这是切换到 linuxsir用户
Password: 注:在这里输入密码;
[linuxsir@localhost ~] $ pwd 注:查看用户当前所处的位置;
/home/linuxsir
[linuxsir@localhost ~] $ id 注:查看用户的UID和GID信息,主要是看是否切换过来了;
uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)
[linuxsir@localhost ~] $
[beinan@localhost ~] $ su - -c ls 注:这是su的参数组合,表示切换到root用户,并且改变到root环境,然后列出root家目录的文件,然后退出root用户;
Password: 注:在这里输入root的密码;
anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot
[beinan@localhost ~] $ pwd 注:查看当前用户所处的位置;
/home/beinan
[beinan@localhost ~] $ id 注:查看当前用户信息;
uid=500(beinan) gid=500(beinan) groups=500(beinan)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一页

相关内容

    暂无相关文章