加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_池州站长网 (https://www.0566zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux 给普通用户赋予最高权限

发布时间:2023-02-02 14:59:28 所属栏目:Linux 来源:
导读:  su和su -区别

  su只是切换了root身份,但Shell环境仍然是普通用户的Shell;此时pwd,发现工作目录仍然是普通用户的工作目录

  su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不
  su和su -区别
 
  su只是切换了root身份,但Shell环境仍然是普通用户的Shell;此时pwd,发现工作目录仍然是普通用户的工作目录
 
  su -连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。此时pwd,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有何不同。
 
  su和sudo的区别
 
  su 或者 su -可以切换用户身份,而且每个用户都能切换到root用户,只要他知道root密码即可。这样很不安全,万一哪个用户不消息泄露了root密码就GG了。
 
  于是引出了改进版命令sudo
 
  使用sudo执行一个只有root才能执行的命令是可以办到的,但是需要密码。注意,这里的密码不在是root的密码,而是用户自己的密码。默认情况下只有root用户才能执行sudo命令,普通用户要想执行sudo,需要root预先设定。通过visudo命令编辑/etc/sudoers来实现。(好像直接vim /etc/sudoers也行)
 
  --------------------
 
  位于root组的人并不代表拥有root的最高权限,你可以试一下linux权限,发现操作都是权限不够,所以需要sudo切换权限。
 
  sudo的工作过程如下:
 
  1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限
 
  2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认
 
  3,若密码输入成功,则开始执行sudo后续的命令
 
  4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则)
 
  5,若欲切换的身份与执行者的身份相同,也不需要输入密码
 
  ————————————————
 
  sudoers文件解释:
 
  ## Allow root to run any commands anywhere
 
  ## 允许root用户执行任意路径下的任意命令
 
  root ALL=(ALL)ALL
 
  可以单独设置某个用户。3列分别代表 用户名 我也不知道(反正都这么写) 指定可以使用sudo的命令有哪些
 
  ## Allows people in group wheel to run all commands
 
  # %wheelALL=(ALL)ALL
 
  ## 允许wheel用户组中的用户执行所有命令(也就是root组,%wheel代表root组??)
 
  ## Same thing without a password
 
  ## 允许wheel用户组中的用户在不输入该用户的密码的情况下使用所有命令
 
  # %wheelALL=(ALL)NOPASSWD: ALL
 
  如果用户有几百几千个,总不能一条一条写吧。。。加入wheel组(只要加入root组,而不需要是数组)就可以实现所有用户都有sudo权力
 
  --------------------------
 
  实例1:tomm用户拥有所有权限
 
  tommy ALL=(ALL) ALL
 
  实例2:针对MySQL数据库的设置,让test组中的test用户具备/etc/init.d/mysqld的权限
 
  [root@test ~]# groupadd test
 
  [root@test ~]# useradd -g test -m -d /home/test -s /bin/bash test
 
  [root@test ~]# passwd test
 
  [root@test ~]# vim /etc/sudoers
 
  # test ALL=(ALL) NOPASSWD: /etc/init.d/mysqld
 
  test ALL=(ALL) /etc/init.d/mysqld
 
  [root@test ~]# su test (切换到test用户)
 
  [test@test ~]$ sudo /etc/init.d/mysqld start
 
  [root@test ~]# su test
 
  [test@test ~]$ sudo /etc/init.d/mysqld stop
 

(编辑:我爱制作网_池州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!