本人初学linux运维,在观看oldboy视频教程后,对学习到的知识进行总结,知识内容均出自oldboy视频教程。
#########################################################################################
linux系统中,只有root用户才能添加和删除用户,而在工作中,假如有很多个运维工程师作为普通用户,我们希望一部分的普通用户可以实现只有在root用户下才能实现的操作,但不是能干所有root用能干的事儿(比如我们不希望普通用户可以修改root密码,但又希望普通用户能添加用户),这个时候我们就需要用到sudo权限管理。
在root用下给普通用户分配权限。输入命令visudo
在82行下面添加 oldboy ALL=(ALL) user/sbin/useradd,uesr/sbin/userdel 这样就允许普通用户能够添加和删除用户。注意我们在执行该命令时,前面必须加上sudo 如sudo user/sbin/useradd kkk
这就好比皇帝root给了大臣oldboy一把尚方宝剑,oldboy执行公务时需要拿出这把尚方宝剑才能干活。
工作中,领导作为用户需要一个大的权限,我们就可以添加一个权限leader ALL=(ALL) ALL 这样leader就可以同sudo的方式进入到root用户 sudo su - root,需要输入leader自己的密码。设置leader用户的密码,在root用户下输入命令 passwd leader 回车后输入密码即可。或者leader ALL=(ALL) NOPASSWD:ALL这样在使用sudo su - root切换到root用户时就不需要密码了。
查询当前用户拥有哪些权限 sudo -l
查看useradd命令的全路径 which useradd
查看环境变量 echo $PATH
为什么又是命令需要用全路径?原因是环境变量中没有该命令的路径,比如useradd命令的路径user/sbin在环境变量中,所以我们可以直接使用useradd KKK 命令来用户,就不需要用user/sbin/useradd kkk。注意root用户的$PATH和普通用户的$PATH是不一样的。比如ifconfig命令的路径/sbin,root用户的环境变量中有/sbin,而普通用户oldboy没有,所以oldboy用户下不能直接使用ifconfig命令,怎么呢解决呢?
输入命令vi .bash_profile,然后修改PATH路径(在路径后添加:sbin(用冒号分割)),最后输入source .bash_profile重新加载即可生效。