0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

批量創(chuàng)建10個(gè)用戶用腳本如何實(shí)現(xiàn)

阿銘linux ? 來源:阿銘linux ? 作者:阿銘linux ? 2022-10-31 09:14 ? 次閱讀

要求:創(chuàng)建10個(gè)普通用戶,并給它們?cè)O(shè)置隨機(jī)密碼,將密碼記錄到一個(gè)文檔里,用戶名為user_01 — user_10,密碼要求包含大小寫字母以及數(shù)字,密碼長(zhǎng)度15位。

題目要求,讓我們創(chuàng)建user_01到user_10共10個(gè)用戶,所以需要使用循環(huán)構(gòu)建01 - 10的序列,方法是 "seq -w 1 10"這個(gè)命令執(zhí)行后,會(huì)打印 ”01 02 ... 09 10" 10個(gè)數(shù)字出來,這個(gè)"-w"選項(xiàng)的意思是等寬,即按序列中最大寬度的數(shù)字來,本例中10就是2位,所以1個(gè)數(shù)字時(shí)會(huì)在前面補(bǔ)上一個(gè)0。

seq 構(gòu)建序列后,需要循環(huán),使用for即可所以最終寫成這樣

foriin`seq-w110`
do
useradduser_$i
done

這個(gè)seq 用的還是蠻多的,所以請(qǐng)記住以下用法:

1)seq 支持步長(zhǎng), 默認(rèn)步長(zhǎng)為1,步長(zhǎng)可以定義成2,比如

seq  1 2 10
1
3
5
7
9

2)也可以倒序

seq  10 -2 1  
10
8
6
4
2

創(chuàng)建用戶沒啥可說的,直接 useraddusername 即可,關(guān)鍵是這個(gè)隨機(jī)密碼這里,這個(gè)并沒有標(biāo)準(zhǔn)答案,只要構(gòu)建出符合要求的字符串就行,我建議的方法是使用mkpasswd命令

默認(rèn)系統(tǒng)沒有,所以你使用它之前需要先判斷一下

if ! which  mkpasswd &>/dev/null
then   
    yum install   -y expect  
fi

這里有個(gè)前提,yum是centos/RHEL/Rocky系統(tǒng)用的,那如果是Debian/ubuntu呢,那就得使用apt安裝了,所以,要想腳本完美,還需要判斷系統(tǒng)版本。當(dāng)然我們寫腳本的時(shí)候就已經(jīng)知道系統(tǒng)是啥系統(tǒng)了,這里就根據(jù)系統(tǒng)版本確定命令就行了。

mkpasswd命令 可以生成隨機(jī)字符串,默認(rèn)生成 9位的 ,例如

87488c2e-58ab-11ed-a3b6-dac502259ad0.png

要想使用mkpasswd生成一個(gè)15位的密碼還需要加個(gè)參數(shù) -l(length) ,長(zhǎng)度的意思

mkpasswd -l 15

另外 mkpasswd也可以指定生成指定字符的個(gè)數(shù),比如 -s 2,s(special),表示特殊符號(hào)有2個(gè)。啥是特殊符號(hào)呢?比如 "* ( ) [ ] & ^ @ # ! : ? /"等。mkpasswd -s 0 意思是特殊符號(hào)為0。另外還有幾個(gè)選項(xiàng):

-d指定數(shù)字

-C指定大寫字母

-c 指定小寫字母

生成密碼后,需要給它賦值到變量里,比如 p=`mkpasswd -l 15 -s 0`。然后就是給用戶設(shè)置密碼了,設(shè)置密碼使用passwd命令,正常設(shè)置密碼 這樣做 :

87631882-58ab-11ed-a3b6-dac502259ad0.png

但這樣寫到腳本里 就會(huì)有問題啦,因?yàn)樾枰换?,腳本里肯定不合適。所以還有另外一種方法 :

8777903c-58ab-11ed-a3b6-dac502259ad0.png

這樣一條命令就可以啦,寫到腳本里,完美!

再往后就是將密碼保存到一個(gè)文件里,題目里我雖然沒有要求大家把用戶名也保存,但是大家想想,如果咱們的用戶名不規(guī)則,那你能知道哪個(gè)密碼是哪個(gè)用戶么。所以最好是將用戶名 密碼寫到一起。

