• linux下非root用户的sudo问题


    linux下的root用户是个超级管理员,一般是不用这个用户登录进行操作的,但有时候需要root权限,又不想切换用户的话可以使用sudo命令。但是不是所有的用户都可以使用sudo命令的。

    首先可能会遇到下面的提示:
    ××× is not in the sudoers file.  This incident will be reported.

    解决办法:

    1、修改/etc/sudoers 文件

    #su -
    #chmod u+w /etc/sudoers
    在 root    ALL=(ALL)    ALL 的下一行添加
    username     ALL=(ALL)    ALL
    #chmod u-w /etc/sudoers

    可能还会遇到下面的提示
    sudo: ×××: command not found
    这个是PATH的问题,要继续进行下面的操作

    2、把用户加入到wheel组中

    #vi /etc/passwd
    把用户的组号改为10(whell的组号为10,这步需要重新登录才能生效)

    3、修改 Sudo 配置文件 /etc/sudoers

    #visudo
    或者直接 vi /etc/sudoers
    Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR
    LS_COLORS MAIL PS1 PS2 QTDIR USERNAME
    LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC
    LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS
    _XKB_CHARSET XAUTHORITY PATH"
    在env_keep中加入PATH。(这步需要重新登录才能生效)

    RHEL6.×版本里 有所改变,多出来一个 Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin 这个时候上面添加的 PATH就不管用了,
    不添加env_keep里面的PATH, 在后面添加下用户安装的目录就可以了  Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/local/sbin  

    4、修改/etc/profile 

    # Path manipulation
    #if [ "$EUID" = "0" ]; then ;
    修改为
    gid=`/usr/bin/id -g`
    if [ $gid -eq 10 ];then
    #source /etc/profile

    至此解决问题了。

    如果不想让root用户远程登录的话,可以做如下设置:
    修改配置文件/etc/sshd/sshd_config,
    在文件中查找 PermitRootLogin 这句话
    “PermitRootLogin no”表示不允许root用户远程登录,
    “PermitRootLogin yes”表示允许root用户远程
    修改为想要的结果即可

  • 相关阅读:
    解决Nginx不支持pathinfo的问题
    PHP获取当前服务器信息的基本语句
    权重结构的加权排序算法
    《深入探讨C++对象模型》笔记 二
    链表的一些常用操作
    invalidate作用
    GetMessage()和PeekMessage()区别
    C语言程序编译的内存分配
    assert() 宏用法
    开始写博客
  • 原文地址:https://www.cnblogs.com/wayne173/p/3794398.html
Copyright © 2020-2023  润新知