su和sudo

########################### su、sudo
====su
su -        #切换到root用户
su - yeqing #切换到yeqing用户
su yeqing   #切换到yeqing用户但是不带环境变量
su - ye -c "env" |grep PWD #区别su ye和su - ye
id        #查看当前用户详情

缺点:
  不安全,只要把root用户密码给普通用户,都能切换到root来完成所有的系统管理工作。
  60%的系统故障都是内部人为操作导致,并不是遭攻击.
  su只适用于一两个人参与管理的系统.

====sudo
 sudo无需密码只有授权,有针对性的下放给用户分配权限.
 sudo执行流程:
 当前用户切换到root(或其它指定切换到的用户),然后以root(或其它指定的切换到的用户)身份执行命令,执行完成后,直接退回到当前用户;而这些的前提是要通过sudo的配置文件/etc/sudoers来进行授权;

实例1:
 su - yeqing
 less /etc/shadow
 /etc/shadow: Permission denied #提示没有权限
解决
 su -
 which less
 visudo(set nu/:98/相当于打开vi /etc/sudoers)
   yeqing  ALL=(ALL)       /usr/bin/less /etc/shadow,/usr/sbin/useradd
 visudo -c

测试
  su - yeqing
  sudo less /etc/shadow

 技巧: (*表示通配所有,!表示取消某个程序权限)
 yeqing  ALL=(ALL) /usr/sbin/*,!/usr/sbin/fdisk

查看自身被分配的权限
 su - yeqing
 sudo -l

加日志(sudo ***都会被记录,不管是否正确)
vi /etc/rsyslog.conf
  local2.debug    /var/log/sudo.log #空白处不能用空格键,必需用tab键

visudo
  Defaults              logfile=/var/log/sudo.log #添加至最后一行

chmod 777 /var/log/sudo.log
ps aux | grep rsyslog
kill -9 168
/etc/init.d/rsyslog restart

tail -f /var/log/sudo.log

你可能感兴趣的:(su和sudo)