![如何避免 sudo su -s /bin/bash jenkins](https://linux22.com/image/701052/%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%20sudo%20su%20-s%20%2Fbin%2Fbash%20jenkins.png)
我以前可以通过以下方式从 root 切换到 jenkins 用户
su jenkins
但是使用我新安装的詹金斯,我必须执行 sudo su -s /bin/bash jenkins
有人知道我怎样才能再次执行 su - jenkins 吗?
答案1
查看 /etc/passwd 中为 jenkins 用户指定的 shell。你可以运行以下命令来执行此操作:
grep jenkins /etc/passwd
输出将类似于此:
jenking:1001:1001::/usr/local/jenkins:/bin/false
最后一个字段是用户的登录 shell。这里你可以看到它被设置为 /bin/false,这将立即退出。
解决方案是按照您描述的方式指定要使用的 shell:
su -s /bin/bash jenkins
或者使用“usermod(8)”修改jenkins用户的登录shell(以root用户执行):
usermod -s /bin/bash jenkins
然后grep jenkins /etc/passwd
应该输出类似这样的内容:
jenkins:1001:1001::/usr/local/jenkins:/bin/bash
此后,su - jenkins
将会按您预期的方式工作。