大家都知道使用 >>追加重定向,但是否忘記了,如果這個(gè)文本里就有內(nèi)容呢?所以,最好是先將文本做一個(gè)清空的操作:

if  [ -f /tmp/user_pass.txt ]
then  
    rm -f /tmp/user_pass.txt
    echo  "user_$i  $p" >> /tmp/user_pass.txt
fi

當(dāng)然這段代碼要放到循環(huán)的外面去,也就是要放到腳本一開始的時(shí)候。如果在循環(huán)里面,那么腳本執(zhí)行完,這個(gè)文本里就只會(huì)記錄一行,大概就是這么多內(nèi)容最后再給大家發(fā)一下最終的腳本:

#!/bin/bash
if  [ -f /tmp/user_pass.txt ]
then  
    rm -f /tmp/user_pass.txt
fi
if ! which mkpasswd
then
    yum install -y expect
fi
for i in `seq -w 1 10`
do
    p=`mkpasswd -l 15 `
    useradd user_$i && echo "$p"| passwd --stdin user_$i
    echo "user_$i  $p" >> /tmp/user_pass.txt
done

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    566

    瀏覽量

    20384
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    658

    瀏覽量

    21927
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    382

    瀏覽量

    14760

原文標(biāo)題:批量創(chuàng)建10個(gè)用戶用腳本如何實(shí)現(xiàn)

