আমি কীভাবে -20 এর একটি ভাল মান দিয়ে একটি প্রক্রিয়া শুরু করব এবং এটির মূল সুযোগ দেব না?


18

আমি -20 এর একটি দুর্দান্ত মান দিয়ে একটি প্রক্রিয়া শুরু করতে চাই। এর জন্য আমাকে - এর মতো একটি কমান্ড ব্যবহার করা দরকার sudo nice -n -20 matlab। তবে এটি ম্যাটলেবকেও মূল হিসাবে শুরু করে। মাতলাবকে নন-রুট হিসাবে পাওয়ার কোনও উপায় আছে কি?

আমার বর্তমান পদ্ধতিটি - sudo nice -n -20 sudo -u myusername matlab- যা আমার কাছে হ্যাকের মতো দেখাচ্ছে like এটি করার জন্য কি সরাসরি পন্থা রয়েছে?


আপনি কেবল ড্রপ করতে সক্ষম হওয়া উচিত sudorootআপনার নিজের প্রক্রিয়াটি সুন্দর করার দরকার নেই।
জর্ডানম

8
আপনি যদি ডিফল্টের চেয়ে উচ্চতর অগ্রাধিকার সেট করতে চান তবে আপনার সুপারজার দরকার। (-20 সর্বাধিক অগ্রাধিকার।) এটি করার জন্য আমি যে অন্য উপায়টি ভাবতে পারি তা হ'ল এটি শুরু হওয়ার পরে সুডো রাইনিস। তবে আপনি যেহেতু ম্যাটল্যাবকে ইন্টারেক্টিভভাবে চালাচ্ছেন, তাই করা শেষের চেয়ে সহজ।
অ্যালান শুটকো

1
হ্যাক নয়, এটাই চলার পথ।
হউক লেগেছে

@ জর্দান - একটি সুডো ব্যতীত, এটি সঠিক কমান্ড - nice -n -20 matlabএবং এটি আউটপুটটি দুর্দান্ত: বিশেষত্ব নির্ধারণ করতে পারে না: অনুমতি অস্বীকৃত। মতলব শুরু হয় এবং দুর্দান্ত মান 0
লর্ড লোহ।

@ অ্যালানশুতকো - আমি system('sudo renice ...')ম্যাটল্যাব-এ চালাতে পারি , তবে মতলব 2 প্রক্রিয়া শুরু করে - ম্যাটল্যাব এবং ম্যাটল্যাবহেল্পার। আমি উভয় এটি করতে পারে। তদুপরি আমি আরও চাই যে আমার সমস্ত ম্যাটল্যাব প্রক্রিয়াগুলি উচ্চ অগ্রাধিকারের হয়ে উঠুক - যখন আমি matlabpool local সমান্তরাল প্রক্রিয়াজাতকরণ শুরু করি । @ হককিজিং - আমি আপনাকে সঠিক বলে ভাবতে শুরু করি।
লর্ড লোহ

উত্তর:


20

আমি এটি সাধারণত শুরু করব এবং পরে "রেনিস" ব্যবহার করব ...

তবে আমি "সু" এর সাথে একত্রে একটি দ্রুত হ্যাক করতে সক্ষম হয়েছি যা কাজ করে:

sudo সুন্দর -n -20 su -c কমান্ড_ থেকে_রুন ব্যবহারকারী_আর_রুন_ও as

(যদি আপনাকে sudo কে একটি পাসওয়ার্ড দিতে না হয় - সম্ভবত আপনি ইতিমধ্যে এটি দিয়েছেন - আপনি পুরো জিনিসটিকে পটভূমিতে রাখার জন্য "&" যুক্ত করতে পারেন))

যেহেতু আপনি ইতিমধ্যে sudo- কমান্ডের সাথে রুট হয়ে গেছেন, su আপনাকে পাসওয়ার্ড জিজ্ঞাসা করবে না। আমি এক্স এর অধীনে টার্মিনাল-এমুলেটর থেকে একটি এক্স-প্রোগ্রাম শুরু করতে সক্ষম হয়েছি। আপনি যদি এক্স-সেশনটির মালিকানাধীন ব্যবহারকারী হিসাবে অন্য ব্যবহারকারী হিসাবে এক্স-প্রোগ্রামটি চালাতে চান তবে আপনাকে সম্ভবত এটি স্পষ্টভাবে এক্সকে বলতে হবে (সেই ব্যবহারকারীর কাছ থেকে এক্স-ক্লায়েন্টদের জন্য উন্মুক্ত)।


