我正在 Amazon AMI 上为多个用户设置共享文件夹(详细信息见底部)。我尝试与某一个用户共享该文件夹,但不起作用。
我的想法是创建一个名为“repository”的用户组,并将用户添加到其中。我运行了以下命令:
sudo groupadd repository
sudo usermod -a -G repository jenkins
sudo usermod -a -G repository ec2-user
sudo mkdir /repository
sudo chown jenkins:repository /repository
sudo chmod 770 /repository
现在,我期望 jenkins 用户能够毫无困难地在此文件夹中创建目录。但是,它似乎不起作用。
sudo runuser -l jenkins -c "mkdir /repository/hello"
没有创建目录。尝试使用 ec2-user,它也是“repository”组的一部分。
sudo runuser -l ec2-user -c "mkdir /repository/hello"
成功创建目录。使用groups jenkins
和进行双重检查groups ec2-user
,验证两个用户是否都是“repository”组的成员。
我哪里做错了?詹金斯用户是服务帐户,这是问题吗?
有问题的詹金斯帐户是Jenkins 网络服务器并且可以更改用户,但我想保持不变。
以下是操作系统的详细信息:
>cat /etc/*-release
NAME="Amazon Linux AMI"
VERSION="2015.03"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.03"
PRETTY_NAME="Amazon Linux AMI 2015.03"
ANSI_COLOR="0;33"
CPE_NAME="cpe:/o:amazon:linux:2015.03:ga"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2015.03
找到了解决方案,但不知道为什么它有效
经过一番摸索,我最终将jenkins
用户的 shell 从/bin/false
改为/sbin/nologin
,之后一切正常。有人能解释为什么使用/bin/false
会导致这种情况吗?
因此/etc/passwd
从:jenkins:x:498:498:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/false
到:jenkins:x:498:498:Jenkins Continuous Integration Server:/var/lib/jenkins:/sbin/nologin