[20170705] Linux su command.txt 이해하기
--//보통 유지 관리 중에는 루트 사용자로 로그인한 다음 다른 사용자 작업에는 su - oracle
--//일반적으로 - 매개 변수를 추가합니다. 조건 반사가 됩니다...^_^
# Man Su
유효 사용자 ID와 그룹 ID를 해당 사용자의 ID로 변경합니다.
-, -L,-login
쉘을 로그인 쉘로 만듭니다
--- ---- //즉, 로그인 시 쉘을 사용하여 해당 환경을 설정합니다.
--//- 없이 실행하면 환경 변수를 바꾸거나 변경하지 않고 대체 사용자 및 그룹 ID로 쉘을 실행한다는 의미입니다. 관련 매개변수 내부.
1. 테스트 1:
--//현재 루트 사용자로 로그인:
# id
uid=0(root) gid=0(root) groups=0(root),1(bin) ,2(데몬), 3(sys),4(adm),6(디스크),10(휠)
# echo $ORACLE_HOME
# 내보내기 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 환경변수가 설정되지 않았는데, 루트가 설정한 환경변수 aaa는 어떻게 되나요?
$ echo $aaa
test
--//환경변수 aaa가 표시되는 것을 확인할 수 있습니다.
3. - 매개변수는 거의 사용되지 않는 것 같습니다.
--// 실제로 rac 관리 오라클은 많은 것을 도입하고 그리드 사용자를 설정하는데 문제를 설명하기 위해 몇 가지 특별한 예가 사용됩니다:
--//그리드로 로그인 user:
[grid@dm01dbadm02 ~ ]$ ocrcheck
Oracle Cluster Registry 상태는 다음과 같습니다. 사용 가능한 공간(kbytes) : 258268
ID : 2101855892 장치/파일 이름 : +DBFS_DG
장치/파일 무결성 검사 성공
/파일 없음 구성됨
| > 로컬 레지스트리의 데이터
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 루트 oinstall 272756736 2017-07-05 09:45:15 /u01/app/11.2.0.4/grid/cdata /dm01dbadm02.olr
--//사용자에게 주의하세요. 그룹은 root, oinstall입니다. 그리드 사용자는 이 파일을 열 수 있는 권한이 전혀 없습니다.
--//이 문제를 해결하기 위해 일부 DBA는 추가합니다. 그리드의 많은 환경변수를 루트사용자로 실행하는데 별로 좋지 않은 것 같아요!!
--//사실 아주 간단한 방법은 루트사용자로 전환하여 실행하는 것입니다. 그리드 환경 매개변수가 손실되므로 현재 - 매개변수를 추가할 수 없습니다. 실제로 이 방법은 루트 사용자로 실행됩니다.
$ su root
비밀번호:
# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon) ,3(sys),4(adm),6( 디스크),10(휠)
# 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
--//그리드 환경 매개변수가 여전히 존재하는 것을 확인할 수 있습니다. 이는 루트 사용자로 실행됩니다:
# ocrcheck -local
Oracle Local Registry의 상태는 다음과 같습니다. 사용된 공간(kbytes) : 2800
사용 가능한 공간(kbytes) : 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 Local Registry 상태는 다음과 같습니다. 버전 262120
사용 공간(kbytes) : 2800
사용 가능한 공간(KB): 259320
ID : 1632195400 기기/파일 이름 : /u01/app/11.2.0.4/grid/cdata/dm01dbadm02.olr
기기/파일 무결성 검사 성공
손상 검사 성공
위 내용은 [20170705]리눅스 이해 su command.txt의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!