2017-04-17 6 views
0

Ich habe jenkins auf Linux-Rechner installiert und konfiguriert. Als Teil der Automatisierung des Build-Prozesses möchte ich meine Kriegsform von einem Verzeichnis in ein anderes kopieren. Ich habe versucht, dies mit der PRE BUILD ACTION und Shell-Befehl auszuführen. cp/aus dem Verzeichnis/in das VerzeichnisJenkins-Installation unter Linux, ausgeführt Shell-Befehl erteilt Erlaubnis verweigert.

Build schlägt fehl, wenn die Berechtigung verweigert wird. Ich habe verschiedene Möglichkeiten ausprobiert, indem ich dem Benutzer, der sich bei den jenkins anmeldet, eine Berechtigung auf Root-Ebene gebe. Nichts funktioniert.

Ich bin nicht, wenn ich dem richtigen Benutzer die Erlaubnis gebe oder nicht.

Jede Hilfe würde sehr geschätzt werden. Bitte beachten Sie, dass ich neu bei LINUX/UNIX bin.

Antwort

0

Um herauszufinden, welcher Benutzer Jenkins startet, verwenden Sie whoami in einer Pre-Build-Aktion und sehen Sie sich das Build-Protokoll an, um festzustellen, welcher Benutzer die Build-Skripts ausführt. Es wird wahrscheinlich anders sein als der Benutzer, der den Ordner besitzt, in den Sie versuchen, jenkins zu kriegen, um den Krieg zu kopieren.

Anstatt den Benutzer zu veranlassen, dass jenkins einen root-Benutzer ausführt (ein Sicherheitsrisiko, da jetzt Ihre jenkins-Skripte privilegierte Aktionen ausführen können), können Sie diesen Benutzer derselben Gruppe hinzufügen, in der sich der Benutzer befindet, der den Ordner besitzt.

Können sagen, ich lief whoami in einem jenkins Skript und der Benutzer sich heraus user1 zu sein, und der Benutzer, der den Ordner besitzt Sie versuchen, den Krieg in, user2 zu kopieren. Sie möchten user1 derselben Gruppe hinzufügen, die user2 ist, und die Ordnerberechtigungen ändern, um Änderungen von Personen in derselben Gruppe zuzulassen.

Um user1 zur gleichen Gruppe hinzufügen, wie user2:

chmod g+w /path/to/directory 
:

usermod -a -G user2 user1 

dann die Erlaubnis des Ordners, in den Sie kopieren möchten ändern