文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于Python腳本的R語言的函數(shù)

    本文介紹了采用創(chuàng)建個(gè)Python腳本腳本模仿R風(fēng)格的函數(shù)的方法來方便地進(jìn)行統(tǒng)計(jì)。 是R
    的頭像 發(fā)表于 10-12 09:33 ?2000次閱讀
    基于Python<b class='flag-5'>腳本</b>的R語言的函數(shù)

    10個(gè)殺手級(jí)的Python自動(dòng)化腳本

    今天浩道跟大家分享10個(gè)日常工作中用到的python自動(dòng)化腳本。讓你感受一番python簡(jiǎn)單強(qiáng)大之處!
    發(fā)表于 11-28 11:07 ?637次閱讀

    windows補(bǔ)丁批量安裝腳本

    windows補(bǔ)丁批量安裝腳本現(xiàn)在Windows的補(bǔ)丁已經(jīng)是越來越多了,累積下來有幾十個(gè),就算發(fā)布一次也有近十個(gè),一個(gè)一個(gè)點(diǎn)擊安裝真累……而
    發(fā)表于 05-07 08:55

    阿里云ECS開放批量創(chuàng)建實(shí)例接口,實(shí)現(xiàn)彈性資源的創(chuàng)建

    摘要: 為了更方便的實(shí)現(xiàn)彈性的資源創(chuàng)建,方便用戶一次運(yùn)行多臺(tái)ECS按量實(shí)例來完成應(yīng)用的開發(fā)和部署,阿里云開放了ECS的批量創(chuàng)建實(shí)例接口Run
    發(fā)表于 03-05 17:40

    如何創(chuàng)建個(gè)鏈接腳本

    FJ256GP710GLD,即使原來的意思是針對(duì)PIC24探險(xiǎn)者板。有沒有人在那里為我的芯片創(chuàng)建了一個(gè)鏈接腳本,或者知道我在哪里可以找到一個(gè)或告訴我如何
    發(fā)表于 05-08 14:11

    如何創(chuàng)建和執(zhí)行一個(gè)簡(jiǎn)單的Linux shell腳本

     如果您愿意要嘗試更長(zhǎng)的shell腳本,請(qǐng)將下面的shell腳本(并附加為PDF和ODT文件)復(fù)制到文本編輯器中,保存,使其可執(zhí)行并運(yùn)行。當(dāng)您了解更多Linux命令時(shí),您可以創(chuàng)建更復(fù)雜的shell
    的頭像 發(fā)表于 11-06 17:28 ?1.3w次閱讀

    什么是腳本?腳本程序?qū)W習(xí)

    腳本中編寫VB腳本代碼??梢韵笫褂孟到y(tǒng)函數(shù)一樣使用項(xiàng)目中完成的腳本創(chuàng)建腳本時(shí),確定其型號(hào)并定義傳送參數(shù)?!癋unction”類型的
    的頭像 發(fā)表于 05-11 10:39 ?6564次閱讀
    什么是<b class='flag-5'>腳本</b>?<b class='flag-5'>腳本</b>程序?qū)W習(xí)

    MyBatis批量插入數(shù)據(jù)的3種方法你知道幾種

    批量插入功能是我們?nèi)粘9ぷ髦斜容^常見的業(yè)務(wù)功能之一, 今天 來一個(gè) MyBatis 批量插入的匯總篇,同時(shí)對(duì) 3 種實(shí)現(xiàn)方法做一個(gè)性能測(cè)試,
    的頭像 發(fā)表于 12-08 17:56 ?4117次閱讀
    MyBatis<b class='flag-5'>批量</b>插入數(shù)據(jù)的3種方法你知道幾種

    10行 BASIC 語言創(chuàng)建很棒的游戲

    BASIC 10 Liner Contest 的目標(biāo)是 10 行 BASIC 語言創(chuàng)建個(gè)完整的電腦游戲。
    發(fā)表于 07-30 17:21 ?1778次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>10</b>行 BASIC 語言<b class='flag-5'>創(chuàng)建</b>很棒的游戲

    怎么腳本產(chǎn)生一個(gè)驗(yàn)證環(huán)境

    之前有朋友問我怎么腳本產(chǎn)生一個(gè)驗(yàn)證環(huán)境,這個(gè)問題今天和大家介紹下兩種做法。
    的頭像 發(fā)表于 08-11 09:07 ?1319次閱讀

    如何創(chuàng)建個(gè)簡(jiǎn)單的腳本

    Shell 腳本可以為您節(jié)省時(shí)間和精力,但是如果您不保護(hù)您的密碼,它們就會(huì)成為您的負(fù)擔(dān)。以下是如何保持安全的方法。
    的頭像 發(fā)表于 10-10 11:12 ?8355次閱讀

    分享10個(gè)實(shí)用的Python自動(dòng)化腳本

    重復(fù)性任務(wù)總是耗時(shí)且無聊,想一想你想要一張一張地裁剪 100 張照片或 Fetch API、糾正拼寫和語法等工作,所有這些任務(wù)都很耗時(shí),為什么不自動(dòng)化它們呢?在今天的文章中,我將與你分享 10 個(gè) Python 自動(dòng)化腳本。
    的頭像 發(fā)表于 01-21 15:58 ?1246次閱讀

    分享249個(gè)拿來即用的shell腳本

    ? 由于腳本案例太多,在此僅展示部分,完整版領(lǐng)取方式請(qǐng)見文末 ? ? ? 249個(gè)拿來即用的shell腳本! ? 這249個(gè)Shell腳本
    的頭像 發(fā)表于 07-07 10:52 ?1041次閱讀
    分享249<b class='flag-5'>個(gè)</b>拿來即用的shell<b class='flag-5'>腳本</b>

    Vyond推出首款基于提示的腳本和視頻創(chuàng)建

    VyondGo 是一款新的腳本和視頻創(chuàng)建應(yīng)用程序,將集成到Vyond的人工智能視頻創(chuàng)建平臺(tái)中。借助易于使用、基于提示的界面,用戶可以根據(jù)幾個(gè)簡(jiǎn)單的提示立即構(gòu)建視頻初稿,然后使用Vyon
    的頭像 發(fā)表于 07-12 10:32 ?710次閱讀

    shell實(shí)例三(編寫批量修改擴(kuò)展名腳本)

    實(shí)現(xiàn)功能: 編寫批量修改擴(kuò)展名腳本,如批量將 txt 文件修改為 doc 文件 執(zhí)行腳本時(shí),需要給
    的頭像 發(fā)表于 11-09 09:35 ?573次閱讀
    shell實(shí)例三(編寫<b class='flag-5'>批量</b>修改擴(kuò)展名<b class='flag-5'>腳本</b>)