Su ব্যবহার করে www-data হিসাবে কমান্ড চালানো যায় না


14
# su -l www-data ./http-app.py
This account is currently not available.
# su -l www-data -c ./http-app.py
This account is currently not available.
# su -c ./http-app.py www-data 
This account is currently not available.
# su -lc ./http-app.py www-data 
This account is currently not available.
# getent passwd www-data 
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
# getent shadow www-data 
www-data:*:16842:0:99999:7:::
# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.6 (jessie)
Release:        8.6
Codename:       jessie

আমার suবা কী ভুল হয়েছে www-data? এটি কাজ করত ...

সম্ভবত এটি এর কারণেই /usr/sbin/nologin, তবে rootসিস্টেমে অন্যান্য পরিষেবাদিগুলির সাথে কোনও আপস না করে আমি কীভাবে এই একটি স্ক্রিপ্টের জন্য ড্রপ করব ( একটি দলগত কারণে ভাল কারণে nologinনির্বাচিত হয়েছে Debian, আমি বিশ্বাস করতে চাই)?

উত্তর:


19

suবনাম বিতর্ক sudoনা করে -s /bin/shআপনি আপনার কমান্ড লাইনে যুক্ত করার চেষ্টা করতে পারেন । (ডেসিয়ান ম্যানপেজস ওয়েবসারভার কাজ না করায় এই বিকল্পটি জেসির জন্য উপলব্ধ কিনা তা যাচাই করতে পারিনি: https://manpages.debian.org/ )


আমি ভুলভাবে ধরে নিয়েছি যে /bin/shএটি ডিফল্টরূপে ব্যবহৃত হয় এবং আপনি অবশ্যই -sবিকল্পটি নির্দিষ্ট করতে পারেন যদি আপনি পরিবর্তন করতে চান /bin/bashবা তার সাথে অনুরূপ হন।
নার্নাস্ক

3
ধন্যবাদ, এটি su www-data -s /bin/shটাইপ করতে রুট ফিরে পেতে ডিবিয়ান 9 এ কাজ করে su
পিজে ব্রুনেট

4
@ পিজে ব্রুননেট - "রুটে ফিরে যেতে" (ধরে নিলে আপনি মূল থেকে বেরিয়ে আসবেন) আপনি "প্রস্থান" টাইপ করবেন। একটি নতুন রুট শেল শুরু করতে আপনি su টাইপ করবেন।
ক্রোনোফিশ

31

আপনি ব্যবহার করছেন suযা "ব্যবহারকারীর স্যুইচ" করতে ব্যবহৃত হয়। অবশ্যই এটি কাজ করবে না কারণ www-dataএকটি ব্যবহারকারী অ্যাকাউন্ট যা লগইন করতে ব্যবহার করা যায় না। আপনি এটা বলেছি: /usr/sbin/nologin

সম্ভবত আপনি sudoযা চান তা হ'ল "অন্য ব্যবহারকারী হিসাবে কমান্ড চালানো" is

sudo -u www-data ./http-app.py

আমি সবসময় suএই উদ্দেশ্যে ব্যবহার করি এবং এটি সর্বদা কাজ করত। sudoইনস্টল করার জন্য একটি অতিরিক্ত প্যাকেজ, তবে আপনি ঠিক বলেছেন, আমি যা চাই তা অর্জন করতে আমি এটি ব্যবহার করতে পারি।
নার্নাস্ক

1

আপনি যদি কেবল একটি কমান্ড কার্যকর করতে না চান তবে www-dataসেই ব্যবহারকারীর জন্য কিছু স্টাফ পরীক্ষা করতে স্যুইচ করতে চান, এটি আমার পক্ষে কাজ করেছে:

sudo -u www-data sh

এটা একটু খাটো। [Ctrl] + [d] বা সাথে সেশনটি প্রস্থান করুনexit


0

এই ধরণের সমস্যার সাথে আমি বিকল্পটি ব্যবহার করেছি -p:

su -pc ./http-app.py www-data

-পি: পরিবেশ সংরক্ষণ করা হয়। অদ্ভুত এটা নতুন অ্যাকাউন্ট দিয়ে লগ ইন করতে চেষ্টা করে না, তাই আপনি বার্তা পেতে আত: This account is currently not available.

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