1
ধন্যবাদ. সুতরাং আমি মনে করি যেভাবে আমি আবিষ্কার করেছি সেগুলিই কেবল করণীয়।
লর্ড লোহ

এইটা কাজ করে! আমি এখন কেবলমাত্র মুখোমুখি হচ্ছি তা হল আমার কোনও মানক আউটপুট নেই। কীভাবে সমাধান করবেন? যেমন sudo nice -n 19 su -c $(echo "test")কোনও আউটপুট দেয় না।

আমার খারাপ, আপনাকে যা করতে হবে sudo nice -n 19 su -c "echo 'test'"' When you want to run a function in su কমান্ড -c do` দেখুন stackoverflow.com/a/3727572/2522849
DrumM

8

আরও এক ধাপ @ জোর্ডান, এখানে sudo nice -n -xx su <username> -c matlabহ্যাকের বিরুদ্ধে মার্জিত সমাধান রয়েছে

দ্রষ্টব্য: ব্যবহারকারীর নাম = সিড , ম্যাট্লাব মেটা-ডেটা দির = / ভের / লিব / মতলব , আপনার ইচ্ছায় সুন্দর = -10 পরিবর্তন

  1. ম্যাটল্যাব মেটা-ডেটা ডির তৈরি করুন (PERPARE)

    sudo mkdir /var/lib/matlab

  2. ম্যাটল্যাব এবং ডান পার্সিমিসন চালু করতে নির্দিষ্ট ব্যবহারকারী যুক্ত করুন

    sudo useradd -d / var / lib / matlab sid
    sudo chown sid: sid / var / lib / matlab
  1. ব্যবহারকারী (sid) পাসওয়ার্ড সেট করুন

    sudo passwd sid

  2. /Etc/security/limits.conf এ নিম্নলিখিত যুক্ত করুন

    sid - priority -10

  3. লগইন স্বয়ংক্রিয় করতে ssh- কী সেটআপ করুন এবং অনুলিপি করুন (বিকল্প)

    ssh-keygen -t rsa #flaing key passwd মিস্ক   
    ssh-copy-id sid @ লোকালহোস্ট # এসিডের পাসডব্লিউড ব্যবহার করে
  1. ম্যাটল্যাব শেল মোড়ক তৈরি করুন ( নীরব ব্যর্থ ইআরআর ঠিক করুন )
    sudo -i
    বিড়াল> / usr / স্থানীয় / বিন / wmatlab mat
    #! / বিন / বাশ -
    # ম্যাটল্যাব চালু করার জন্য একটি মোড়ক
    / usr / স্থানীয় / ম্যাটল্যাব / <রূপান্তর> / বিন / মতলব -ডেস্কটপ
    ফাইলের শেষে
    chmod + x / usr / স্থানীয় / বিন / wmatlab
  1. আজুস্ট সিডের লগইন শেল

    sudo usermod -s /usr/local/bin/wmatlab sid

  2. এক্সফোর্ডের সাথে এসএসএস ব্যবহার করে মতলব শুরু করুন

    ssh -X sid@localhost


2
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত।
user47093

4

আমি খুঁজে পেয়েছি ফাইলটি সংশোধন করে এটি করা যেতে পারে /etc/security/limits.conf(কমপক্ষে কিছু লিনাক্স ডিস্ট্রোজে)। আমার ক্ষেত্রে, আমি কেবল যোগ করেছি

#<domain> <type> <item> <value> my_user - nice -20

তাহলে আপনি কার্যকর করতে পারেন

nice -n -20 matlab


এই পরিবর্তনটি করার পরে, লগ আউট / আবার হওয়া উচিত: unix.stackexchange.com/q/108603/247665
শানেব

2

@ জর্ডানম যেমন ড্রপ সুডো বলেছে। আপনার নিজের প্রক্রিয়াগুলিকে নিম্ন অগ্রাধিকার দেওয়ার জন্য আপনি সুন্দর করতে পারেন:

nice -20 matlab

কোন sudo


