রুট অ্যাক্সেস সহ চালানোর জন্য সিস্টেমড সার্ভিস কনফিগার করা


21

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

সিস্টেমোকে সুডো দিয়ে পরিষেবা চালানোর জন্য কি কোনও উপায় আছে?


2
আপনার ইউনিট ফাইলটি দেখতে কেমন লাগে, আপনার প্রশ্নের সাথে এটি যুক্ত করুন? সাধারণত systemdরুট রাইটস সহ ইউনিট ফাইলগুলি চালায়।
থমাস 11

উত্তর:


31

সিস্টেমডকে দিয়ে সার্ভিস চালাতে বলুন sudo?

sudo এটির সাথে কিছু করার নেই।

সাধারণত আপনি ইউনিট ফাইলের বিভাগে User=এবং একটি Group=নির্দেশিকা সহ একটি নির্দিষ্ট ব্যবহারকারী / গোষ্ঠী হিসাবে পরিষেবা চালানোর জন্য সিস্টেমে নির্দেশ দেন [Service]

এগুলি রুটে সেট করুন (বা এগুলি সরান, মূল হিসাবে চালানোই ডিফল্ট)


আমি এটি একটি কনফিগার করার জন্য একটি গাইড ব্যবহার করছিলাম বলে একটি নির্দিষ্ট ব্যবহারকারীর ব্যবহারের জন্য এটি সেট আপ করেছিলাম। তবে আমার ক্ষেত্রে এটি উপযুক্ত ছিল না। আমি এটিকে ডিফল্টরূপে রুট হিসাবে চালানোর জন্য সরিয়েছি এবং এখন সমস্ত কিছুই কাজ করে!
লুক

2
রুট হিসাবে চালানো সাথে চালানোর মতো একদম নয় User=root। আমার উত্তর দেখুন।
মার্ক স্টসবার্গ

এই ফাইলটি কোথায় সম্পাদনা করা যেতে পারে?
ম্যাথু


15

সাফ করার জন্য, systemdসিস্টেম পরিষেবাদিগুলি ডিফল্টরূপে রুট হিসাবে চালিত হয়, তবে ডিফল্ট আচরণ এবং এর সাথে সিস্টেম পরিষেবা চালানোর মধ্যে এখনও পার্থক্য রয়েছে User=root

স্প্যানড প্রক্রিয়াগুলিতে পরিবেশগত ভেরিয়েবলগুলিতে নথিবদ্ধ হিসাবে , এই পরিবর্তনগুলি কেবল সেট করা থাকলে User=সেট করা হয়:

$USER, $LOGNAME, $HOME, $SHELL

আমি এই অনুসন্ধানটি নিশ্চিত করার জন্য পরীক্ষা করেছি। সুতরাং আপনি যদি একটি সিস্টেমযুক্ত পরিষেবা রুট হিসাবে চালাতে চান যা উপরের ভেরিয়েবলগুলির মধ্যে একটি প্রয়োজন, আপনাকে সেট করতে হবে User=root


ধন্যবাদ! আমার কাছে থাকা একটি অ্যাপ্লিকেশনটিতে এটিই আমার পক্ষে কাজ করেছিল
পেড্রো টরেস

এনবি আপনি যদি ব্যবহারকারী = মূল সেট করেন তবে আপনার সম্ভবত গোষ্ঠী = রুট :) সেট করা উচিত superuser.com/a/1452367/39364
রোজারডপ্যাক

2

একটি অস্থায়ী সমাধান, কিন্তু এটি একটি চিমটি মধ্যে কাজ করেছে:

/usr/bin/sudo /bin/bash -lc 'bundle exec rails server -e demo -p 80'

এমন কোনও সিস্টেমের সাথে চালাতে পারেন যার সিস্টেমেড ইউনিট ফাইলে সুডোর অধিকার রয়েছে:

[Unit]
Description=Rails Webserver
After=syslog.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/var/www/webserver
ExecStart=/usr/bin/sudo /bin/bash -lc 'bundle exec rails server -e demo -p 80'
Restart=always
KillSignal=SIGQUIT

[Install]
WantedBy=multi-user.target

এটিতে একাধিক সমস্যা রয়েছে: প্রথম, প্রথম দুটি উত্তর ব্যাখ্যা করে যে কোনও ব্যবহারকারী এবং তারপরে sudo ব্যবহার করা কেন অপ্রয়োজনীয়, এবং এটি করার সঠিক উপায়টি প্রদর্শন করুন। দ্বিতীয়ত, আপনার ওয়েলাপকে যেভাবেই রুট হিসাবে চালানো উচিত নয়। তৃতীয়ত, আপনার ওয়েব অ্যাপ্লিকেশনটি কোনও এনগিনেক্সের মতো একটি সাধারণ ওয়েব সার্ভারের পিছনে থাকা উচিত।
মাইকেল হ্যাম্পটন

আমি আপনার কোনও বিষয়ে আপনার সাথে একমত হইব না। তবে যদি আমার মতো কেউ যদি একটি খালি-হাড়, একটি দ্রুতগতির হিসাবে আপনি কোনও সার্ভারের স্ট্যান্ডআপ চান তবে এটি কার্যকর একটি বিকল্প যা কার্যকর works
daino3

আপনি যতটা দ্রুত পারছেন তত দ্রুত। স্পষ্টতই ব্যবহার sudoকরা স্টার্টআপটি কিছুটা কমিয়ে দেবে। এবং এটি অপ্রয়োজনীয়।
মাইকেল হ্যাম্পটন

@ মিশেলহ্যাম্পটন আমি একটি বাড়ির পিছনের অংশটি লেখার চেষ্টা করছি, সুতরাং আমি এই উত্তরটি সহায়ক বলে খুঁজে পেয়েছি!
পি। সাউতজাইকভিচ

1

এক্ষেত্রে সিস্টেম ব্যবহারকারী হিসাবে এটি চালান ডিফল্টরূপে পরিষেবাটি রুট হিসাবে চলমান।

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