在Linux上,是否可以作为另一个用户进行一次性登录,覆盖其默认shell?

作为root用户,我想以服务用户身份登录(jenkins – CI服务器)并使用其用户,组和umask设置操作文件.

通常我会(作为根)做sudo -i -u jenkins,甚至su-jenkins.但是jenkins的默认shell是/ bin / false,它会立即退出.

有没有办法以Jenkins身份登录,但指定使用不同的shell?我真的必须在/ etc / passwd /中更改jenkins的shell吗?

解决方法

su on linux支持使用–shell选项设置shell
su jenkins --shell=/bin/bash

你需要以root身份su才能工作.从手册页:

If the target user has a restricted shell (i.e. the shell field of
       this users entry in /etc/passwd is not listed in /etc/shell),then
       the --shell option or the $SHELL environment variable wont be taken
       into account,unless su is called by root.

相关文章

查找全部容器的日志文件 $ sudo find /var/lib/docker/conta...
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型