聯繫Oracle支持站點。 Oracle注意:9 1 2 6 0.1 - UNIX:CONNECT /作爲根失敗,使用ORA-01017並與其他用戶成功工作
sql * net驅動程序將「root」用戶轉換爲「守護程序」作爲代碼爲了安全起見,明確禁止陰影進程在根目錄下運行。
[[email protected] ~]#strace -fo /tmp/sqlplus.out sqlplus/
SQL*Plus: Release 11.2.0.3.0 Production on Tue Oct 17 11:21:28 2017
Copyright (c) 1982, 2011, Oracle. All rights reserved.
[[email protected] ~]# grep setuid /tmp/sqlplus.out
18432 setuid(2) = 0
18433 setuid(2) = 0
18434 setuid(2) = 0
[[email protected] ~]# grep getuid /tmp/sqlplus.out
18431 getuid() = 0
18431 getuid() = 0
18431 getuid() = 0
18431 getuid() = 0
18431 getuid() = 0
18432 getuid() = 2
18432 getuid() = 2
18431 getuid() = 0
18433 getuid() = 2
18433 getuid() = 2
18431 getuid() = 0
18434 getuid() = 2
18434 getuid() = 2
前5個函數getuid()調用返回「0」,但最後一次調用返回「2」。 「2」是「守護程序」用戶的ID。
[[email protected] ~]# grep daemon /etc/passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
[[email protected] ~]# id daemon
uid=2(daemon) gid=2(daemon) groups=2(daemon),1(bin),4(adm),7(lp)
在最後一次getuid()函數調用後的某個時間應該會看到實際的Oracle錯誤。由於使用os身份驗證以root用戶身份登錄到sqlplus時,getuid()函數的返回值發生更改,因此將返回ORA-1017錯誤。
這不是一個Oracle錯誤:root用戶在UNIX/Linux的一個特例。
有沒有更多的細節?我搜索了91260.1,並沒有太多信息。 –
我添加了詳細信息。 –