[root@localhost /]# mkdir -p /u01/oracle
[root@localhost /]# useradd -g oinstall -G dba -d /u01/oracle/ oracle
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
而且/u01/oracle目录下没有任何文件。
 
解决方法:
 
网上查了一下,方法各式各样。我觉得这个方法还是简单些。
不要手动建oracle目录。
[root@localhost /]# mkdir /u01
[root@localhost ~]# useradd -g oinstall -G dba -d /u01/oracle oracle
Creating mailbox file: File exists
[root@localhost ~]# ll -a /u01/oracle/
total 32
drwx------. 4 oracle oinstall 4096 Aug 10 19:41 .
drwxr-xr-x. 3 oracle oinstall 4096 Aug 10 19:41 ..
-rw-r--r--. 1 oracle oinstall   18 May 30 12:58 .bash_logout
-rw-r--r--. 1 oracle oinstall  176 May 30 12:58 .bash_profile
-rw-r--r--. 1 oracle oinstall  124 May 30 12:58 .bashrc
-rw-r--r--. 1 oracle oinstall  500 Jan 23  2007 .emacs
drwxr-xr-x. 2 oracle oinstall 4096 Nov 11  2010 .gnome2
drwxr-xr-x. 4 oracle oinstall 4096 Aug 10 17:32 .mozilla
 
原因:
 
系统添加用户的标准步骤
1.编辑/etc/passwd与/etc/group
2.创建用户主目录
3.从/etc/skel拷贝文件与目录
4.让新用户获得其主目录与文件的拥有权限
5.给新用户一个密码
 
查useradd代码:
static void create_home (void)
{
if (access (user_home, F_OK) != ) {
#ifdef WITH_SELINUX
selinux_file_context (user_home);
#endif
/* XXX - create missing parent directories. --marekm */
if (mkdir (user_home, ) != ) {
fprintf (stderr,
_("%s: cannot create directory %s\n"),
Prog, user_home);
#ifdef WITH_AUDIT
audit_logger (AUDIT_ADD_USER, Prog,
"adding home directory",
user_name, (unsigned int) user_id,
SHADOW_AUDIT_FAILURE);
#endif
fail_exit (E_HOMEDIR);
}
chown (user_home, user_id, user_gid);
chmod (user_home,
& ~getdef_num ("UMASK", GETDEF_DEFAULT_UMASK));
home_added = true;
#ifdef WITH_AUDIT
audit_logger (AUDIT_ADD_USER, Prog,
"adding home directory",
user_name, (unsigned int) user_id,
SHADOW_AUDIT_SUCCESS);
#endif
#ifdef WITH_SELINUX
/* Reset SELinux to create files with default contexts */
setfscreatecon (NULL);
#endif
}
} int main(int argc, char *argv[])
{
................
create_home ();
if (home_added)
copy_tree (def_template, user_home, user_id, user_gid);
else
fprintf (stderr,
_
("%s: warning: the home directory already exists.\n"
"Not copying any file from skel directory into it.\n"),
Prog); ......................
}

