মেয়াদোত্তীর্ণ মেয়াদী অ্যাকাউন্টগুলি কীভাবে আমি স্বয়ংক্রিয়ভাবে তৈরি করতে পারি?


20

এটিই আমি করতে সক্ষম হতে চাই:

কোনও ব্যবহারকারীর অ্যাকাউন্ট তৈরি হওয়ার পরে, তারা sshভাগ্যবান হওয়া উচিত , তবে 30 দিনের পরে তাদের অ্যাকাউন্টটি স্বয়ংক্রিয়ভাবে মুছে ফেলা হবে যদি না কাউন্টডাউন মূল ব্যবহারকারী দ্বারা পুনরায় সেট না করা হয়।

আমি কীভাবে এটি স্বয়ংক্রিয় করতে পারি? আমার প্রায় 15 জন ব্যবহারকারী পরিচালনা করতে হবে।

উত্তর:


29

useradd

--expiredateবিকল্পটি ব্যবহারের মাধ্যমে কোনও ব্যবহারকারীর অ্যাকাউন্ট কতক্ষণ বৈধ তা আপনি নিয়ন্ত্রণ করতে পারেন useradd

useraddম্যান পৃষ্ঠা থেকে উদ্ধৃতি

-e, --expiredate EXPIRE_DATE
     The date on which the user account will be disabled. The date is
     specified in the format YYYY-MM-DD.

     If not specified, useradd will use the default expiry date specified
     by the EXPIRE variable in /etc/default/useradd, or an empty string 
     (no expiry) by default.

সুতরাং ব্যবহারকারীর অ্যাকাউন্ট সেট আপ করার সময় আপনি এখন থেকে ভবিষ্যতে +30 দিন তারিখ নির্দিষ্ট করতে পারেন এবং useraddঅ্যাকাউন্টগুলি সেট আপ করার সময় এটি আপনার আদেশে যুক্ত করতে পারেন ।

$ useradd -e 2013-07-30 someuser

chage

আপনি chageকমান্ডটি ব্যবহার করে একটি বিদ্যমান অ্যাকাউন্টের তারিখও পরিবর্তন করতে পারেন । কোনও অ্যাকাউন্টের মেয়াদ শেষ হওয়ার তারিখটি পরিবর্তন করতে আপনি নিম্নলিখিতগুলি করতে চাই:

$ chage -E 2013-08-30 someuser

এখন থেকে +30 দিন তারিখ গণনা করা হচ্ছে

এটি করা dateকমান্ডটি ব্যবহার করে আসলে বেশ তুচ্ছ । উদাহরণ স্বরূপ:

$ date -d "30 days"
Sun Jul 28 01:03:05 EDT 2013

কমান্ডের +FORMATবিকল্পগুলি ব্যবহার করে আপনি ফর্ম্যাট করতে পারেন date, যা আপনাকে নিম্নলিখিতটি প্রদান করে:

$ date -d "30 days" +"%Y-%m-%d"
2013-05-28

সবগুলোকে একত্রে রাখ

সুতরাং উপরের টুকরাগুলি জানার জন্য, এটি একত্রে রাখার জন্য এখানে একটি উপায়। প্রথমে কোনও অ্যাকাউন্ট তৈরি করার সময় আপনি এই আদেশটি চালাবেন:

$ useradd -e `date -d "30 days" +"%Y-%m-%d"` someuser

তারপরে আপনি যখন তাদের সমাপ্তির তারিখগুলি সামঞ্জস্য করতে চান আপনি পর্যায়ক্রমে এই আদেশটি চালাবেন:

$ chage -E `date -d "30 days" +"%Y-%m-%d"` someuser

24 ঘন্টা কমের সময়কাল নির্দিষ্ট করে

আপনি যদি কোনও ব্যবহারকারী কেবল কয়েক মিনিটের জন্য সক্রিয় থাকতে চান তবে উপরের বিকল্পগুলি ব্যবহার করতে পারবেন না কারণ তাদের একটি তারিখ নির্দিষ্ট করার প্রয়োজন। crontabসেক্ষেত্রে আপনি নির্দিষ্ট সময়ের পরে তৈরি ব্যবহারকারীকে সরিয়ে / লক করার জন্য একটি সেট আপ করতে পারেন (উদাহরণস্বরূপ, 10 মিনিট), বা আপনি এর মধ্যে একটি করতে পারেন:

adduser someuser && sleep 600 && usermod --lock someuser

অথবা

$ adduser someuser
$ echo usermod --lock someuser | at now + 10 minutes

তথ্যসূত্র


3
আমি% M (মিনিট) কে% m (মাস) এ পরিবর্তন করার স্বাধীনতা নিয়েছিলাম
অ্যান্থন

5

আপনি ব্যবহার করা উচিত Debian / Ubuntu- থাকে তাহলে adduserusermod। ডেবিয়ান ভিত্তিক সিস্টেমগুলিকে useraddনিম্ন স্তরের হিসাবে বিবেচনা করা হয় এবং (ম্যান পৃষ্ঠাগুলি অনুসারে):administrators should usually use adduser(8) instead

adduser কোনও মেয়াদোত্তীর্ণের বিকল্প নেই, তাই আপনি অ্যাকাউন্টটি তৈরি করতে কেবল এটি ব্যবহার করেন।

usermodহয়েছে -e/ --expiredateমেয়াদ শেষের তারিখ সেট করতে বিকল্প।

আপনি এইটির সাথে প্যারামিটার গণনা করুন date: date -d "30 days" "+%Y-%m-%d"পেতে:

usermod --expiredate $(date -d "30 days" "+%Y-%m-%d") username

1

আরেকটি উপায় (যদি আপনার ওএস অ্যাকাউন্টের মেয়াদোত্তীর্ণতা সমর্থন করে না বা এই বৈশিষ্ট্যটি যে কোনও কারণে কাজ করে না): এখন থেকে ৩০ দিন চলতে ক্রোন জব সেট করুন যা এই অ্যাকাউন্টটি লক করে দেবে।

সাধারণত অ্যাকাউন্টটি এর এনক্রিপ্ট করা পাসওয়ার্ডকে অবৈধ মান হিসাবে সেট করে লক করা হয়; ফ্রিবিএসডি-তে, pw lock Xকমান্ড অ্যাকাউন্টটি লক করবে X


1
কীভাবে আপনি কোনও অ্যাকাউন্ট লক করতে পারেন তা ব্যাখ্যা করুন।
slm

ওএস নির্ভর, সত্যিই।
সেন্ডমোরইনফো

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