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
kdesudo
আমি উপরে বর্ণিত একই সমস্যায় ভুগছি। আমি এর sudo -A
বিকল্প হিসাবে পরীক্ষা করছিলাম kdesudo
এবং এটি আমার পরিস্থিতির পক্ষে ভাল তবে এটি সময়সীমা ইস্যুটি সমাধান করে না (কমপক্ষে এখনও পর্যন্ত)।
gksudo
এখানে একটি বিকল্প? linux.die.net/man/1/gksudo