首頁  >  文章  >  運維  >  [20170705]理解linux su指令.txt

[20170705]理解linux su指令.txt

PHP中文网
PHP中文网原創
2017-07-05 18:16:151756瀏覽

[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                  :         62120
         Used space (kbytes)      :       3852
       ID                       : 2101855892
     ice DBFS_DG
                                                地  Device/File not configured
                                                   所/File not configured
         Cluster registry inteity#         Cluster registry inteity#         Cluster registry inteity
         Logical corruption check bypassed due to non-privileged user

--//OK.如果你加入參數:
$ ocrcheck -local

--//OK.如果你加入參數:
$ ocrcheck -local
#PROTL-602: Failed to retrieve data from the#PROTL-602: Failed to retrieve data 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 EACCESed ######--//要開啟檔案/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/dm01badm02. #--//注意看使用者,群組是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               Total space (kbytes)     :     空間 (kbytes)     :     262120###         Used space (kbytes)         記憶###         Available space (kbytes) :    ###         Device/File Name                      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                  :         62120
         Used space (kbytes)      :       2800
        ID                       : 1632195400
     ice u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr
                             Local registry integrity check succeeded
         Logical corruption check succeeded




################################################################################################################################################ #

以上是[20170705]理解linux su指令.txt的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn