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

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

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

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

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

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

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

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

foriin`seq-w110`
do
useradduser_$i
done

這個seq 用的還是蠻多的,所以請記住以下用法:

1)seq 支持步長, 默認步長為1,步長可以定義成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òu)建出符合要求的字符串就行,我建議的方法是使用mkpasswd命令

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

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

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

mkpasswd命令 可以生成隨機字符串,默認生成 9位的 ,例如

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

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

mkpasswd -l 15

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

-d指定數(shù)字

-C指定大寫字母

-c 指定小寫字母

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

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

但這樣寫到腳本里 就會有問題啦,因為需要交互,腳本里肯定不合適。所以還有另外一種方法 :

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

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

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

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

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)的外面去,也就是要放到腳本一開始的時候。如果在循環(huán)里面,那么腳本執(zhí)行完,這個文本里就只會記錄一行,大概就是這么多內(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

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

    關(guān)注

    5

    文章

    684

    瀏覽量

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

    關(guān)注

    1

    文章

    389

    瀏覽量

    14866

原文標題:批量創(chuàng)建10個用戶用腳本如何實現(xiàn)

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    10殺手級的Python自動化腳本

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

    windows補丁批量安裝腳本

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

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

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

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

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

    如何創(chuàng)建和執(zhí)行一簡單的Linux shell腳本

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

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

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

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

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

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

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

    怎么腳本產(chǎn)生一驗證環(huán)境

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

    如何創(chuàng)建簡單的腳本

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

    分享10實用的Python自動化腳本

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

    分享249拿來即用的shell腳本

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

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

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

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

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