انجمنهای فارسی اوبونتو
کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: رسول سعیدنژاد در 08 اسفند 1393، 03:02 بظ
-
سلام دوستان.
سرچ زدم ولی چیز خاصی دستگیرم نشد یا توی گوگل همه جا در مورد ورد داکیومنت نوشته بود.
ولی؟
من میخوام مثلا یه کلمه رو توی یه فایل تکست رمزنگاری یا مخفی کنم.
مثلا توی bashrc یه Aliasدارم که یه سری کد رو با دستور sudo اجرا می کنه و مسلما باید رمز رو هم داخل اون فایل بذارم. خب یکی دیگه ممکنه بشینه پای سیستم و اون bashrc رو باز کنه و رمز منو ببینه. یا مثلا رمزم توی کرون گذاشتم (بدون دسترسی ریشه) و یکی دیگه ممکنه راحت بهش دسترسی داشته باشه.
1) چچوری میتونم اون رمزم رو توی فایل تکست یا کرون و ... رمزنگاری یا مخفی کنم؟
2) یا با چه نرم افزاری میشه روی کرون (اونی که دسترسی ریشه نداره) یا فایل های دیگه، رمز گذاشت؟
مرسی ;)
-
من نگرفتم دقیقا چی می خوای
الان می خوای که داخل یک فایل متنی یک عبارت رمز بشه بعد کسی هم با حساب خودت نتونه ببینه؟ این یعنی اینکه یک طوری رمز کنی که خودت هم(حساب کاربری ات) ندونی؟ آره؟
راه اصولی اش رو نمی دونم ولی می تونی کاری کنی که رمز رو از توی یک فایل دیگه بخونه که اون فایل رو هم موقتی خودت اجرا کنی
من راه اصولی بلد نیستم (یعنی کلا دوست دارم کارهایی رو که خودم می تونم رو خودم انجام بدم) ولی اگر بیشتر توضیح بدی شاید راهی به ذهنم برسه؟
-
الان می خوای که داخل یک فایل متنی یک عبارت رمز بشه بعد کسی هم با حساب خودت نتونه ببینه؟
دقیقا! یا رمز بشه یا مخفی بشه.
چون اینجوری بازم خودم اونو میدونم و مشکلی برام درست نمیشه.
مثلا:
alias sttor="echo 'PASS' | sudo -S service tor start"
خب من به جای PASS، رمز خودمو میدم. ولی هرکی این فایل بش رو باز کنه رمز من آماده در اختیارشه. یا حتی اگه کسی بخواد 1٪ منو هک کنه ;)
چجوری بیام همون کلمه PASS رو رمزنگاری کنم که فایل تکست بدونه اون قسمت چی نوشته و حتی ترمینال هم بدونه ولی موقع نمایش دادن، یه چیز دیگه نشون بده. یا کلا توی سیستم جوری تنظیم بشه که هرجایی من رمز سیستم (یعنی جایی تنظیم کنم که فلان کاراکتر براش تنظیم اعمال بشه) رو وارد کنم، کلا نشونش نده یا مثل مثال قبل، رمزنگاری بشه. ;)
-
خب چرا دستور رو با کرون و با دسترسی روت تعریف نمیکنی؟ راحت تر نیست؟
-
خب چرا دستور رو با کرون و با دسترسی روت تعریف نمیکنی؟ راحت تر نیست؟
بعضی از دستورات رو کلا نمیشه توی کرون داد. یعنی نیازی به زمان بندی نیست اصلا. بیشتر دستوراتم رو Alias می نویسم واسه سریع تر به نتیجه رسیدن ;) و چون با دسترسی ریشه باید اجرا بشن باید رمز سیستم رو بذارم توی فایل بش.
ولی بحث کرون، حق با شماست. کار ساده تر میشه ولی الان یادم نیست برای چی نمیخواستم از کرون با دستور ریشه استفاده کنم ;D حتما یه دلیلی بوده :oops: حالا فکر میکنم باز اگه یادم اومد و (نسبت به زمانی که الان هستم) منطقی نبود، همه رو میذارم توی کرون ریشه. ;)
ولی برای فایل بش باز این سوال پابرجاس ;)
-
شما میتونی پسورد رو بریزی توی یک فایل و به دستوری که نیاز به دسترسی ریشه داره بگی از توی اون بخونه پسورد رو . خب حالا باید بری سراغ حل این :
1- یک فایل رو انکریپت کن
2- فایل انکریپت شده رو بخون
درسته؟ من میرم سراغ جوابش و اگه چیزی فهمیدم میگم :)
-
اینا رو ببین :
http://stackoverflow.com/questions/3318853/hide-encrypt-password-in-bash-file-to-stop-accidentally-seeing-it
http://unix.stackexchange.com/questions/121132/how-to-use-encrypted-password-in-shell-script-aix
http://www.linuxquestions.org/questions/linux-general-1/can-i-encrypt-a-shell-script-828096/
-
ببین من احساس می کنم که چیزی که می خوای عملا تناقض داره . الان تو می خوای که فقط ترمینال و بش بفهمند و چیز دیگه ای نفهمند که خب نمی شه چون بش که تافته ی جدابافته نیست و اگر بش بتونه پس بقیه هم می تونند چون همشون تحت مجوز خودت اجرا می شوند
به نظرم بهترین کار اینکه پسورد رو از توی یک فایل بخونی و بعد حالا یا اون فایل رو با gpg رمز کنی یا بطور موقتی مثل پایپ که هرزمان که خواستی پسورد رو توی اون بریزی
:|
-
ببین من احساس می کنم که چیزی که می خوای عملا تناقض داره . الان تو می خوای که فقط ترمینال و بش بفهمند و چیز دیگه ای نفهمند که خب نمی شه چون بش که تافته ی جدابافته نیست و اگر بش بتونه پس بقیه هم می تونند چون همشون تحت مجوز خودت اجرا می شوند
به نظرم بهترین کار اینکه پسورد رو از توی یک فایل بخونی و بعد حالا یا اون فایل رو با gpg رمز کنی یا بطور موقتی مثل پایپ که هرزمان که خواستی پسورد رو توی اون بریزی
:|
چه میدونم والا! پس اون قضیه منتفیه؟
برای گرفتن رمز از یه فایل دیگه (که خب مسلما اون فایل هم ریسک داره ساختنش. آدم عاقل نمیاد رمزاش رو بذاره توی یه تکست توی هارد. میذاره به نظرتون؟؟ سوال من کلا اینه که کاری کنم رمز توی هارد نباشه یا رمز نگاری بشه یا مخفی بشه) رو تست می کنم ببینم چی میشه. مرسی ;)
با gpg هم کار نکردم تا حالا. باید ببینم چجوریه.
قضیه ی پایپ هم چجوری مثلا؟؟ یعنی فرض کنیم میخوایم توی ترمینال Alias رو بزنیم واسه خروجی گرفتن دستور. مثلا sttor رو بزنم واسه لود شدن تور. بعد یعنی توی ترمینال بعد از زدن sttor پایپ بزنم و رمز رو بدم؟؟ اینجوری؟ یعنی کل دستور توی بش باشه، فقط رمزش رو ننویسم و بیام توی ترمینال بنویسم. درسته؟؟
-
شما میتونی پسورد رو بریزی توی یک فایل و به دستوری که نیاز به دسترسی ریشه داره بگی از توی اون بخونه پسورد رو . خب حالا باید بری سراغ حل این :
1- یک فایل رو انکریپت کن
2- فایل انکریپت شده رو بخون
درسته؟ من میرم سراغ جوابش و اگه چیزی فهمیدم میگم :)
موضوع اینه که من نمیخوام ردی از پسوردم توی هارد باشه. اگه بخوام بریزمش توی یه فایل و بعد اونو بخورونم به دستور خب چه فرقی با گذاشتن رمز توی همون دستور داشت؟ ;)
فقط این وسط اون فایلی که دستور توش گذاشتم قراره انکریپت بشه؟؟ خب نمیشه به جای اینکارا، خود فایل bashrc رو انکریپت کرد؟ که دستورم راحت توی فایل باشه و کسی هم بدون رمز سیستم نتونه واردش بشه؟ ;)
-
الان یادم اومد واسه چی از کرون ریشه استفاده نمی کردم. ;D
سوالش رو نوشتم توی فروم ;)
http://forum.ubuntu.ir/index.php/topic,111957.0.html (http://forum.ubuntu.ir/index.php/topic,111957.0.html)
-
من هنوز شک دارم که درست قضیه رو فهمیده باشم
البته مجبور نیستی توی فایل تکست بنویسی می تونی توی یک فایل باینری بنویسی (به عنوان یک برنامه مثلا بازبان c ) .
منظورم از پایپ یک چیزی مثل این بود:
mkfifo /tmp/pass
cat /tmp/pass | sudo -S foo
حالا برنامه منتظر می مونه تا پسورد رو وارد کنی برای وارد کردن هم این رو باید بزنی (البته اینکار رو می شه با برنامه باینری کرد یعنی برنامه باینری توی فایل بنویسه
echo PASS >> /tmp/pass
حالا به محض اینکه پسورد توسط نرم افزار خونده بشه ، نابود می شه و در اصل پسورد ذخیره نمی شه فقط از این برنامه به اون برنامه می ره
می دونی مشکل کار کجاست ؟ مشکل اینجاست که می خوای یک چیزی رو رمز کنی ولی نمی خوای کلید رمز رو جایی ذخیره کنی و بعدش می خوای که کامپیوتر خودش بفهمه! و از طرفی خودت هم نمی خوای رمز رو وارد کنی. آره ؟ درست فهمیدم؟
-
البته مجبور نیستی توی فایل تکست بنویسی می تونی توی یک فایل باینری بنویسی (به عنوان یک برنامه مثلا بازبان c ) .
از این شوخیا با من نکن خداوکیلی ;D
منظورم از پایپ یک چیزی مثل این بود:
خب اونوخ کل این تیکه رو باید همیشه وارد کنم؟؟ خب اگه اینجوری باشه همون دستور رو کامل میزنم دیگه. ;D نیازی به این کارا نیست.
می دونی مشکل کار کجاست ؟ مشکل اینجاست که می خوای یک چیزی رو رمز کنی ولی نمی خوای کلید رمز رو جایی ذخیره کنی و بعدش می خوای که کامپیوتر خودش بفهمه! و از طرفی خودت هم نمی خوای رمز رو وارد کنی. آره ؟ درست فهمیدم؟
آره نمیخوام کلید رمز جایی ذخیره بشه. فقط میخوام اون کلید رمز خودش رمز نگاری بشه یا کلا از توی فایل مخفی بشه.
کامپیوتر باید خودش بفهمه دیگه. مثل اون کدی که توی html میذارن واسه جلوگیری از برداشتن ایمیل های توی کد توسط شرکت ها. شرکت ها دیگه ایمیل رو نمی بینن ولی خود مرورگر می بینه و با کلیک کاربر، ایمیل فعال میشه. پس همین روش هم باید برای سیستم وجود داشته باشه. یه رمز رو دیگران نتونن بردارن ولی خودش بتونه شناسایی کنه ;)
اگه رمز داخل فایل باشه (مثل الان که توی بش هست) دیگه نیازی به وارد کردنش نیست.
ولی اگه قرار باشه دستور رو یه جا دیگه بدم و بعد مخففش رو با رمز بنویسم، تقریبا به جواب رسیدم ;)
-
ببین الان اگر که کلید رمز رو رمز کردی باز هم برای رمزگشایی اون رمز (یاآشکارسازی) بازهم نیاز داری که کلید دوم رو در یکجایی بزاری. که اینطوری هم هر نرم افزاری می تونه اونو پیدا کنه
:)
در مورد اون مثال هم که نوشتی راستش من نمی دونم چیه(html بلد نیستم) ولی چیزی که فهمیدم اینکه اون فقط نشون نمی ده نه اینکه نباشه یعنی اگر سورس اون صفحه رو با یک ویرایشگر متن باز کنی توش ایمیل ها هست.
-
ببین الان اگر که کلید رمز رو رمز کردی باز هم برای رمزگشایی اون رمز (یاآشکارسازی) بازهم نیاز داری که کلید دوم رو در یکجایی بزاری. که اینطوری هم هر نرم افزاری می تونه اونو پیدا کنه
:)
در مورد اون مثال هم که نوشتی راستش من نمی دونم چیه(html بلد نیستم) ولی چیزی که فهمیدم اینکه اون فقط نشون نمی ده نه اینکه نباشه یعنی اگر سورس اون صفحه رو با یک ویرایشگر متن باز کنی توش ایمیل ها هست.
نه توی کدهای html هم نشون نمیده. یعنی میاییم به جای @ از یه کد استفاده می کنیم که مرورگر هم اون کد رو @ شناسایی می کنه ولی توی کد هیچ اثری از @نیست. یعنی دو چیز هستن که یک معنی رو میدن برای مرورگر. شما چه بنویسی @ و چه بنویسی @ برای مرورگر @ ترجمه میشه. ولی همین @ باعث میشه شرکت های دیگه نتونن ایمیل رو از توی کد بردارن چون @نداشته. گرفتی چی شد؟ ;)
-
گرفتم!
:)
اگر در این حد می خوای که می تونی توی یک فایل بنویسی بعد encode اون فایل رو بزار روی QUOTED-PRINTABLE که توی برنامه ی recode می شه qp .
اونوقت نوشته هات اینطوری می شه:
=D2=A5=33=FF
مثلا:
سلام
می شه
=D8=B3=D9=84=D8=A7=D9=85
البته این برای حروف انگلیسی به طور پیشفرض کاربرد نداره . فقط می خوام ببینم همین طوری برات خوبه؟
-
خب ببین من در اصل یکی از این حالت ها رو نیاز داشتم
1) اون کلمه (مثلا pass) توی اون فایل متنی به همون شکل دیده نشه. مثلا به جا Pass بنویسه چه میدونم #43%^ یا هر چیز مشابه این که باعث بشه هویت اصلی اون کلمه دیده نشه ولی لینوکس بتونه اون کلمه رو تشخیص بده و متوجه بشه که رمز همون pass هست
2) اون کلمه توی فایل متنی باشه ولی با چشم غیرمسلح دیده نشه ;D یعنی حضور داشته باشه ولی توی فایل دیده نشه.
3) خود فایل انکریپت بشه و هر کسی (حتی خودم) هم نتونم راحت بازش کنم. برای باز کردنش رمز ازم بخواد. مثلا اینجا بتونم bashrc رو رمزنگاری کنم که موقع دابل کلیک کردن روی فایل (حالا با لود شدن توسط هر برنامه ای) ازم رمز بخواد. (ولی خب مسلما دیگه توی ترمینال رمز نخواد چون بدبخ میشم دیگه ;D)
4) همین جریانی که شما میگین. یعنی رمز رو بدم یه جای دیگه و اونو ایمپورت کنم توی دستور داخل اون فایل متنی که از قراره معلوم باید انکریپت بشه.
فقط یه سوال راجب به آخرین شماره:
اون متنی که مد نظر من هست (اینجا مثلا pass) توی هر فایلی که باشه (طبق این چیزایی که گفتین) به صورت رمزنگاری شده دیده میشه؟؟ بعد توی ترمینال رمزش شکسته میشه و کلمه ی واقعی رو نشون میده؟؟ یا نه توی فایلی که اون کلمه هست، کاملا نوشته شده فقط توی bashrc (برای مثال) رمزی نشون میده؟
-
1- برای اینکه یک کلمه (رشته - چند بایت داده ) یه جور دیگه نشون داده بشه دو جور میشه :
یا اینکه با یک روش گام به گام به رشته ای برسی که برگشت پذیر نباشه . سپس نرم افزار میاد به جای اینکه رمز رو با آنچه تو فایل هست بسنجه میاد با اون رشته برگشت ناپذیر میسنجه
http://en.wikipedia.org/wiki/MD5
http://en.wikipedia.org/wiki/SHA-1
یا اینکه این رشته دوم برگشت پذیر باشه که نرم افزار بیاد رشته به دست اومده رو با روش های گام به گام به رشته نخستین برگردانه
http://en.wikipedia.org/wiki/Cipher
=============================
شما چی رو داری قایم میکنی ؟
فیلم *وپر ؟
-
1- برای اینکه یک کلمه (رشته - چند بایت داده ) یه جور دیگه نشون داده بشه دو جور میشه :
یا اینکه با یک روش گام به گام به رشته ای برسی که برگشت پذیر نباشه . سپس نرم افزار میاد به جای اینکه رمز رو با آنچه تو فایل هست بسنجه میاد با اون رشته برگشت ناپذیر میسنجه
http://en.wikipedia.org/wiki/MD5
http://en.wikipedia.org/wiki/SHA-1
یا اینکه این رشته دوم برگشت پذیر باشه که نرم افزار بیاد رشته به دست اومده رو با روش های گام به گام به رشته نخستین برگردانه
http://en.wikipedia.org/wiki/Cipher
=============================
شما چی رو داری قایم میکنی ؟
اون تیکه ی اول جمله هات که بالای فوق دیپلم بودن ;D
تیکه آخر هم به شوخی گفتی یا جدی؟؟
فیلم چکارش به یه کلمه ی رمز توی یه فایل تکست؟؟ :o
من دستورات سیستم رو توی بش به صورت alias (چون طولانی ان) وارد می کنم و بهشون دستور مخفف میدم تا بعد راحت باشم. ولی بیشتر دستورات نیاز به دسترسی دارن و مجبورم رمزم رو توی فایل بش بنویسم. و هر کسی هم پشت سیستم من بشینه می تونه اون فایل رو باز کنه و رمز منو ببینه. میخوام کاری کنم که اگه بازش هم کرد رمز منو نبینه. یا اجق وجق ببینه یا کلا مخفی بشه و نبینه چیزی رو.
-
فعلا یه خورده قضیه حل شد.
هیچی دیگه اومدم اون echo "pass" | sudo ها رو از توی بش برداشتم. حل شد قضیه ;D
دستوراتم بازم خلاصه هستن ولی خب رمزشون رو بعد دستی میدم. برای دستی دادن رمز هیچ مشکلی نداشتم. فقط مشکلم این بود که رمز ها توی فایل نباشن. خب اونم با برداشتن اکو و ... حل شد. ;)
می مونه رمزهای توی کرون که لطفا برید به تاپیکی که جدید ساختم و ببینین اونو دیگه چجوری من باید حل کنم >:( ](*,)
;D
http://forum.ubuntu.ir/index.php/topic,111957.0.html (http://forum.ubuntu.ir/index.php/topic,111957.0.html)
-
1- برای اینکه یک کلمه (رشته - چند بایت داده ) یه جور دیگه نشون داده بشه دو جور میشه :
یا اینکه با یک روش گام به گام به رشته ای برسی که برگشت پذیر نباشه . سپس نرم افزار میاد به جای اینکه رمز رو با آنچه تو فایل هست بسنجه میاد با اون رشته برگشت ناپذیر میسنجه
http://en.wikipedia.org/wiki/MD5
http://en.wikipedia.org/wiki/SHA-1
یا اینکه این رشته دوم برگشت پذیر باشه که نرم افزار بیاد رشته به دست اومده رو با روش های گام به گام به رشته نخستین برگردانه
http://en.wikipedia.org/wiki/Cipher
=============================
شما چی رو داری قایم میکنی ؟
اون تیکه ی اول جمله هات که بالای فوق دیپلم بودن ;D
تیکه آخر هم به شوخی گفتی یا جدی؟؟
فیلم چکارش به یه کلمه ی رمز توی یه فایل تکست؟؟ :o
من دستورات سیستم رو توی بش به صورت alias (چون طولانی ان) وارد می کنم و بهشون دستور مخفف میدم تا بعد راحت باشم. ولی بیشتر دستورات نیاز به دسترسی دارن و مجبورم رمزم رو توی فایل بش بنویسم. و هر کسی هم پشت سیستم من بشینه می تونه اون فایل رو باز کنه و رمز منو ببینه. میخوام کاری کنم که اگه بازش هم کرد رمز منو نبینه. یا اجق وجق ببینه یا کلا مخفی بشه و نبینه چیزی رو.
سلام
اقا من اصلا تبهر ندارم و نمیدونم چجوری باید این کار رو بکنی اما یه فکر کوچولو به ذهنم رسید بهت میگم.
به نظر من بهتره برای سیستم تعریف کنی هر وقت رمزتو تو هر جایی (مثلا فایل های بش و غیره) وارد کردی با یک کاراکتر های مشخص جایگزین کنه منتها بدونه که هرکدوم از اون کاراکتر ها به کدوم کاراکتر رمز اشاره میکنه.امید وارم متوجه شده باشی(اخه خودمم نشدم) :P ;D
-
شما تو کافی نت زندگی میکنی ؟
دیگران تو دستگاهت سرک میکشن ؟
=======================
اون دو تایی که فرمودید بالای دیپلمه :
http://www.sarirservice.com/index.php?Module=SMMArticles&SMMOp=View&SMM_CMD=&PageId=182 (http://www.sarirservice.com/index.php?Module=SMMArticles&SMMOp=View&SMM_CMD=&PageId=182)
http://fa.wikipedia.org/wiki/%D8%A7%D8%B3%E2%80%8C%D8%A7%DA%86%E2%80%8C%D8%A7%DB%8C-%DB%B1 (http://fa.wikipedia.org/wiki/%D8%A7%D8%B3%E2%80%8C%D8%A7%DA%86%E2%80%8C%D8%A7%DB%8C-%DB%B1)
http://fa.wikipedia.org/wiki/%D8%A7%D9%85%E2%80%8C%D8%AF%DB%8C%DB%B5 (http://fa.wikipedia.org/wiki/%D8%A7%D9%85%E2%80%8C%D8%AF%DB%8C%DB%B5)
http://www.parsdata.com/articles/what-is-md5
به توضیح ها و روشنگری های فنی نوشته ها توجه نفرمایید . کلان قضیه را بگیرید
-
سلام
اقا من اصلا تبهر ندارم و نمیدونم چجوری باید این کار رو بکنی اما یه فکر کوچولو به ذهنم رسید بهت میگم.
به نظر من بهتره برای سیستم تعریف کنی هر وقت رمزتو تو هر جایی (مثلا فایل های بش و غیره) وارد کردی با یک کاراکتر های مشخص جایگزین کنه منتها بدونه که هرکدوم از اون کاراکتر ها به کدوم کاراکتر رمز اشاره میکنه.امید وارم متوجه شده باشی(اخه خودمم نشدم) :P ;D
سلام.
خب منم دقیقا همچین چیزی میخواستم. اینکه رمزم توی اون فایل به شکل دیگه ای در بیاد ولی سیستم بدونه که اون شکل عجیب غریب همون رمز سیستمه. یعنی یه جایی از سیستم تنظیم کنیم که رمز مثلا 6 رقمی من با فلان حروف هر جایی که بود به شکل یه رمز مثلا 8 رقمی با فلان حروف دیگه تبدیل بشه.
حالا که فعلا اون قضیه حل شد. الان گیر کرون شدم ;)
-
شما تو کافی نت زندگی میکنی ؟
دیگران تو دستگاهت سرک میکشن ؟
=======================
اون دو تایی که فرمودید بالای دیپلمه :
http://www.sarirservice.com/index.php?Module=SMMArticles&SMMOp=View&SMM_CMD=&PageId=182 (http://www.sarirservice.com/index.php?Module=SMMArticles&SMMOp=View&SMM_CMD=&PageId=182)
http://fa.wikipedia.org/wiki/%D8%A7%D8%B3%E2%80%8C%D8%A7%DA%86%E2%80%8C%D8%A7%DB%8C-%DB%B1 (http://fa.wikipedia.org/wiki/%D8%A7%D8%B3%E2%80%8C%D8%A7%DA%86%E2%80%8C%D8%A7%DB%8C-%DB%B1)
http://fa.wikipedia.org/wiki/%D8%A7%D9%85%E2%80%8C%D8%AF%DB%8C%DB%B5 (http://fa.wikipedia.org/wiki/%D8%A7%D9%85%E2%80%8C%D8%AF%DB%8C%DB%B5)
http://www.parsdata.com/articles/what-is-md5
به توضیح ها و روشنگری های فنی نوشته ها توجه نفرمایید . کلان قضیه را بگیرید
نه من توی کافی نت زندگی نمی کنم.
دیگران هم توی سیستمم سرک نمی کشن.
ولی یکی دوجا توی برنامه های سیستم، رمز کاربریم رو دادم و ممکنه (ممکنه) کسی بتونه از طریق اونا رمز سیستمم رو متوجه بشه (شاید 1 درصد یا کمتر همچین اتفاقی بیفته ;D ولی خب به امنیتم خیلی توجه می کنم همین طور به حریم شخصی) به خاطر همین موضوع، این تاپیک رو باز کردم.
الان هم قضیه ی بش حل شده و نیازی به انکریپت کردن های پیچیده ندارم. (که سوادشم ندارم. هرچند شما میگی کارت به نوشته های فنیش نباشه ولی خو نمیشه که!) فقط مونده دادن دستور های معمولی توی کرون ریشه که باید براش راه حلی پیدا کنم. اونم حل بشه دیگه فعلا مشکلی ندارم ;)
-
سلام
اگر یه سری دستورات خاص تو sudo طوری تنظیم کنید که برای یوزرتون پسورد نخواد راحت تر نیستین؟
-
سلام
اگر یه سری دستورات خاص تو sudo طوری تنظیم کنید که برای یوزرتون پسورد نخواد راحت تر نیستین؟
سلام. یعنی sudo رو ویرایش کنم و دستورات دلخواهم رو بذارم تو لیست سفید و رمز نخواد ازم؟؟ خب اونوخ ریسکش بالاس دیگه. نه؟ (البته چیز خاصی نیستن حتی اگه دیگران هم اونارو بزنن برای سیستم مفیده ;D)
-
دیگه تو ویندوز هر کی یه یوزر داره :D این دستورات فقط با یوزر خودتون بدون پسورد اجرا میشن چه ریسکی داره؟!
-
خب موضوع اینه که ممکنه یکی با همین یوزری که من الان توشم بیاد بشینه دستور sudo اجرا کنه ;) وگرنه باقی یوزر ها (یوزرهای سیستم، نه آدمای دور و برم) مسلما نمی تونن دست از پا خطا کنن ;D
خب حالا اگه بخوام سودو رو برای یوزر خودم (البته اگه برای دستورات مشخصی بتونم اینکارو بکنم نه هر دستوری که sudo داشت) اینجوری که شما میگی در بیارم، باید چکار کنم؟؟
بعد اگه اینکارو انجام بدم، توی کرون معمولی سیستم هم میتونم دستورات sudo دار رو بدون دادن رمز (چه توی خود کرون چه بعد توی ترمینال) وارد کنم؟؟ یعنی دستوراتی مثل خاموش شدن و ... توی کرون معمولی بدون مشکل اجرا میشن؟؟ ;)
-
اول اینکه تحت هیچ شرایطی نباید بزارید کسی با یوزر شما به سیتمتون دسترسی داشته باشه :P
سوال دوم خم بله مسلما الان رو سیستم دارم استفاده میکنم
قسمت command alliass برای خاموش کردن ... با قی قسمت هارو هم مطالعه کنید
https://help.ubuntu.com/community/Sudoers#Command_Aliases
-
دمت گرم.
کاشکی یه مثال هم میزدی. این توی راهنماش یه چندتا دستور از پیش آماده یاد داده مثل خاموش کردن و ... مثلا من بخوام دستور آپگرید رو بدم باید چیو کجا بزنم؟؟ ;)
-
مثل اون مثال خاموش کردن میتونید alias هایی برای apt-get تعریف کنید و اجازه اون alias برای حالت بدون پسورد برای یوزرتون بدین
یا روش ساده مثلا برای اپدیت مخازن
username ALL=NOPASSWD: /usr/bin/apt-get update
جای username نام کاربری خودتونو بذارید باقی دستورات هم دیگه راحت باشه فکر کنم
راستی فایل suduers فقط با این دستور ویرایش کنید مشکلی پیش نیاد
sudo visudo
-
مثل اون مثال خاموش کردن میتونید alias هایی برای apt-get تعریف کنید و اجازه اون alias برای حالت بدون پسورد برای یوزرتون بدین
اهان پس قاعده ی خاصی برای هر دستور نداره. ;)
جای username نام کاربری خودتونو بذارید باقی دستورات هم دیگه راحت باشه فکر کنم
اوکی. فقط یه سوال؟ این usr/bin که قبل از دستور میدی، جریانش چیه؟؟ یعنی هر دستوری بخوام بدم باید قبلش usr/bin بذارم؟؟ (آخه تا جایی که دیدم usr/bin داخلش برنامه ها و نرم افزار ها هستن. یعنی این دستورات هم تماما توی اون پوشه ان؟؟)
راستی فایل suduers فقط با این دستور ویرایش کنید مشکلی پیش نیاد
آره توی راهنماش دیدم و همین رو زدم.
مرسی ;)
سوال آخر؟؟
الان با این حساب، من دیگه توی کرون لازم نیست sudo بذارم برای دستوراتم؟؟ و همین که دستورم رو بدون sudo توی کرون معمولی بذارم کافیه؟؟ برای دستوراتی که sudo دارن ولی لوکیشنشون توی usr/bin نیست باید چه کنم؟؟ مثلا یه فایل بش توی هوم دارم که برای اجرا شدنش نیاز به sudo داره. اونو چجوری راش بندازم؟
-
چک کردم ولی جواب نداد. موقع خروجی دادن میگه که شما دسترسی روت نداری ](*,)
چیزی از قلم نیفتاده احیانا؟؟
kubuntu ALL=NOPASSWD: /usr/bin/apt-get upgrade
یعنی با sudo که میزنم ازم رمز میخواد.
بدون sudo که میزنم میگه دسترسی روت بده به دستورت ](*,)
-
مسیر فایل اجرایی ما هر جا هست اونو وارد میکنیم مثلا apt-get اونجاست اما یه سری از دستورات تو sbin هستند همین
به طور خلاصه دستورات ما تو ترمینال فایل اجرایی دارن یا بعضیشون اسکریپت هستن که قابلیت اجرا دارن ما مسیر اونارو مشخص میکنیم
اما سوال اخر
شما sudo برای دستوراتی که دسترسی ریشه میخوان میذارید اما تو این فایل کانفیگ برای دستورات ی مشخص مثل همین اپدیت گفتین sudo برای
یوزرتون پسورد نمیخواد پس دیگه لازم به وارد کردن پسورد با echo ندارید
دقت کنید اپدیت مخازن هنوز دسترسی ریشه لازم داره اما sudo برای این دستور برای یوزر شما پسورد نمیخواد
الان یه ترمینال جدید باز کنید وارد کنید
sudo apt-get update
میبینید که پسورد نمیخواد ....
برای اجرای اون فایل بش مثل همین مسیر باید مشخص کنید
-
طبق این الگو
blackout ALL=(ALL) NOPASSWD: /usr/bin/apt-get update
blackout ALL=(ALL) NOPASSWD: /usr/bin/apt-get upgrade
-
مسیر فایل اجرایی ما هر جا هست اونو وارد میکنیم مثلا apt-get اونجاست اما یه سری از دستورات تو sbin هستند همین
اوکی گرفتم ;)
شما sudo برای دستوراتی که دسترسی ریشه میخوان میذارید اما تو این فایل کانفیگ برای دستورات ی مشخص مثل همین اپدیت گفتین sudo برای یوزرتون پسورد نمیخواد پس دیگه لازم به وارد کردن پسورد با echo ندارید
ایول. اینجوری پس خیلی خوب میشه. دیگه نیازی به کرون ریشه ندارم. چون دستورات معمولی توی کرون ریشه اجرا نمیشن. (مگر با دستورات خاص که هنوز نمی دونم چجوریه)
دقت کنید اپدیت مخازن هنوز دسترسی ریشه لازم داره اما sudo برای این دستور برای یوزر شما پسورد نمیخواد
آره شرمنده حواسم نبود. فکر کردم دیگه نوشتن sudo نیاز نیست ;D
میبینید که پسورد نمیخواد ....
وقتی دستور رو زدم باز ازم رمز خواست. ](*,)
طبق این الگو
عین همین رو (با جایگزین کردن یوزر خودم) گذاشتم توی visudo ولی بازم موقع دستور دادن، ازم رمز میخواد. ](*,)
-
قایل و سیو کردین؟ اگر اره یه ریلاگ ری استارتی چیزی کنید
-
آره فایل رو سیو کردم. چون ادیتورش نانو بود. با نانو بلدم کار کنم ;D
باشه ریستارت می کنم سودو رو ببینم چی میشه. یا اگه نشد سیستم رو ریست میکنم یه بار. ;)
-
kubuntu@Rasubuntu:~$ sudo visudo
>>> /etc/sudoers: syntax error near line 21 <<<
sudo: parse error in /etc/sudoers near line 21
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
;D
چکارش کنم حالا؟؟ خخخخ
اومدم # یکیشون رو پاک کردم. بعد نانو هم گفت که اگه میخوای سیو کنی Q بزن. چون ریسک داره. در حالت عادی همش میخواست سیو نکنه. منم سیو کردم و پوف ;D
قبلا هم که سیو می کردم (بدون اینکه اون # مسخره رو بردارم) همه چیز راحت سیو میشد ولی تاثیری نداشت. الان که به فنا رفت. خخخ برم ببینم فایل اصلیش کجاس. ببینم میتونم بازش کنم یه جوری خخخخ
-
پستها رو کامل نخوندم، ولی روش کارت کلا اشتباهه. اگر میخوای، بگو دقیقا چه دستوری رو میخوای اجرا کنی تا راه حلش رو بهت بگم.
-
خداروشکر واسه روت هم رمز تعیین کرده بودم. رفتم توی su و فایل رو درست کردم. ;D وگرنه بدبخ شده بودم. خخخ بعد از ریست هم sudo درست نشده بود :D
بعد از ریست دستور رو هم تست کردم. بازم رمز میخواد ](*,)
-
پستها رو کامل نخوندم، ولی روش کارت کلا اشتباهه. اگر میخوای، بگو دقیقا چه دستوری رو میخوای اجرا کنی تا راه حلش رو بهت بگم.
ببنین قضیه ی رمز های توی فایل بش که منتفی شد. یعنی حل شد. به جای اینکه به alias هام echo بدم فقط دستور اصلی رو میدم و بعد رمز رو خودم دستی می زنم و مشکلی هم اصلا ندارم.
یعنی اون قضیه ی مخفی کردن/رمزنگاری کردن منتفی شد.
الان فقط مونده قضیه ی کرون که میخوام دستورات معمولی و ریشه ای رو یک جا داشته باشم. در حالت کلی یا باید دستورات معمولی و دستورات ریشه ای همراه با echo رو بذارم توی کرون معمولی. یا باید دستورات معمولی رو بذارم توی کرون معمولی و دستورات ریشه ای رو بذارم توی کرون ریشه ای که خب از اونجایی که دستورات من پشت سر هم اجرا میشن پس نمی تونم اینکارو بکنم.
خواستم روشی پیدا کنم که دستورات معمولی هم توی کرون ریشه اجرا بشن که خب مجتبی جان روشی رو گفتن که از طریقش میشه همون دستورات ریشه ای رو بدون رمز دادن توی کرون معمولی اجرا کرد. که الان در شرف تست کردن و جواب نگرفتنشون هستم ;D
دستوری هم که شما میگی میشه همون دستوراتی که sudo دارن و از کاربر (من) رمز میخوان و من مجبور بودم با echo رمز رو بنویسم و همین نوشتن رمز توی هارد باعث بوجود اومدن ریسک می شد و میخواستم کاری کنم که رمز توی هارد نباشه و منم دستی وارد نکنم (مخصوصا برای زمان بندی شبانه که خوابم و سیستم باید دستورات ریشه ای رو اجرا کنه)
یه خورده قر و قاطی شد تاپیک ولی در کل به یه جاهایی دارم میرسم ;)
-
توی etc/crontab/ دستوراتی که نیاز به sudo دارند رو با کاربر root اجرا میکنی و دستوراتی که نیاز با دسترسی root ندارند رو با کاربری که میخوای!
-
من که مشکلی ندارم رسول میشه محتویات sudoers بذاری؟
-
توی etc/crontab/ دستوراتی که نیاز به sudo دارند رو با کاربر root اجرا میکنی و دستوراتی که نیاز با دسترسی root ندارند رو با کاربری که میخوای!
درسته. اینو میدونم.
موضوع اینه که توی یه خط، من هم دستور معمولی دارم هم دستور sudo دار. اینو چکارش کنم؟ ;)
aria2c -c -j1 -x16 -s16 -k 1M -d /home/kubuntu/Downloads -i /home/kubuntu/Desktop/Link.txt -l ~/Log/download.log --log-level=notice > ~/Log/aria2c.log && apt-get -y dist-upgrade > ~/Log/upgrade.log && bash ~/Dialogshutdown
مثل این.
دستور آریا معمولی و دستور آپگرید و شات داون با sudo. خب اینو توی کرون معمولی بذارم اررور میده باید برای هر دستور sudo یه echo هم بذارم و رمز بدم. اگه بذارمش توی کرون ریشه که خب اون دوتا sudo اجرا میشن ولی اون معمولیه (آریا) اجرا نمیشه. ;)
-
من که مشکلی ندارم رسول میشه محتویات sudoers بذاری؟
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
kubuntu ALL=(ALL) NOPASSWD: /usr/bin/apt-get upgrade
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
اون دستور رو من همه جای این متن دادم و سیو کردم ولی نشد که نشد ](*,)
-
تغییر sudo برای اینکه رمز نپرسه کار درستی نیست.
کافیه کل دستوراتت رو با root اجرا کنی و دستورات یک کاربر خاص رو با sudo -u username اجرا کنی. اینشکلی sudo ازت گذرواژهای نمیپرسه.
-
تغییر sudo برای اینکه رمز نپرسه کار درستی نیست.
کافیه کل دستوراتت رو با root اجرا کنی و دستورات یک کاربر خاص رو با sudo -u username اجرا کنی. اینشکلی sudo ازت گذرواژهای نمیپرسه.
جمله ی اول رو قبول دارم.
مشکل من نپرسیدن رمز نیست. چون میتونم همه ی دستورات sudo دار رو بذارم توی کرون ریشه. مشکل من اینه که دستورات من پشت سر هم باید باشن و ریشه و معمولی قاطی ان. نمیتونم توی یه زمان توی هر دو دستور بدم. باید یه دستور تموم بشه و دستور بعدی شروع بشه. از قضا دستور اولم معمولیه و دستور دومم sudo داره. مثلا نمی تونم بگم که آریا رو توی کرون معمولی اجرا کن بعد که آریا تموم شد بیا برو توی کرون ریشه و بعد از کرون یوزر، کارت رو با کرون ریشه انجام بده. نمیشه که! باید دستوراتم همگی توی یک کرون باشن. یکی تو این یکی تو اون نمیشه. مشکل من اینه ;)
-
خط دوم من رو نخوندی؟ :)
sudo -u rasubuntu aria_command && killall blahblah && sudo -u rasubuntu ls /home && shutdown
-
آقا بذارین تکلیفم رو توی پست مشخص کنم. یه جمع بندی خوبه ;)
بحث مخفی کردن و رمزنگاری کردن کلا هیچی.
در مورد گرفتن رمز از یه فایل دیگه و دادنش به فایل اصلی و ... هم که سیدجان توضیح دادن، در حال حاضر رفت کنار. البته خیلی هم از سیدجان ممنونم که جواب داد و راهنمایی کرد. شاید در اینجا دیگه نیاز نداشته باشم ولی کلی مطلب یادم داد ;) که بعدها میشه ازشون استفاده کرد.
موند روش مجتبی جان که هنوز موفق نشدم انجامش بدم و معلوم نیست چشه این فایل sudo
و دانیال جان هم توی تاپیک کرون، راهنمایی خیلی خوبی کرد و قرار شد دستورات معمولی رو بذارم توی بش و لینک بدم به کرون ریشه. اینجوری هم دستورات ریشه ای هم دستورات معمولی توی ریشه انجام میشن.
با این حال روش مجتبی جان هم باید تست کنم ببینم آخرش راه می افته یا نه. هرچند به قول معین جان، این کار، روش درستی از لحاظ امنیتی نیست. ;)
این دستور آخر معین جان هم باید تست کنم.
از همه تون ممنونم ;)
-
سلام.
آقا این روش معین جان هم جواب نداد واسه ما.
مثلا اینو
00 12 * * * sudo -u kubuntu ls ~/Log > log
رو که توی کرون معمولی میدم راحت جواب میده (میدونم که نباید توی کرون معمولی باشه چون توی معمولی دیگه نیازی به اون sudo -u user هم نیست دیگه)
ولی همین رو که توی کرون ریشه میدم بازم جواب نمیده.
الان جوری شده حتی دستورات ریشه ای هم توش جواب نمیده.
نکنه sudo crontab خراب شده؟؟ خخخ یه بار هم با آپشن r پاکش کردم گفتم شاید قاط زده.
کلا طرز استفاده از کرون تب ریشه چجوریه؟؟ بگین شاید ما داریم بد استفاده می کنیم ;D (همون جوری که از کرون تب معمولی استفاده می کنم، از این هم استفاده می کنم)
دستورات رو توی /etc/crontab هم دادم ولی اونجا هم عمل نکرد هیچی. ](*,)
-
دستور مجتبی جان هم امروز بعد از کلی کشمکش جواب داد.
یعنی الان بدون دادن رمز میتونم سیستم رو آپگرید کنم.
ولی خب یه چیز دیگه هم لازم دارم. یه اسکریپت بش دارم توی هوم که هر شب باید اجرا بشه. اینو چجوری باید توی sudoers آدرس دهی کنم؟؟ انوع و اقسام حالت ها رو تست کردم ولی باز ازم رمز میخواد.
اینم آدرس اسکریپت
/home/kubuntu/Dialogshutdown
-
نمیخواد. حل شد.
اسکریپت هام بدون sudo هم اجرا میشن. پس کلا نیازی نیست توی sudoers تنظیم بشن.
یعنی الان توی کرون معمولیم آریا2 مثل آدم اجرا میشه. اسکریپت بش هم درست اجرا میشه. می مونه دستور آپگرید کردن و شات داون که این دوتا رو بردم گذاشتم توی sudoers و بعد توی کرون معمولی هم بدون مشکل کار می کنن.
ولی خب از اونجایی که معین جان میگه این کار درست نیست، پس باید راهی پیدا کنم که دستورات معمولیم (اون sudo -u user رو تست کردم ولی باز جواب نداد) توی کرون ریشه اجرا بشن.
برای ادامه ی بحث بیایین توی تاپیک ادغام کرون ;)
http://forum.ubuntu.ir/index.php/topic,111957.0.html (http://forum.ubuntu.ir/index.php/topic,111957.0.html)
مرسی ;)