Jenkins用户在macOS更新后不见了

我在Mac上将Jenkins作为CI服务器运行。在具有用户jenkins的典型设置的情况下,它在macOS 10.12上运行良好。

今天,我将macOS升级到10.13(High

Sierra)。升级过程完成后,Jenkins无法启动。此外,系统上没有用户詹金斯。所有Jenkins文件都存在,但是在设置->用户和组中没有jenkins用户。如果我尝试在终端中使用jenkins用户,例如,如果我尝试使用chown将文件所有权更改为jenkins,则会得到:

chown: jenkins: illegal user name

我该如何解决?

回答:

通过从Jenkins安装中提取创建用户的脚本命令,我设法重新创建了该用户。我特别运行了此脚本:

JENKINS_HOMEDIR="/Users/Shared/Jenkins"

DEFAULTS_PLIST="/Library/Preferences/org.jenkins-ci.plist"

if dscl . -list /Users/jenkins; then

echo 'jenkins user already exists, attempting to change the shell to /bin/bash'

# Will fail if UserShell is not /usr/bin/false, but that's ok.

# Then we will assume an admin has changed it.

dscl . -change /Users/jenkins UserShell /usr/bin/false /bin/bash

else

echo 'No jenkins user found, creating jenkins user and group'

# Find free uid under 500

uid=$(dscl . -list /Users uid | sort -nrk 2 | awk '$2 < 500 {print $2 + 1; exit 0}')

if [ $uid -eq 500 ]; then

echo 'ERROR: All system uids are in use!'

exit 1

fi

echo "Using uid $uid for jenkins"

gid=$uid

while dscl -search /Groups gid $gid | grep -q $gid; do

echo "gid $gid is not free, trying next"

gid=$(($gid + 1))

done

echo "Using gid $gid for jenkins"

dscl . -create /Groups/jenkins PrimaryGroupID $gid

dscl . -create /Users/jenkins UserShell /bin/bash

dscl . -create /Users/jenkins Password '*'

dscl . -create /Users/jenkins UniqueID $uid

dscl . -create /Users/jenkins PrimaryGroupID $gid

dscl . -create /Users/jenkins NFSHomeDirectory "$JENKINS_HOMEDIR"

dscl . -append /Groups/jenkins GroupMembership jenkins

fi

# identify the real default group name for user jenkins

groupid=`dscl . read /Users/jenkins PrimaryGroupID | awk '{print $2}'`

gname=`id -n -g $groupid`

echo "Using jenkins:${gname} as file owner and group for jenkins daemon files"

find "$JENKINS_HOMEDIR" \( -not -user jenkins -or -not -group ${gname} \) -print0 | xargs -0 chown jenkins:${gname}

# Add defaults for heap sizing

arch=$(uname -m)

if [ $arch = 'x86_64' ]; then

defaults write $DEFAULTS_PLIST heapSize 512m

defaults write $DEFAULTS_PLIST permGen 512m

defaults write $DEFAULTS_PLIST minHeapSize 256m

defaults write $DEFAULTS_PLIST minPermGen 256m

else

# i386

defaults write $DEFAULTS_PLIST heapSize 128m

defaults write $DEFAULTS_PLIST permGen 128m

defaults write $DEFAULTS_PLIST minHeapSize 64m

defaults write $DEFAULTS_PLIST minPermGen 64m

fi

defaults write $DEFAULTS_PLIST httpPort 8080

# Set tmpdir

JENKINS_TMPDIR="$JENKINS_HOMEDIR/tmp"

defaults write $DEFAULTS_PLIST tmpdir $JENKINS_TMPDIR

mkdir -p $JENKINS_TMPDIR

chown jenkins:${gname} $JENKINS_TMPDIR

# Create log directory, which can be written by Jenkins daemon

mkdir -p /var/log/jenkins

chown jenkins:${gname} /var/log/jenkins

以上是 Jenkins用户在macOS更新后不见了 的全部内容, 来源链接: utcz.com/qa/415747.html

回到顶部