root下command not found的解决以及su root密码不正确的解决

来源:互联网 发布:淘宝客服绩效考核软件 编辑:程序博客网 时间:2024/06/05 14:13

给和我一样的小白……


问题描述:

我在terminal中输入sudo -s切换到root,发现ifconfig,service,chkconfig这三个命令都提示command not found,于是我在/etc/profile文件中添加了export PATH=$PATH:/sbin,然后使用source /etc/profile让配置生效。但是每次打开虚拟机,输入sudo-s切换到root,都发现好像没配置过一样,这几个命令都还提示command not found。但是我使用普通用户时,这三个命令都是可以使用的。


原因:

没弄清楚su命令与sudo命令的区别;


我原来使用的sudo -s命令按照百度的解释是:

“执行环境变数中的SHELL所指定的shell,或是/etc/passwd里所指定的shell”

说了这么多,我明白了一件事,执行这几个命令的配置在这些shell里面没有!

这时候我看到对于su命令的解释:

su username

shell会切换到username的身份,但是shell的环境变量还是切换前的一样
su - username 

shell会切换到username的身份,但是shell的环境变量会变成username身份下的环境变量


也就是说,我如果使用su root命令,可以切换到root身份,但是环境变量是普通用户下的配置,那么我使用那几个命令就没问题了

于是我高高兴兴地输入了su root,这时候提示我输入口令,没关系,咱过去设置过,输入,回车!

诶,这时候问题来了!


问题描述2:

输入su root后提示输入口令,输入之前设置的root密码,提示密码不正确


原因:

普通用户和root用户不在同一个组,无法相互切换


编辑/etc/pam.d/su,删掉auth       required     pam_wheel.so use_uid前面的#

编辑/etc/group,在wheel::10:root后面加入普通用户的名字,例如:wheel::10:root,ssy

这样就可以在普通用户状态下通过su root命令切到root用户了

如果想免去在切换的过程中输入密码的过程,可以编辑/etc/pam.d/su

将 auth这一列的注释号 去除
# Uncomment the following line to implicitly trust users in the "wheel" group.
auth            sufficient      pam_wheel.so trust use_uid

然后将登陆用户加入 wheel组
usermod -G wheel username


0 0
原创粉丝点击