如果当用登录的用户名不在"/etc/sudoers"文件中,是不能执行sudo命令的。可以用root身份手动修该文件,把当前登录用户名加入该文件中
1 切换到root用户
[linux@localhost ~]$ su root
密码:
[root@localhost ~]#
2 查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
[root@localhost ~]# ll /etc/sudoers
-r--r-----. 1 root root 4030 12月 10 09:55 /etc/sudoers
[root@localhost ~]# chmod 777 /etc/sudoers
[root@localhost ~]# ls -l /etc/sudoers
-rwxrwxrwx. 1 root root 4030 12月 10 09:57 /etc/sudoers
3 修改/etc/sudoers文件,执行命令如下:
/username是你的用户名/
[root@localhost ~]# echo 'username ALL=(ALL) ALL' >> /etc/sudoers
可以在root权限下找到 root ALL=(ALL) ALL的字段,在下一行追加:
username ALL=(ALL) ALL
( 我这里的username 是hk )
5分钟之后密码过期,下次需要重新输入,如果不想如此麻烦,可以用以下方法
username ALL=(ALL) NOPASSWD: ALL
说明:格式为{用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围}
4 保存退出,并恢复/etc/sudoers的访问权限为440
[root@localhost ~]# chmod 440 /etc/sudoers
[root@localhost ~]# ll /etc/sudoers
-r--r-----. 1 root root 4030 12月 10 09:59 /etc/sudoers
用hostname命令查看当前主机的主机名称。例如,该命令返回 vp0
打开"/etc/hosts"文件 并将 vp0 加入到 "127.0.0.1"这行中
OK,这样就完成了,经测试绝对可以。