背景:最近小伙伴们总是抱怨云服务器又登陆不上了,因为许多人都在使用同一台服务器,难免有的人误操作使用了关机或者重启命令。因此给那些在线的小伙伴带来了困扰。如何解决

题目:创建普通用户,通过sudo提权,禁止使用关机,重启命令。

解决办法:

第一种 :不是办法的办法

可以通过使用命令别名来设置:即将关机命令使用alias进行修改:

[root@www-# vim .bashrc 

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias grep='grep --color=auto'
alias reboot='echo " cannot use reboot: Permission denied" '
alias init='echo " cannot use init: Permission denied" '
alias poweroff='echo " cannot use poweroff: Permission denied"'
alias shutdown='echo " cannot use shutdown: Permission denied" '

重新加载环境设置:

[root@www- ~]# source .bashrc

第二种:使用visudo进行用户权限管理

提示:visudo是直接操作/etc/sudoers文件,我们也可以直接 vi /etc/sudoers,但是visudo命令的好处在于,退出/etc/sudoers文件时,系统会检查/etc/sudoers语法是否正确。

  1. 单用户授权

    [root@localhost ~]# visudo
     root    ALL=(ALL)       ALL
     admin   ALL=(root)     NOPASSWD: ALL,!/usr/bin/passwd,/usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root,!/sbin/reboot,!/sbin/halt,!/sbin/shutdown,!/sbin/init,!/sbin/poweroff
  2. 群组授权

    [root@localhost ~]# visudo
     ## Allows people in group wheel to run all commands
     # %wheel        ALL=(ALL)       ALL
     %test ALL=(ALL) NOPASSWD: ALL,!/usr/bin/passwd,/usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root,!/sbin/reboot,!/sbin/halt,!/sbin/shutdown,!/sbin/init,!/sbin/poweroff
     #只需要把用户添加到组里即可
     [root@localhost ~]# usermod -a -G test jj
  3. 别名授权

    [root@localhost ~]# visudo
     #指明用户及其别名USERNAME
     User_Alias USERNAME=jiajie,jj,admin #指明命令
     Cmnd_Alias COMMAND=ALL,!/usr/bin/passwd,/usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root,!/sbin/reboot,!/sbin/halt,!/sbin/shutdown,!/sbin/init,!/sbin/poweroff #配置别名拥有的权限
     USERNAME ALL=(root) NOPASSWD:COMMAND