Centos7 用户执行su报权限禁止

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos7 用户执行su报权限禁止相关的知识,希望对你有一定的参考价值。

参考技术A 现象:在root用户(其他用户也一样)下执行su命令报错,信息为“权限拒绝”

查看/var/log/secure发现报错PAM (crond) illegal module type: auth

由于之前的系统变动中修改过/etc/pam.d/system-auth-ac,查看该文件,发现新增的配置

auth requird /lib64/security/pam_tally2.so deny=3 unlock_time=300由于是从word粘贴的有编码错乱的情况,删除手写解决

PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案

技术分享

使用PLSQL,第一次执行表的select操作的时候,提示"动态执行表不可访问,本会话的自动统计被禁止",如上图:

技术分享
这种问题,一看就是当前连接用户没有对sys用户下的表v$session,v$sesstat,v$statname的select权限,原因在于动态性能表相关的权限没有被授权给当前用户。

处理方法:

  1.第一种处理方法(不推荐)

  就是在报错的Error对话框中将“Don‘t show this message again”选项选中,下次就不在提示这个错误了。这种方法应该可以叫做“鸵鸟方式”的处理方法。没有从根本上解决这个问题。

  2.第二种处理方法(可以采纳)

  报错信息中描述的非常详细,原因是动态性能表没有被访问权限导致的问题,因此,我们通过以sysdba身份登录把所需访问权限赋予给具体用户的方法来解决这个问题。

  1)如果只是某一具体用户有权限查询这三个动态性能视图,可以如下进行操作
  这里注意一下:我们授权的视图是V_$session不是V$session,因为V$session是同名不是具体的视图。否则您会收到下面这个错误。
    [email protected]> grant select on V$session to user_sec;
    grant select on V$session to user_sec
    *
    ERROR at line 1:
    ORA-02030: can only select from fixed tables/views
  正确的授权方法如下:
    grant select on V_$session to user_sec;
    grant select on V_$sesstat to user_sec;
    grant select on V_$statname to user_sec;
  说明:user_sec是被授权的具体用户名。

  2)可以使用下面这个“简单粗暴”的方法处理之。

  grant SELECT ANY DICTIONARY to user_sec;

  3)以上两种方法是针对特定用户的处理方法,如果想让所有用户(不局限在上面的user_sec用户)都能够查询这三个动态性能视图,可以通过将查询权限授权给public方法来实现,操作如下。

  这样就可以保证所有开发人员都不会再出现上述的报错信息了。
  grant select on V_$session to public;
  grant select on V_$sesstat to public;
  grant select on V_$statname to public;

  3.第三种方法(推荐)

  彻底禁掉PL/SQL Developer的这个功能。
  方法如下:导航到Tools(工具) --> Preferences(首选项) --> Options(选项)
  找到“Automatic Statistics(自动统计)”选项,将其前面的小对勾去掉,然后点击“Apply”和“OK”保存退出。

技术分享

 


















以上是关于Centos7 用户执行su报权限禁止的主要内容,如果未能解决你的问题,请参考以下文章

centos root权限执行命令和sudo有没有区别

centos7创建用户并授权sudo su权限

centos7权限不够的问题

Centos7 普通用户加入sudo组

Linux-- Centos7用户切换,PAM和提权

centos7 添加用户并授权root权限