ホームページ  >  記事  >  運用・保守  >  [20170705]Linux su command.txt について

[20170705]Linux su command.txt について

PHP中文网
PHP中文网オリジナル
2017-07-05 18:16:151719ブラウズ

[20170705] linux su コマンドを理解します。txt

--//通常、メンテナンス中に root ユーザーとしてログインし、その後、他のユーザーの操作に su - oracle を実行します
--//通常、これには - パラメーターが追加されます。条件反射になります...^_^.

# man su
実効ユーザーIDとグループIDをUSERのものに変更します

-, -l, --login
シェルをログインシェルにします

-- //つまり、ログイン時にシェルを使用して、対応する環境を設定します。
--//- を指定せずに実行すると、環境変数や内部の関連パラメーターを置き換えずに、代わりのユーザー ID とグループ ID でシェルを実行するだけになります。

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 is not set で、root で設定した環境変数 aaa はどうなっているのでしょうか?
$ echo $aaa
test

--//環境変数 aaa が表示されることがわかります

3.パラメータはほとんど使用されません。
--// 実際、rac 管理 Oracle では、グリッド ユーザーを確立するために多くの機能が導入されています。問題を説明するために、いくつかの特別な例が使用されています。
--// グリッド ユーザーとしてログインします:
[grid@ DM01DBADM02〜] $OCRCHECK
STATUSOF ORACLE CLUSTERレジストリは、利用可能なスペース(KBYTES):258268
ID:2101855892デバイス/ファイル名: +DBFS_DG
デバイス/ファイルの整合性チェックハッパー/ファイル構成/ファイルデバイスクラスターレジストリの整合性チェックに成功しました
クラスターレジストリ整合性チェック パラメータ:
$ ocrcheck -local
PROTL-602: ローカル レジストリからのデータの取得に失敗しました
PROCL-26: 物理ストレージへのアクセス中にエラーが発生しました オペレーティング システム エラー [権限が拒否されました] [13]

--//追跡して参照:
$ strace -f -o /tmp/b1.txt ocrcheck -local
PROTL-602: ローカル レジストリからのデータの取得に失敗しました
PROCL-26: 物理ストレージへのアクセス中にエラーが発生しましたオペレーティング システム エラー [権限が拒否されました] [13 ]

$ grep '権限が拒否されました' /tmp/b1.txt
14849 open("/u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr", O_RDONLY|O_SYNC ) = -1 EACCES (権限が拒否されました)

--//ファイルを開くには /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 です。グリッド ユーザーにはこのファイルを開く権限がまったくありません

--//この問題を解決するために、一部の DBA はグリッドの多くの環境変数を追加します。 root ユーザーとして実行しますが、これはあまり良くないと思います
--//実際、非常に簡単な方法は、実行のために root ユーザーに切り替えることです。実際、この方法では、グリッド ユーザーの環境がそのまま使用されます。

$ su root
パスワード:

。 # 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

--//グリッド環境パラメータがまだ存在していることがわかります。これは root ユーザーとして実行されます:
# ocrcheck -local
Status of Oracle Local Registry は次のとおりです。 使用領域 (KB) : 2800
使用可能領域 (KB) : 259320
ID : 1632195400
デバイス/ファイル名 : /u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr
デバイス/ファイルの整合性チェックに成功しました
ローカル レジストリの整合性チェックに成功しました
論理破損チェックに成功しました

--//もちろん、sudo コマンドを別の方法で使用することもできます sudo ocrcheck -local
--///etc/sudoers を変更して以下を追加するように注意してください。 grid all =(all)all

$ sudo ocrcheck-local
[sudo]グリッドのパスワード:Oracleローカルレジストリのスタッタスは次のとおりです。 259320
ID : 1632195400 デバイス/ファイル名 : /u01/app/11.2.0. 4/grid/cdata/dm01dbadm02.olr
デバイス/ファイルの整合性チェックは成功しました
破損チェックは成功しました


以上が[20170705]Linux su command.txt についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。