আমি কীভাবে sudo su এবং ডিরেক্টরি পরিবর্তন করতে পারি?


13

আমি এমন একটি উপাধি তৈরি করতে চাই যা এই জাতীয় কিছু করে:

alias userYYY='sudo su userYYY; cd /a/path/that/only/userYYY/has/access'

সুতরাং আমার কমান্ড লাইন থেকে, আমি একটি সুডো ব্যবহারকারীর সাথে লগ ইন করছি এবং আমি উপনামটি টাইপ করতে চাই userYYYযাতে আমার শেলটি এখন লগইন হয় userYYYএবং pwdহয় /a/path/that/only/userYYY/has/access

আমি এটা কিভাবে করবো? এটি userYYYকিছু প্রক্রিয়া চালানোর জন্য, এবং এর বাড়িতে অবশ্যই কিছু থাকতে হবে। তাই, আমি এর ব্যবহার করে এর its হোম পরিবর্তন করার চেষ্টা করেছি:

sudo usermod -m -d /a/path/that/only/userYYY/has/access userYYY 

এবং তারপরে আমার শ্যুড থেকে আমার সূডার ফাইলটি দিয়েছিলাম sudo su userYYY। তবে তা কার্যকর হয়নি। কেবলমাত্র এটিই কাজ করেছিল sudo su -l userYYYYতবে এটি আমার আসল শেল ( -bash-4.1$ ....) এর ভিতরে একটি নতুন বাশ খুলল ।

সংক্ষেপে, আমি যা চাই তা হ'ল আমার শেলটিতে 2 টি লাইন লিখতে না পারা:

sudo su userYYY
cd /a/path/that/only/userYYY/has/access

কোন ধারনা?

উত্তর:


10
alias userYYY='sudo su userYYY -c "cd /a/path/that/only/userYYY/has/access; /bin/bash"'

ঠিকঠাক কাজ করছে বলে মনে হচ্ছে, তবে কীভাবে এই ত্রুটিটি সরানো যায় তা নিশ্চিত নয় বা এটির কোনও সমস্যা। উবুন্টু 14.04LTS ব্যবহার করে, লক্ষ্য করা গেছে যে ডিবিয়ান নিয়ে একটি সমস্যা হয়েছিল ...bash: cannot set terminal process group (13964): Inappropriate ioctl for device\nbash: no job control in this shell
Sonjz

1
আসলে, কিছুক্ষণ ব্যবহার করার পরে, আমি লক্ষ্য করেছি যে টার্মিনালটি এই পদ্ধতিটি ব্যবহার করে বেশ ঘন ঘন নিহত হয় (নিয়মিতভাবে প্রায় 15-30 মিনিটের সাথে সংযোগ বিচ্ছিন্ন করুন, নিয়মিতভাবে আমার টার্মিনাল সংযোগ বিচ্ছিন্ন হওয়ার আগে 6 ঘন্টা
বেগে যায়

কেবল এটি খনন করা, এই আচরণটি একটি সুরক্ষার স্থিরতার
Sonjz

এই সাহায্য করেছে আমাকে আমার সম্পাদনা .bashrcকরার জন্য ফাইল sudoতারপর cdযেখানে শুধু কাজ করা হয় নি 2 পৃথক লাইন তার হিসাবে।
রোজা

2

একটি বিকল্প ~/.bashrcলক্ষ্য ব্যবহারকারীর সম্পাদনা এবং cdসেখানে যুক্ত করা হবে:

cd /a/path/that/only/userYYY/has/access

0

সংক্ষিপ্ত উত্তর - আপনি পারবেন না। sudo suএকটি নতুন শেল যা আগেই পায় থেকে বেরিয়ে যেতে হবে শুরু cdকমান্ড।


0

আমার জন্য একটি সংমিশ্রণ sudoএবং screenকাজ করেছে:

sudo -iu vagrant screen -mS npm_install bash -c 'cd /vagrant && npm install'

এই কমান্ডের প্রথম পরিবর্তন vagrantব্যবহারকারী। তারপরে vagrantডিরেক্টরিটি পরিবর্তন করে /vagrantএবং সম্পাদন করে npm install


0

আমি জানি এটি মূল প্রশ্নের চেয়ে কিছুটা আলাদা, তবে নীতি নিষিদ্ধ করার সময় কোনও পাসওয়ার্ড টাইপ না করেই আলাদা ব্যবহারকারী হিসাবে কমান্ড চালানো ধারণা sudo su <user> -c

sudo -u userYYY -- sh -c "cd /a/path/that/only/userYYY/has/access; /bin/bash"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.