系统:centos5.x

以前我安装mysql时,新建用户的命令是这样的:

shell> groupadd mysql
shell> useradd  -g mysql mysql
shell> cd /usr/local

这时查看/etc/passwd时,记录这样的:

mysql:x:501:502::/home/mysql:/bin/bash

从上面的记录可以看出,此时的mysql是个普通用户(uid 500+)。

查看一下mysql的home目录:

drwx------ 2 mysql   mysql   4096 Apr 15 21:07 mysql

嗯,这时从root用户切换成mysql是没有问题的。所以我一直都没有在这个步骤上遇到过问题。接下来,我说说今天在这个步骤上遇到的问题。

如果细心留意观察mysql manual(2.2. Installing MySQL from Generic Binaries on Unix/Linux)的话,会发现它的操作命令是这样的:

shell> groupadd mysql
shell> useradd -r -g mysql mysql
shell> cd /usr/local

它的useradd 多加了一个选项'-r',这个参数的意思是"create system account"。可以从/etc/passwd中mysql的uid反映这一点:

mysql:x:101:502::/home/mysql:/bin/bash

在建立完用户以后,这时做root切换成mysql用户的操作,会出现一个意想不到的情况:

# su - mysql
su: warning: cannot change directory to /home/mysql: 权限不够
-bash: /home/mysql/.bash_profile: 权限不够
-bash-3.2$ 

在我的印象当中,root的切换操作在正常情况下不会出现"Permission denied",是什么原因引起的?通过查询一些网上的资料,有一种说法是说用户的权限出现了问题。详情可以参阅这里。但我这个却不是这个原因。通过观察,问题的表现在这里:

drwx------ 2     504 mysql   4096 Apr 29 15:06 mysql

这个属主标识错误的问题,很好解决:

# chown -R mysql mysql/

原因分析:上述属主标识问题发生的原因其实很简单,就是在建立新的mysql用户(系统uid)时,它使用了以前的mysql普通用户(使用userdel删除具有相同名称的旧账号,没有加 '-r'选项,保留其主目录)的主目录。这样当uid不一致(系统没有更新此主目录的属主标识位),而此uid的用户已经不存在于系统中,所以root用户在切换用户时发生了" Permission denied"。

转载于:https://www.cnblogs.com/minglog/archive/2011/04/29/2032741.html

root切换用户时遭遇cannot change directory to /home/xxx: Permission denied相关推荐

  1. linux切换用户时出现bash-4.2$

    切换用户时出现bash-4.2$ 工作中遇到如下场景,环境已经给定,也创建好了dsweb 用户,但是切换用户时提示 由于当时在.bash_logout .bash_profile这几个文件中进行了操作 ...

  2. Could not chdir to home directory /home/xxx:Permission denied

    问题:Could not chdir to home directory /home/xxx:Permission denied 原因:这是用户的目录里的.bash_profile 的拥有者和所属组的 ...

  3. 运行sqlplus时遇到cannot restore segment prot after reloc: Permission denied

    运行sqlplus时遇到cannot restore segment prot after reloc: Permission denied,网上说可以吧SELinux关掉,但是我看了下我的系统已经关 ...

  4. Ubuntu下Linux系统部署fisco时bash操作报错权限不足(permission denied) failed to run command ‘........‘

    Ubuntu下Linux系统部署fisco时bash操作报错权限不足(permission denied) failed to run command '-' 例如这里就指的是fisco-bcos这个 ...

  5. linux切换用户时 su-,Linux切换用户(su)

    Linux切换用户(su)教程 普通用户之间切换以及普通用户切换至 root 用户,都需要知晓对方的密码,只有正确输入密码,才能实现切换:从 root 用户切换至其他用户,无需知晓对方密码,直接可切换 ...

  6. linux切换用户时为什么会显示“认证失败”

    如下图所示,正确输入切换用户的命令后还是显示"认证失败" 原因:通过查找网上资料可知,root每次生成的密码是随机的,因此需要自己手动更改root用户的密码. 更改密码命令:sud ...

  7. linux切换用户时释放资源,linux 切换用户报Resource temporarily unavailable

    今天开年第一次巡检,进入grid检查dg时,发现用不了,具体报错如下: [root@testrac2 ~]# su - grid su: /bin/bash: Resource temporarily ...

  8. 友盟分享,在微信切换用户时,信息没变更的问题

    现在微信都有一键切换账号的功能,这时候如果不配置友盟,很容易授权微信还是上一个账号 ,做法就是对友盟进行配置. 旧版本 Config.isNeedAuth = true 新版本 UMShareConf ...

  9. ubuntu切换用户时死机(安裝顯卡)

    1.先檢測一下顯卡是否已安裝 sudo lshw -numeric -class video 出現一下信息: *-display  description: VGA compatible contro ...

最新文章

  1. Python使用matplotlib可视化绘制并导出可视化结果图表到PDF文件中
  2. Codeforces Round #514 (Div. 2)题解
  3. ASP.NET Core 中的 startup类
  4. c 获取char*的长度_最大的 String 字符长度是多少?
  5. Appium录制脚本520-2
  6. 跑腿同学校园小程序源码-已测试
  7. mysql-5.6.24-win32.zip 下载 安装 配置 创建数据库
  8. 【分享】费曼技巧---以教促学
  9. Aqara 2021发布会:万物互联的家庭智慧全景
  10. 看好你的数据库连接字符串!
  11. matlab的otdr仿真,otdr测试曲线生成软件-OTDR测试曲线图仿真软件TrcView 4.0 官方免费版 - 河东下载站...
  12. 安装mp4,mp3等媒体解码器
  13. 让 Microsoft Office 下课!强烈推荐WPS2005!!
  14. 好用的文献论文管理软件 EndNote X 9.3.3 Mac版
  15. 在android studio中启动模拟器的时候报错...keeps shopping
  16. 文件上传解析器MultipartResolver
  17. 微信企业号开发常用工具类总结(一)
  18. 玩抖音必知的3个数据分析工具:会用它们,少走很多弯路
  19. 布尔矩阵与个性化推荐系统(原创)
  20. 一文解析交通大数据是如何解决拥堵问题的

热门文章

  1. 应用实践 | 物易云通基于 Apache Doris 的实时数据仓库建设
  2. PGD:Towards Deep Learning Models Resistant to Adversarial Attacks
  3. 32位oracle客户端驱动,Oracle官方32位客户端-instantclient-basic-nt-12.2.0.1.0
  4. cuBLAS矩阵乘法
  5. python的四则运算教案_python四则运算
  6. Delphi Http Https 最好的解决方法(二)
  7. riserdb存储介绍(一)
  8. vue中的怎么获取localStorage的信息
  9. 用dispatch_source实现可取消的定时器
  10. AsyncTask使用及解析