GNU/Linux >> Znalost Linux >  >> Linux

Spustit příkaz shell v jenkins jako uživatel root?

Doporučil bych proti spuštění uživatele jenkins jako root. To by mohlo odhalit operační systém a všechna úložiště, která mohou jenkins sestavit.

Spuštění libovolného skriptu jako root představuje bezpečnostní riziko, ale o něco bezpečnější metodou by bylo udělit uživateli jenkins sudo přístup, aby spustil pouze jeden skript, aniž by potřeboval heslo.

sudo visudo

a přidejte následující:

jenkins    ALL = NOPASSWD: /var/lib/jenkins/jobs/[job name]/workspace/script

Znovu zkontrolujte svou cestu prostřednictvím protokolu konzoly se skriptem, který selhal. Zde zobrazený je výchozí.

Nyní v rámci úkolu jenkins můžete zavolat sudo $WORKSPACE/your script


Musíte upravit oprávnění pro jenkins uživatele, abyste mohli spouštět příkazy shellu. Jenkins můžete nainstalovat jako službu (stáhněte si balíček rpm), možná budete muset změnit porty, protože ve výchozím nastavení běží http na 8080 a AJP na portu 8009.



Následující proces je pro CentOS
1. Otevřete tento skript (pomocí VIM nebo jiného editoru):

vim /etc/sysconfig/jenkins

2. Najděte toto $JENKINS_USER a změnit na „root“:

$JENKINS_USER="root"

3. Poté změňte vlastnictví Jenkins home, webroot a logs:

chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins

4) Restartujte Jenkinse a zkontrolujte, zda byl uživatel změněn:

service jenkins restart
ps -ef | grep jenkins

Nyní byste měli být schopni spouštět Jenkinsovy úlohy jako uživatel root a všechny příkazy shellu budou provedeny jako root .


Linux
  1. Jak zrušit kořenová oprávnění ve skriptech Shell?

  2. Jak spustit příkaz bez vlastností root?

  3. Jak spustit příkaz jako konkrétní uživatel ve skriptu init?

  1. Jak spustit příkaz Vim z shellu?

  2. Omezit uživatele na provádění selektivních příkazů (Linux)

  3. Spusťte skript prostředí jako jiný uživatel

  1. Jak spustit příkaz jako správce systému (root)?

  2. Jak zajistit, aby skript Shell vždy běžel jako root?

  3. Spusťte příkaz jako uživatel systému Linux (shell =/bin/false)