前先不建/u01/oracle,  报错 是因为        if (mkdir (user_home, 0)) { 相当于没有参数  -p 的mkdir /u01/oracle
建了/u01/oracle 有useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件 是因为 if (access (user_home, F_OK)) { 这个 /u01/oracle目录已经存在
所以只有只指定不含子路径的时候才能没有警告出现

 
结合代码可以看到网上找到另个解决方法是:
依旧使用上面的脚本建用户,然后手动拷贝配置文件到/u01/oracle下。
cp /etc/skel/.bash_profile     /u01/oracle
cp /etc/skel/.bashrc /u01/oracle
cp /etc/skel/.bash_logout /u01/oracle

 

这样既可。

安装Oracle,新建组、用户的时候的一个错误的更多相关文章

  1. oracle新建登录用户sql语句

    CREATE TABLESPACE TEST_DBDATAFILE '/mnt/data/oracledata/TEST_DB .dbf' SIZE 5000M AUTOEXTEND ONUNIFOR ...

  2. 安装oracle 11g时,报启动服务出现错误,找不到OracleMTSRecoveryService的解决方法

    很多人在安装orcl数据库时,出现很多报错,我也不例外,因上次数据库出现问题,无法修复,只能从新安装,无奈的是,安装时报启动服务出现错误,找不到OracleMTSRecoveryService错MMP ...

  3. Win7/Win8 系统下安装Oracle 10g 提示“程序异常终止,发生未知错误”的解决方法

    我的Oracle 10g版本是10.2.0.1.0,(10.1同理)选择高级安装,提示“程序异常终止,发生未知错误”. 1.修改Oracle 10G\database\stage\prereq\db\ ...

  4. Oracle新建用户、角色,授权,建表空间

    oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create table权限允许用户创建表,gr ...

  5. linux环境下安装oracle数据库 原文在卡卡100http://www.cnblogs.com/kaka100

    centos55_oracle11gr2_install   第一个阶段:安装centos55 a:安装centos5.5   用图形界面安装  硬盘 16G 注意:用图形界面安装.. 第二个阶段:配 ...

  6. CentOS 7 安装 Oracle 11.2.0.4

    一.安装环境 CentOS Linux release 7.2.1511 (Core) Oracle Database 11g Release 2 (11.2.0.4) 二.安装前准备 2.1 修改主 ...

  7. Centos安装Oracle及问题处理

    安装Oracle前准备 创建运行oracle数据库的系统用户和用户组 [jonathan@localhost ~]$ su root #切换到root Password: [root@localhos ...

  8. Centos 6下安装Oracle 11gR2

    一.安装环境 CentOS release 6.7 (Final) Oracle Database 11g Release 2 二.安装前准备 #修改主机名 修改/etc/sysconfig/netw ...

  9. Virtualbox环境中安装Oracle 11gr2 RAC(ASM)

    系统Oracle Linux 6.5,Oracle 11.2.0.1 终于开始安装ASM和RAC的行程了.开始前需要想清楚的几个事情: 如何规划网络配置(配置多网卡,实现连通性,规划内外网,eth0, ...

随机推荐

  1. Gson使用初探

    参考地址: http://www.stormzhang.com/android/2014/05/22/android-gson/ 我的示例代码: public void doGsonTest(View ...

  2. android 关于多任务下载问题

    关于多任务下载问题    近期项目中,遇到一个问题,列表数据中的图片地址是一个需要下载JS再解析的字段,之前的图片下载是一个异步的过程,由一个队列处理. Android系统以不同寻常的方式处理多个应用 ...

  3. mirantis cert

    with no vendor specificity and/or proprietary implementations,没有供应商的特异性和/或专有的实现 https://training.mir ...

  4. mysql 的卸载、再安装与常用命令

    1.卸载mysql.完全删除: 删除 mysqlsudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-se ...

  5. poj 1815 Friendship (最小割+拆点+枚举)

    题意: 就在一个给定的无向图中至少应该去掉几个顶点才干使得s和t不联通. 算法: 假设s和t直接相连输出no answer. 把每一个点拆成两个点v和v'',这两个点之间连一条权值为1的边(残余容量) ...

  6. 学习pthreads,给线程传递多个參数

    上篇博文中.boss线程给其它线程传递的仅仅有一个參数,那么假如是多个參数呢?怎么传递呢?也许你会有这种疑问,带着这个疑问,我们进入本文的世界,这里传递多个參数,採用结构体,为什么呢?由于结构体里能够 ...

  7. 数字信号处理Day1自制电子音乐

    第一天的课程感觉比較简单,主要介绍Karplus-Strong Algorithm 给出方程 y[n]=αy[n−M]+x[n], x[n]是输入,M是延迟,α是衰弱系数 我们要衰减D次,总的採样数就 ...

  8. Android 动画animation 深入分析

    转载请注明出处:http://blog.csdn.net/farmer_cc/article/details/18259117 Android 动画animation 深入分析 前言:本文试图通过分析 ...

  9. CSS换行2

    1.可以使用强制换行符号<br />换行.如果在一个文章里可以在文章需要换行的地方加入<br />即可实现自动换行-常说的小换行,与换行前没有间隔.实例如下图 换行说明图无间隔 ...

  10. js兼容性大全

    js有个第二定律好的属性/选择器一定不兼容/* 获取类名通用代码*/function getClassName(){ if(document.getElementsByClassName){ doso ...