[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

[20170705]理解linux su命令.txt的更多相关文章

  1. 理解linux sed命令

    理解linux sed命令(2010-02-27 18:21:20) 标签:linuxshellsed替换 分类:革命本钱 1. Sed简介sed是一种在线编辑器,它一次处理一行内容.处理时,把当 前 ...

  2. [转帖]C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义

    C语言计算时间函数 & 理解linux time命令的输出中“real”“user”“sys”的真正含义 https://blog.csdn.net/willyang519/article/d ...

  3. Linux su命令

    本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行, ...

  4. Linux su命令参数及用法详解--Linux切换用户命令

    建议大家切换用户的时候 使用  su -  root  这样,否则可能发现某些命令执行不了 关于su .su - 及 sudo的区别 请往下看 1.命令作用 su的作用是变更为其它使用者的身份,超级用 ...

  5. Linux—su命令和su -命令的差别(切换登录账号)

    1.普通用户切换到root用户,命令su或su - 本人以前一直习惯直接使用root,很少使用su,前几天才发现su与su -命令是有着本质区别的! 大部分Linux发行版的默认账户是普通用户,而更改 ...

  6. 理解linux网络管理命令

    linux 管理命令,iproute 查看帮助文件: man ip 以下为常用帮助文件. SEE ALSO ip-address(), ip-addrlabel(), ip-l2tp(), ip-li ...

  7. Linux su命令详解

    su switch user,用于切换用户用 su常见命令参数 用法:su [选项]... [-] [用户 [参数]... ] Change the effective user id and gro ...

  8. Linux常用命令4(grep、df、du、awk、su、ll)

    [grep命令] grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename选项与参数:-a :将 binary 文件以 ...

  9. linux su,sudo命令

    linux su 命令 建议大家切换用户的时候 使用 su - root 这样,否则可能发现某些命令执行不了 关于su .su - 及 sudo的区别 请往下看 1.命令作用 su的作用是变更为其它使 ...

随机推荐

  1. (转)Python中操作mysql的pymysql模块详解

    原文:https://www.cnblogs.com/wt11/p/6141225.html https://shockerli.net/post/python3-pymysql/----Python ...

  2. .NetCore使用skywalking实现实时性能监控

    一.简介 很久之前写了一篇 <.Net Core 2.0+ InfluxDB+Grafana+App Metrics 实现跨平台的实时性能监控>关于NetCore性能监控的文章,使用Inf ...

  3. Linux内核源码分析之调度、内核线程模型 And Centos7.2's Kernel Resource Analysis

    本文分为概述.历史.el7.2代码架构图解三部分. 解决的问题: a.Kernel调度发展过程: b.以架构图的方式,详解el7.2具体调度实现.内核线程模型.调度时间片计算,以及探究整个Kernel ...

  4. leetCode(寻找峰值)-二分查找

    题目: 峰值元素是指其值大于左右相邻值的元素. 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引. 数组可能包含多个峰值,在这种情况下,返回任何一个峰 ...

  5. Dubbo 源码分析系列之一环境搭建

    环境搭建的步骤有哪些 依赖外部的环境 使用的开发工具 源码的拉取 结构大致介绍 1 依赖的外部环境 安装JDK 安装Git 安装maven 这边我们就不介绍怎么安装这些外部环境了,大家自行从安装这些外 ...

  6. [POI2006] PRO-Professor Szu

    Description \(n\) 个别墅以及一个主建筑楼,从每个别墅都有很多种不同方式走到主建筑楼,其中不同的定义是(每条边可以走多次,如果走边的顺序有一条不同即称两方式不同). 询问最多的不同方式 ...

  7. Java Generator

    以前我以为只有Python才会有generator,看来当时的我才年轻,后来认真研读<Thinking in Java>之后大有感悟,原来Java亦有generator,故做一次记录分享. ...

  8. PowerDesigner反向生成物理数据模型

    什么是PowerDesigner Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程.利用Power De ...

  9. 微信小程序支付最容易犯的坑notify_url(支付回调)

    最近做了微信小程序支付,支付成功之后发现notify_url回调地址竟然没有访问. 检查了无数次代码,下单结果里面的回调地址看了又看,都没有错啊. 把回调地址复制出来到浏览器上面,外网也是可以访问的啊 ...

  10. .net MVC使用Session验证用户登录(转载)

    .net MVC使用Session验证用户登录   用最简单的Session方式记录用户登录状态 1.添加DefaultController控制器,重写OnActionExecuting方法,每次访问 ...