[20170705]理解linux su命令.txt
[20170705]理解linux su命令.txt
--//我一般在維護時經常使用root使用者登入,然後su - oracle 轉到其他使用者操作
--//一般都加入 - 引數.這個已經成了條件反射...^_^.
# man su
Change the effective user id and group id to that of USER.
-, -l, --login
make the shell a login shell
--//也就是使用login裡面的shell,設定好對應的環境.
--//如果執行沒有-,也就是僅僅run a shell with substitute user and group IDs,不替換裡面的環境變數或者相關引數.
1.測試1:
--//當前以root使用者登入:
# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
# echo $ORACLE_HOME
# export aaa=test
# echo $aaa
test
# su - oracle
$ id
uid=1001(oracle) gid=1001(oinstall) groups=101(fuse),1001(oinstall),1002(dba),1003(racoper),1004(asmdba)
$ echo $aaa
--//無顯示.
$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0.4/dbhome_1
2.如果執行不加引數 - 呢?
$ echo $ORACLE_HOME
--//環境變數ORACLE_HOME沒有設定,而root設定的環境變數aaa呢?
$ echo $aaa
test
--//可以發現可以顯示環境變數aaa.
3.這樣看來應該很少使用-引數.
--//實際上rac的管理oracle引入許多東西,建立grid使用者.透過一些特殊例子來說明問題:
--//以grid使用者登入:
[grid@dm01dbadm02 ~ ]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 3852
Available space (kbytes) : 258268
ID : 2101855892
Device/File Name : +DBFS_DG
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user
--//OK.如果你加入引數:
$ ocrcheck -local
PROTL-602: Failed to retrieve data from the local registry
PROCL-26: Error while accessing the physical storage Operating System error [Permission denied] [13]
--//跟蹤看看:
$ strace -f -o /tmp/b1.txt ocrcheck -local
PROTL-602: Failed to retrieve data from the local registry
PROCL-26: Error while accessing the physical storage Operating System error [Permission denied] [13]
$ grep 'Permission denied' /tmp/b1.txt
14849 open("/u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr", O_RDONLY|O_SYNC) = -1 EACCES (Permission denied)
--//要開啟檔案/u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr.
$ ls -l /u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr
-rw------- 1 root oinstall 272756736 2017-07-05 09:45:15 /u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr
--//注意看使用者,組是root,oinstall,grid使用者根本沒有許可權開啟這個檔案.
--//要解決這個問題一些dba採用把root使用者裡面加入grid的許多環境變數.以root使用者執行,不過這樣我認為不是很好!!
--//實際上很簡單的方法就是切換到root使用者執行,注意這個時候不能加入- 引數,因為這樣grid的環境引數就丟失了,實際上這樣就以
--//root使用者執行,而使用的環境還是grid使用者的.
$ su root
Password:
# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
# echo $PATH
/usr/local/bin:/bin:/usr/bin:/u01/app/11.2.0.4/grid/bin:.:/u01/app/11.2.0.4/grid/bin
# echo $ORACLE_HOME
/u01/app/11.2.0.4/grid
--//你可以發現grid的環境引數還在.這個使用以root使用者執行如下:
# ocrcheck -local
Status of Oracle Local Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 2800
Available space (kbytes) : 259320
ID : 1632195400
Device/File Name : /u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr
Device/File integrity check succeeded
Local registry integrity check succeeded
Logical corruption check succeeded
--//當然還可以以另外的方式,就是使用sudo命令. sudo ocrcheck -local
--//注意要修改/etc/sudoers,加入:
grid ALL=(ALL) ALL
$ sudo ocrcheck -local
[sudo] password for grid:
Status of Oracle Local Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 2800
Available space (kbytes) : 259320
ID : 1632195400
Device/File Name : /u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr
Device/File integrity check succeeded
Local registry integrity check succeeded
Logical corruption check succeeded
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2141618/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux基礎命令---suLinux
- 【轉】linux下命令su與su - 的區別。Linux
- Linux下su與su -命令的本質區別Linux
- Linux命令su、sudo、sudo su、sudo -i使用和區別Linux
- Linux su命令和sudo命令的區別Linux
- 禁止su命令
- Linux 命令 su 和 sudo 的區別Linux
- su和sudo命令
- Linux基礎命令---切換使用者suLinux
- 深度解析!Linux 命令 su 和 sudo 的區別Linux
- Linux命令 切換使用者型別 suLinux型別
- Linux禁止非WHEEL使用者使用SU命令Linux
- Linux中如何禁止普通使用者使用su命令Linux
- [20170705]diff比較執行結果的內容.txt
- Linux的wheel組:LINUX下使用者使用su命令切換使用者報錯su: Permission deniedLinux
- su命令使用詳解(轉)
- 如何在Linux中如何限制對su命令的訪問Linux
- 【Linux基礎】常用Linux命令: cd, cp, ls, mkdir, mv, rm, su, unameLinux
- su和sudo命令的區別
- Linux中su和sudo命令有什麼區別?Linux學習教程Linux
- su - username -c執行多條命令
- Linux使用者管理之su、whoami、groupadd、groupmod、groupdel命令講解Linux
- Linux su與sudo的區別Linux
- linux下su切換oracle使用者命令列前出現-bash-3.2$LinuxOracle命令列
- su和su - 的區別
- Red Hat Linux - top 命令簡易理解Linux
- Red Hat Linux - top 命令簡易理解Linux
- Linux– su和sudo 切換使用者Linux
- linux精講——su切換使用者Linux
- [20190411]linux stat 命令疑問.txtLinux
- [20120612]linux的cloumn命令.txtLinux
- [20120608]linux的kill命令.txtLinux
- 實際操作中命令 su 與 sudo 的區別(轉)
- su命令切換使用者有什麼注意事項?linux系統入門學習Linux
- 理解Linux 中sed命令的工作機制Linux
- [20121121]關於linux下history命令.txtLinux
- Linux 出現 su: Authentication failure 解決辦法LinuxAI
- 想在指令碼里面執行su命令,怎麼才能實現?指令碼