গ্রাফিকভাবে একটি ব্যাশ স্ক্রিপ্টে পাসওয়ার্ড জিজ্ঞাসা করুন এবং ডিফল্ট sudo সময়সীমা সেটিংস ধরে রাখুন


9

sudo -A(SUDO_ASKPASS) বিকল্প দৃশ্যত কারণ সময়সীমার (যেমন, timestamp_timeout) সেটিং হারান sudo।

আমি সুডো-এ বিকল্পটি ব্যবহার করতে চাই তবে আমি ব্যাশ স্ক্রিপ্টে ডিফল্ট সময়সীমা (উদাহরণস্বরূপ, উবুন্টুতে 15 মিনিট) ধরে রাখতে চাই। আমি নিরাপদে এবং জিইউআই ডায়ালগে ব্যবহারকারীর পাসওয়ার্ড জানতে চাই, তবে আমি কেবল আমার স্ক্রিপ্টের জন্য একবার অনুরোধ করতে চাই (50+ বার নয়)।

তদ্ব্যতীত, আমি আমার সম্পূর্ণ স্ক্রিপ্টটি মূল ব্যবহারকারী হিসাবে চালাতে চাই না কারণ আমি কেবল এটি একটি খারাপ ধারণা বলে মনে করি। তদুপরি, আমার স্ক্রিপ্ট দ্বারা নির্মিত ফাইলগুলির ক্ষেত্রে এই ক্ষেত্রে ভুল মালিকানা রয়েছে।

এটি ডিফল্ট সময়সীমা ধরে রাখলে sudo -A বিকল্পটি আমার পক্ষে কাজ করবে।

সুডো ম্যানুয়াল থেকে:

বিকল্প: ‑এ

সাধারণত, যদি sudo একটি পাসওয়ার্ড প্রয়োজন হয়, এটি এটি ব্যবহারকারীর টার্মিনাল থেকে পড়বে। যদি (A (অ্যাসপাস) বিকল্পটি নির্দিষ্ট করা থাকে তবে ব্যবহারকারীর পাসওয়ার্ড পড়ার জন্য একটি (সম্ভবত গ্রাফিকাল) সাহায্যকারী প্রোগ্রাম কার্যকর করা হয় এবং স্ট্যান্ডার্ড আউটপুটে পাসওয়ার্ড আউটপুট দেয়। যদি SUDO_ASKPASS এনভায়রনমেন্ট ভেরিয়েবল সেট করা থাকে তবে এটি সহায়ক প্রোগ্রামের পথ নির্দিষ্ট করে। অন্যথায়, যদি /etc/sudo.conf এ জিজ্ঞাসা কর্মসূচি নির্দিষ্ট করে এমন একটি লাইন থাকে তবে সেই মানটি ব্যবহৃত হবে। উদাহরণ স্বরূপ:

# Path to askpass helper program
Path askpass /usr/X11R6/bin/ssh-askpass

বিটিডাব্লু, কেডেসুডোতেও একই সমস্যা রয়েছে - একই স্ক্রিপ্টের ঠিক এক সেকেন্ড পরে হলেও, প্রতিটি বার যখন এটি বলা হয় তখন পাসওয়ার্ডের প্রয়োজন হয়।

আমি কুবুন্টু 12.04 64 বিট ব্যবহার করছি।

সমাধানের সমস্ত অংশের পূর্ণ কার্যকারিতা উদাহরণ এখানে। এখানে বাশ স্ক্রিপ্ট, এখানে প্রস্তাবিত একটি "মায়াস্কপাস" স্ক্রিপ্ট এবং একটি ".ডেস্কটপ" ফাইল রয়েছে। পুরো জিনিসগুলি 100% জিইউআই হওয়া উচিত (কোনও টার্মিনাল মিথস্ক্রিয়া নেই), সুতরাং .ডেস্কটপ ফাইলটি প্রয়োজনীয় (আফাইক)।

$ cat myaskpass.sh 
#!/bin/bash
kdialog --password "Please enter your password: "
exit 0


$ cat askpasstest1.desktop 
#!/usr/bin/env xdg-open
[Desktop Entry]
Comment=SUDO_ASKPASS tester1
Exec=bash /home/user/test/askpasstest1.sh
GenericName=SUDO_ASKPASS tester1
Name=SUDO_ASKPASS tester1
NoDisplay=false
Path[$e]=
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
Categories=Application;Utility;
X-KDE-SubstituteUID=false
X-KDE-Username=

এবং নিজেই একটি পরীক্ষা স্ক্রিপ্ট। এই সমাধানটি ব্যবহার করার সময় এটি একবারে আপনার পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে।

#!/bin/bash

sudo -k
SUDO_ASKPASS="/home/user/test/myaskpass.sh" sudo -A touch filemadeas_askpass1
touch filemadeas_regularuser1
SUDO_ASKPASS="/home/user/test/myaskpass.sh" sudo -A touch filemadeas_askpass2
touch filemadeas_regularuser2
ls -la filemadeas* > /home/user/test/fma.log
kdialog --title "Files Created" --textbox /home/user/test/fma.log 640 480
sudo rm filemadeas_*
rm fma.log

exit 0

2
কি gksudoএখানে একটি বিকল্প? linux.die.net/man/1/gksudo
SLM

আমি কে-ডি-তে থাকি, তাই গিক্সুডো আমার পক্ষে কোনও বিকল্প নয়, তবে আমাকে বলা হয়েছিল যে এটি কেডেসুডোর মতোই কাজ করে। kdesudoআমি উপরে বর্ণিত একই সমস্যায় ভুগছি। আমি এর sudo -Aবিকল্প হিসাবে পরীক্ষা করছিলাম kdesudoএবং এটি আমার পরিস্থিতির পক্ষে ভাল তবে এটি সময়সীমা ইস্যুটি সমাধান করে না (কমপক্ষে এখনও পর্যন্ত)।
মাউন্টেনএক্স

উত্তর:


7

আমি এটি আমার বাশ স্ক্রিপ্টে যুক্ত করছি:

# ask for password up-front.
sudo -v
# Keep-alive: update existing sudo time stamp if set, otherwise do nothing.
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &

এটি এখানে পেয়েছে:

/server/266039/temporarlly-increasing-sudos-timeout-for-the-duration-of-an-install-script

https://gist.github.com/cowboy/3118588

আমি আমার প্রধান স্ক্রিপ্ট আরম্ভ করার জন্য অন্য স্ক্রিপ্ট ব্যবহার করি এবং আমি সেই সহায়ক স্ক্রিপ্ট চালু করতে একটি .ডেস্কটপ ফাইল ব্যবহার করি। এটি খুব সোজা নয়, তবে এটি 100% জিইউআই কাজ করা যায়। আমি এখনও নিখুঁত সমাধান খুঁজছি, কিন্তু এটি আপাতত কৌশলটি করছে is


1

গিক্সুডো কেমন ?

$ gksudo your_app_launcher.sh

প্রশাসকের পাসওয়ার্ডটি নিরাপদে প্রবেশের জন্য এটি কোনও গ্রাফিকাল ডায়ালগ দেখায়।

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