标题:[实践OK]linux系统 su切换用户失败情况,/etc/passwd 里面的shell是 :/bin/false导致没法sudo 成功。 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Fri, 20 Jan 2017 16:25:48 +0000 作者:jackxiang 地址:http://jackxiang.com/post/9190/ 内容: 背景:原来是因为Jenkins的组不对,再把组修正了下,再加上chmod a+s /bin/su ,后来发现是因为/etc/passwd 里面的shell是 :/bin/false导致没法sudo 成功。 su jenkins id uid=0(root) gid=0(root) 组=0(root) 试了下Su到其它用户可以,于是查了一下 vi /etc/passwd : jenkins:x:1012:1010:Jenkins Continuous Integration Server:/data/jenkins:/bin/false 原来是这儿/bin/false,不是su的问题: jenkins:x:497:601:Jenkins Continuous Integration Server:/data/jenkins:/bin/bash 于是就好了: [root@iZ2zehnf4lbq2wf83bmzk1Z ~]# su jenkins [jenkins@iZ2zehnf4lbq2wf83bmzk1Z root]$ id uid=1012(jenkins) gid=1010(jenkins) 组=1010(jenkins) ================================================== [root@iZ2zehnf4lbq2wf83bmzk1Z ~]# su jenkins [root@iZ2zehnf4lbq2wf83bmzk1Z ~]# id uid=0(root) gid=0(root) 组=0(root) [root@iZ2zehnf4lbq2wf83bmzk1Z ~]# whoami root [root@iZ2zehnf4lbq2wf83bmzk1Z ~]# id jenkins uid=984(jenkins) gid=990(jenkins) 组=990(jenkins) ======================================== 原因1 /bin/su文件没有s位权限 chmod a+s /bin/su 来自:http://blog.itpub.net/26432034/viewspace-1688391/ 解决办法 感谢csdn用户jeecg-scott分享的博文《su 切换,提示:“密码不正确”》以下是连接 http://blog.csdn.net/zhangdaiscott/article/details/18666471 step1 检查/etc目录下passwd的权限 [root@dev /]# ll /etc/passwd -rw-r--r--. 1 root root 1975 5月 27 06:04 /etc/passwd 如果普通用户不能读请改成644权限 [root@dev /]# chmod 644 /etc/passwd step2 检查/bin/su文件是否有s位权限 [root@dev ~]# ll /bin/su -rwxrwxrwx. 1 root root 34904 10月 17 2013 /bin/su 如果不存在则添加上 [root@dev /]# chmod a+s /bin/su [root@dev /]# ll /bin/su -rwsrwsrwx. 1 root root 34904 10月 17 2013 /bin/su step3 测试成功否 [oracle@dev ~]$ su - root 密码: [root@dev ~]# Generated by Jackxiang's Bo-blog 2.1.1 Release