এটি কার্যকর হয়নি। system('ps a -o pid -o comm -o nice')আমাকে পেয়েছে 13580 MATLAB 19- এমএটিএলবিব সর্বোচ্চের পরিবর্তে সর্বনিম্ন অগ্রাধিকার নিয়ে চলছে। আমার প্রশ্নটি ছিল কীভাবে অগ্রাধিকার বাড়ানো যায় এবং এটি হ্রাস করা যায় না।
লর্ড লোহ

এ ছাড়া sudoএটি সঠিক কমান্ড - nice -n -20 matlabএবং এটি আউটপুট nice: cannot set niceness: Permission denied। মতলব শুরু হয় এবং দুর্দান্ত মান 0
লর্ড লোহ।

3
ওপি অগ্রাধিকার (নেতিবাচক সুন্দর) বাড়াতে চায় না , মানে। পুরানো স্বরলিপিটিতে "দুর্দান্ত --20 ম্যাথলব" (ডাবল -), নতুনটিতে "দুর্দান্ত -n -20 ম্যাথল্যাব"। শুধুমাত্র মূলটি নেতিবাচক সুন্দর-মান ব্যবহার করতে পারে।
বার্ড কোপ্পেরুদ

1
সিএপিএসওয়াইএস_নাইস ওপেনটিকে মূল সুযোগগুলি ছাড়াই এটি করার অনুমতি দেয়, তবে এটি লিনাক্সের ক্ষমতাগুলি আবিষ্কার করা জড়িত (এমন কিছু লোক বোঝে না এবং এটি তার মূল্য থেকে বেশি কাজ হতে পারে)। আমি এটি সম্পূর্ণতার জন্যই উল্লেখ করেছি।
ব্র্যাচলে


1

পাম আপনাকে গ্রুপ প্রতি তার কনফিগারেশন ফাইলের উপর সীমা নির্ধারণ করতে দেয়:

@gnnice হার্ড অগ্রাধিকার -20

@ গ্র্নাইস হার্ড -20

এবং নিশ্চিত করুন যে গ্রুপটি প্রক্রিয়াটি গ্রানাইসে চলছে।


1

ব্যবহারকারীকে sudoers এ যুক্ত করুন (আসলে, /etc/sudoers.d এ একটি নতুন ফাইল, তবে এটি একই ভিত্তিতে):

niceuser ALL=NOPASSWD:/usr/bin/nice

তারপরে, "দুর্দান্ত" হিসাবে:

niceuser@localhost $ sudo nice -n -10 command...

এবং এটি আমার যা প্রয়োজন তা করে (এটি আমার ব্যবহারকারী এখন {কমান্ড ...} এর অগ্রাধিকার বাড়িয়ে তুলতে পারে)। এটি একাধিক ব্যবহারকারী, ইত্যাদি সমর্থন করে - man 5 sudoersবিশদ জন্য ব্যবহার করুন।


4
এটি এখনও মূল হিসাবে কমান্ড চালায়, যা পোস্টার এড়াতে চেষ্টা করছে।
কাইল বাট

1

আর একটি সম্ভাব্য বিকল্প (সহজ, তবে কম সুরক্ষিত) হ'ল niceএক্সিকিউটেবলের জন্য সেটুইড / সেটগিড অনুমতি সক্ষম করা ।

sudo chmod +s /usr/bin/nice

setuid ফাইল ব্যবহারের সময় ফাইলের মালিকের কার্যকর ইউআইডি (এই ক্ষেত্রে root) কার্যকর করতে পারে এমন কোনও ব্যবহারকারীর দায়িত্ব অর্পণ করুন, সুতরাং এটি সেই ব্যবহারকারী হিসাবে চলমান সমান। সেটগুইড কার্যকর জিআইডির জন্য একই কাজ করে।


অথবা আপনি এটি আরও সুরক্ষিতভাবে করতে পারেন:

# create a system group named `nice'
groupadd -r nice

# set the owner group for `nice' executable
chgrp nice /usr/bin/nice

# disallow other users to run `nice`
chmod o-x /usr/bin/nice

# allow anyone who are able to execute the file gain a setuid as root
chmod u+s /usr/bin/nice

# add your user to the group
usermod -a -G nice <your-user-name>

নতুন গোষ্ঠী কার্যকর হওয়ার জন্য আপনার অ্যাকাউন্টটি পুনরায় লগইন করা দরকার সাবধান।

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