কোনও রুটহীন ব্যবহারকারীকে পরিষেবাটি পুনরায় চালু করার অনুমতি দিচ্ছে


27

পটভূমি:

আমি যার myappসাথে পরিচিত একটি অ্যাপ তৈরি করেছি Spring-boot। এটি একটি স্ব-সম্পাদনযোগ্য জার নিয়ে গঠিত এবং সিস্টেমড পরিষেবাদির সাথে সামঞ্জস্যপূর্ণ। এখন, আমি জেনকিন্সের সাথে এটি সংহত করার চেষ্টা করছি।

আমি যা চাই:

আমি চাই জেনকিন্স সক্ষম হতে:

  • পরিষেবা বন্ধ করুন।
  • বয়াম প্রতিস্থাপন
  • পরিষেবাটি পুনরায় চালু করুন।

সমস্যা:

এখন অবধি কেবলমাত্র sudoers পরিষেবা শুরু / বন্ধ করতে পারবেন। আমি চাই না জেনকিনস একটি সুডোয়ার হয়ে উঠুক (এটি অগোছালো বলে মনে হচ্ছে)।

বর্তমান কাঠামো:

আমার একটি ব্যবহারকারী রয়েছে myappযার /home/myappফোল্ডার রয়েছে। উত্পন্ন জারটি বলা হয় myappএবং এটি স্থাপন করা হয় /home/myapp। ব্যবহারকারী myappউত্পন্ন জারটির মালিক:

myapp@myserver:~/backend$ ll
total 53900
drwxrwxr-x 2 myapp myapp     4096 Apr 25 17:09 ./
drwxr-xr-x 6 myapp myapp     4096 Apr 25 17:08 ../
-rw-rw-r-- 1 myapp myapp      511 Apr 20 16:13 application.properties
-rwxr--r-- 1 myapp myapp 55175294 Apr 20 19:06 backend-1.0-SNAPSHOT.jar*
lrwxrwxrwx 1 myapp myapp       24 Apr 20 19:20 myapp -> backend-1.0-SNAPSHOT.jar*
-rw-r--r-- 1 myapp myapp      179 Apr 20 19:26 myapp.service

আমি একটি এসএস কী রেখেছি যাতে জেনকিনগুলি লগইন করতে পারে myapp@myserver

myappজারের মালিক হিসাবে , আমি মনে করি যে কোনও বিকল্প থাকতে পারে যা ব্যবহারকারীকে myappকল করতে দেয় systemctl start/stop myapp। আসলে, আমি কল করতে পারি systemctl status myappতবে না start/stop(রুট পাসওয়ার্ড জিজ্ঞাসা করা হয়)।

কোন পরামর্শ?


sudoঅগোছালো বিবেচনা করার কারণ আমি দেখতে পাচ্ছি না , এটি সাধারণত আপনার উপায় এরকম কিছু বাস্তবায়ন করা উচিত। একটি গোষ্ঠী তৈরি করুন, এতে আপনার জেনকিন ব্যবহারকারীকে নিয়োগ করুন এবং visudoপরিষেবাটি পরিচালনার জন্য সেই গোষ্ঠীতে একটি সীমিত কমান্ড সেট সরবরাহ করে ব্যবহার করুন
ব্রেন্ট করুন

@brent কি কেবল নিজস্ব পরিষেবার জন্য myappকল করার অনুমতি দেওয়ার কোনও উপায় আছে sudo systemctl?
আরনৌদ ডনয়েলে

উত্তর:


24

sudoযাবার উপায় একটি নতুন গোষ্ঠী তৈরি করুন ( appadminউদাহরণস্বরূপ), এতে আপনার jenkinsব্যবহারকারীকে রাখুন এবং visudoসীমিত আদেশের তালিকা সহ একটি নতুন এন্ট্রি যুক্ত করুন, উদাহরণস্বরূপ:

Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start myapp, /bin/systemctl stop myapp
%appadmin ALL=(ALL) MYAPP_CMNDS

আপনি যদি appadminগোষ্ঠীটি প্রথমে পাসওয়ার্ড না দিয়েই পরিষেবাটি পরিচালনা করতে চান তবে (ব্যবহারকারী যদি কেবল এসএসএইচ কী দ্বারা প্রমাণীকরণযোগ্য হয় তবে দরকারী),

Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start myapp, /bin/systemctl stop myapp
%appadmin ALL=(ALL) NOPASSWD: MYAPP_CMNDS

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.