su与sudo的区别

使用一般帐号进行日常的操作是一个好的习惯

用较低权限启动系统服务

软件本身的限制

1.su

su - root/other user

需要知道root/user的密码方可

su 是最简单的身份切换命令.他可以进行任何身份的切换.

su [-lm] [-c命令] [username]

su - 以login-shell的变量文件读取方式进入系统.

如果没有加上用户名,则是切换到root用户

-l 与-类似,也是login-shell切换用户

-m 与-p是一样的,表示使用当前的环境配置,而不读取新的用户配置.

-c 仅进行一次命令,-c后面可以加上命令.


-和没有-有很大区别,因为这是login-shell和non-login shell的变量读取方式.


例如:

$sun:--->su

passwd


$root--->id

输出root的用户,用户组信息


$root -> env | grep sun

输出用户sun的环境配置,然后exit退出sun的环境


单纯的使用su来进行用户的切换使用的是non-login shell的方式.这种方式下很多原来的变量不会发生改变.尤其使我们谈到的PATH环境变量.比如/sbin /usr/sbin等目录没有被包含进来.因此root惯使用的命令只能通过绝对路径使用.

如果要离开的话,请使用exit进行离开.

如果我要使用使用一个只要root才能使用的命令,执行完毕后恢复身份,可以使用-c

例如:

$sun : head -n 3 /etc/shadow

提示我没有权限

$sun: su - -c "head -n 3 /etc/shadow"

然后输入sun的密码就可以查看了.


总之:

如果要切换到用户的工作环境,必须使用"su - username"或"su -l username"才会联通"PATH/USER/MAIL"等变量切换到新的环境中.

如果仅想使用一次root的命令可以使用"su - -c"

root切换到其他用户的时候可以不用使用密码

su切换很方便,但是n多人的时候容易暴漏root的密码

-------------------------------------------------------------------------------------------

2.sudo

sudo 是用来执行root的命令串

多人公用一台主机的时候,sudo要比su来得快.起码root密码不会泄露.

仅仅是/etc/sudoers用户的才能使用sudo命令.


命令语法:

1.开始的时候只要root用户才能执行sudo命令

sudo [-b] [-u 新用户帐号]

2.sudo可以让你切换用户身份来进行任务


执行的流程:

1.当用户使用sudo命令的时候,系统在/etc/sudoers中查找是否有这个用户是否具有执行sudo的权限

2.当确认后,还要输入用户的密码

3.密码正确后才进行后续的命令,root不需要密码

4.如果切换身份与执行身份相同则不需要密码


我们可以使用visudo去修改/etc/sudoers

之所以使用visudo去修改是因为怕修改出现语法错误,当然不建议直接使用vi进行修改.


$sun: head -n -3 /etc/shadow

提示用户木有权限

把sun用户加入到/etc/sudoers中然后使用

$sun: sudo head -n 3 /etc/shadow

输入密码就可以进行查看了


建议对使用sudo命令的用户请加入一个用户组里面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值