馬哥教育網絡20期+第三周練習博客

1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。

[root@localhost ~]# who | cut -d" " -f1 | uniq
jobs
root

2、取出最后登錄到當前系統的用戶的相關信息。

[root@localhost ~]# who | cut -d" " -f1 | uniq | tail -1
root

3、取出當前系統上被用戶當作其默認shell的最多的那個shell。

[root@localhost ~]# cat /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1 
     21 /sbin/nologin

4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全部改為大寫后保存至/tmp/maxusers.txt文件中。

[root@localhost ~]# cat /etc/passwd | sort -t: -k3 -n | tail -10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt
[root@localhost ~]# cat /tmp/maxusers.txt 
ODS:X:999:998:SOFTHSM PRIVATE KEYS OWNER://VAR/LIB/SOFTHSM:/SBIN/NOLOGIN
JOBS:X:1000:1000:JOBS:/HOME/JOBS:/BIN/BASH
TOM:X:1001:1001::/HOME/TOM:/BIN/BASH
BASH:X:1002:1003::/HOME/BASH:/BIN/BASH
BASHER:X:1003:1004::/HOME/BASHER:/BIN/BASH
TESTBASH:X:1004:1005::/HOME/TESTBASH:/BIN/BASH
NOLOGIN:X:1005:1006::/HOME/NOLOGIN:/SBIN/NOLOGIN
USER1:X:1006:1007::/HOME/USER1:/BIN/BASH
JERRY:X:65533:1002::/HOME/JERRY:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
[root@localhost ~]#

5、取出當前主機的IP地址,提示:對ifconfig命令的結果進行切分。

[root@localhost ~]# ifconfig | egrep '((\<[1-9]\.)|([1-9][0-9]\.)|(1[0-9][0-9]\.)|(2[0-4][0-9]\.)|(25[0-5]\.)\>)\1*'
        inet 192.168.2.99  netmask 255.255.255.0  broadcast 192.168.2.255
        RX packets 72860  bytes 22883954 (21.8 MiB)
        TX packets 29823  bytes 4663870 (4.4 MiB)
        inet 127.0.0.1  netmask 255.0.0.0
        RX packets 16  bytes 1224 (1.1 KiB)
        TX packets 16  bytes 1224 (1.1 KiB)
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

6、列出/etc目錄下所有以.conf結尾的文件的文件名,并將其名字轉換為大寫后保存至/tmp/etc.conf文件中。

[root@localhost ~]# ls -R /etc/ | grep ".*.conf$" | tr 'a-z' 'A-Z' > /tmp/etc.conf

7、顯示/var目錄下一級子目錄或文件的總個數。

[root@localhost ~]# echo $[$[$(ll /var | grep "^d.*" | wc -l)]+$[$(ll /var | grep "^-.*" | wc -l)]]
23

8、取出/etc/group文件中第三個字段數值最小的10個組的名字。

[root@localhost ~]# cat /etc/group | sort -t: -k3 -n | head -10 | cut -d: -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

9、將/etc/fstab和/etc/issue文件的內容合并為同一個內容后保存至/tmp/etc.test文件中。

[root@localhost ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
[root@localhost ~]# cat /tmp/etc.test 

#
# /etc/fstab
# Created by anaconda on Fri Mar 11 22:14:07 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=73822afe-bc00-431b-8851-0151d8054a67 /boot                   xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
Red Hat Linux 9
Kernel 1.2.3.4

10、請總結描述用戶和組管理類命令的使用方法并完成以下練習:

用戶管理命令總結:

useradd:添加用戶

命令格式:

useradd [options] LOGIN

選項:

-u UID: [UID_MIN, UID_MAX], 定義在/etc/login.defs
-g GID:指明用戶所屬基本組,可為組名,也可以GID;
-c "COMMENT":用戶的注釋信息;
-d /PATH/TO/HOME_DIR: 以指定的路徑為家目錄;
-s SHELL: 指明用戶的默認shell程序,可用列表在/etc/shells文件中;
-G GROUP1[,GROUP2,...[,GROUPN]]]:為用戶指明附加組;組必須事先存在;
-r: 創建系統用戶

usermod:修改用戶屬性 

命令格式:

usermod [options] LOGIN

選項:

-u UID: 新UID
-g GID: 新基本組
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項,表示append;
-s SHELL:新的默認SHELL;
-c 'COMMENT':新的注釋信息;
-d HOME: 新的家目錄;原有家目錄中的文件不會同時移動至新的家目錄;若要移動,則同時使用-m選項;
-l login_name: 新的名字;
-L: lock指定用戶
-U: unlock指定用戶
-e YYYY-MM-DD: 指明用戶賬號過期日期;
-f INACTIVE: 設定非活動期限;

chsh:修改用戶登錄shell

命令格式:

chsh [-s shell] [-l] [-u] [-v] [username]

選項:

-s:指定登錄shell
-l:打印出/etc/shells下的shell列表并退出

chfn:改變指紋信息

命令格式:

chfn  [-f  full-name]  [-o  office] ,RB [ -p office-phone] [-h home-phone] -u] [-v] [username]

選項:

-f, 指定真實名稱
-o, 指定辦公室號碼
-p, 指定辦公電話
-h, 指定家庭電話

chage:修改用戶密碼過期信息

命令格式:

chage [options] LOGIN

選項:

-d, LAST_DAY:設置1970年1月1日起最后一次更改密碼的時間,如果設置為0則下次登錄必須修改密碼
-E, --expiredate EXPIRE_DATE:設置自1970年1月1日起,經過多長時間后賬號將不能使用
-I, --inactive INACTIVE:設置賬號被鎖定前,密碼過期的天數
-m, --mindays MIN_DAYS:設置修改密碼的最小天數
-M, --maxdays MAX_DAYS:設置密碼修改的最大天數
-W, --warndays WARN_DAYS:設置密碼修改前的告警天數

userdel:刪除用戶賬戶與相關文件

命令格式:

userdel [options] LOGIN

選項:

-f,強制
-r,刪除用戶家目錄

組管理命令總結:

groupadd:添加用戶組

命令格式:

groupadd [options] group

選項:

-g GID: 指明GID號;[GID_MIN, GID_MAX]
-r: 創建系統組;

groupmod:修改組屬性

命令格式:

groupmod [options] GROUP

選項:

-n group_name: 新名字
-g GID: 新的GID;

groupdel:刪除用戶組

命令格式:

groupdel [options] GROUP

選項:

-R:改變CHROOT_DIR的目錄并使用CHROOT_DIR的配置文件

passwd:給用戶添加密碼

命令格式:

passwd [OPTIONS] UserName
passwd

選項:

-l 鎖定指定用戶
-u 解鎖指定用戶
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天開始警告
-i inactivedays:非活動期限;
--stdin:從標準輸入接收用戶密碼;
    echo "PASSWORD" | passwd --stdin USERNAME

gpasswd:組密碼 

命令格式:

gpasswd [OPTION] GROUP

選項:

-a user: 將user添加至指定組中;
-d user: 刪除用戶user的以當前組為組名的附加組
-A user1,user2,...: 設置有管理權限的用戶列表

pwck:驗證密碼文件的完整性

命令格式;

pwck [options] [passwd [ shadow ]]

選項:

-q,僅顯示錯誤信息,來自用戶任何操作的告警信息則不會顯示
-r,在只讀模式下運行pwck命令
-R:改變CHROOT_DIR的目錄并使用CHROOT_DIR的配置文件
-s,在/etc/passwd,/etc/shadow文件中以UID為標準進行排序

退出值:

0  success                              成功
1  invalid command syntax               參數錯誤
2  one or more bad password entries     輸入了一個或多個錯誤密碼
3  can't open password files            不能打開密碼文件
4  can't lock password files            不能鎖定密碼文件
5  can't update password files          不能更新密碼文件
6  can't sort password files            不能對密碼文件排序

id:打印真實有效的用戶和組ID

命令格式:

id [OPTION]... [USER]

選項:

-u: UID
-g: GID
-G: Groups
-n: Name

who:顯示誰登陸系統

命令格式:

who [OPTION]... [ FILE | ARG1 ARG2 ]

選項:

-b:系統最近一次啟動的時間
-d:顯示死亡的進程
-l:顯示系統登陸進程             
-m:只有主機名和用戶相關的標準輸入
-q:所有登錄的用戶名和登錄的用戶數
-r:顯示當前運行等級
-t:顯示最后一次系統時鐘的變化
-u:列出登陸的用戶

whoami:顯示有效的用戶ID

命令格式:

whoami [OPTION]...

w:顯示誰登陸了系統并且在做什么

命令格式:

w [options] user [...]

選項:

-h:不顯示頭部信息
-u:忽略在當前進程和CPU時間指明的用戶名
-s:使用短格式,不顯示登錄時間、JCPU時間和PCPU時間

su:使用替代用戶和組ID運行一個命令

命令格式:

su [options...] [-] [user [args...]]

選項:

-c:使用-c選項傳遞一個命令到shell
--session-command=command:與-c一樣,但不會創建新的會話
-g:指定基本組,這個命令只允許root用戶使用
-G:指定附加組,這個命令只允許root用戶使

退出值:

1      Generic error before executing the requested command
126    The requested command could not be executed
127    The requested command could was not found

(1)、創建組distro,其GID為2016;

[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# cat /etc/group | tail -1
distro:x:2016:

(2)、創建用戶mandriva, 其ID號為1005;基本組為distro;

[root@localhost ~]# useradd -u 1005 -G distro mandriva

(3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux;

[root@localhost ~]# useradd -u 1100 -d /home/linux/ mageia

(4)、給用戶mageia添加密碼,密碼為mageedu;

[root@localhost ~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.

(5)、刪除mandriva,但保留其家目錄;

[root@localhost ~]# userdel mandriva
[root@localhost ~]# ls /home/ | grep man
mandriva

(6)、創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin;

[root@localhost ~]# groupadd peguin
[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),2017(peguin)

(7)、修改slackware的默認shell為/bin/tcsh;

[root@localhost ~]# usermod -s tcsh slackware
[root@localhost ~]# cat /etc/passwd | grep tcsh
slackware:x:2002:2016::/home/slackware:tcsh

(8)、為用戶slackware新增附加組admins;

[root@localhost ~]# groupadd admins
[root@localhost ~]# usermod -G admins slackware
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),2018(admins)

(9)、為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天;

[root@localhost ~]# echo "obama" | passwd -n 3 -x 180 -w 3 --stdin slackware
Adjusting aging data for user slackware.
passwd: Success
[root@localhost ~]# cat /etc/shadow | grep slackware
slackware:!!:16974:3:180:3:::

(10)、添加用戶openstack,其ID號為3003, 基本組為clouds,附加組為peguin和nova;

[root@localhost ~]# useradd -u 3003 -G peguin,nova openstack
[root@localhost ~]# id openstack
uid=3003(openstack) gid=3003(openstack) groups=3003(openstack),2017(peguin),2020(nova)

(11)、添加系統用戶mysql,要求其shell為/sbin/nologin;

[root@localhost ~]# useradd -r -s /sbin/nologin mysql
[root@localhost ~]# cat /etc/passwd | grep mysql
mysql:x:982:977::/home/mysql:/sbin/nologin

(12)、使用echo命令,非交互式為openstack添加密碼。

[root@localhost ~]# echo "obama" | passwd --stdin openstack
Changing password for user openstack.
passwd: all authentication tokens updated successfully.

原創文章,作者:Anaconda,如若轉載,請注明出處:http://www.www58058.com/19557

(0)
AnacondaAnaconda
上一篇 2016-06-22
下一篇 2016-06-23

相關推薦

  • 隨筆—SVN倉庫轉換為Git倉庫

    假設需要轉換的SVN倉庫地址為:https://tmp/svn 1、使用git svn clone命令開始轉換 $ git svn clone https://tmp/svn -T trunk -b branches -t tags #git svn…

    Linux干貨 2016-07-04
  • Ansible實戰 lnmp 安裝

    網海過客 www.chinasa.net 目錄結構 ├── hosts├── roles│   └── lnmp│             ├── files│             │     &…

    Linux干貨 2016-07-29
  • 文本處理、正則表達式、cut、grep、egrep、fgrep

    文本處理、正則表達式、cut、grep、egrep、fgrep Linux中文本處理工具最常用的就是文本處理三劍客grep、sed、awk再配合正則表達式,可以實現足夠多的文本處理功能。工具的強大之處是因為使用它的人,如何才能發揮文本處理工具的作用呢?答案就是正則表達式,其實正則表達式,只是一種思想,一種表示方法,只要我們使用的工具支持表示這種思想那么這個工…

    Linux干貨 2016-08-07
  • N31Linux第三周

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost ~]#who |cut -d ‘ ‘ -f1 |sort -u 2、列出最后登錄到當前用戶系統的用戶相關信息。 [root@localhost ~]#w |cut -d ‘ ‘ -f1 |…

    2018-07-16
  • M21-陸東貴操作類作業

    1.     設置自己的終端提示符,要求字符終端登錄時: a> 需要帶顏色 b> 需要顯示當前執行到了第幾條命令 c> 顯示當前登錄終端,主機名和當前時間 解答:[root@localhost  13:19:55 37 ~]# PS1="[\[\e[1;31m\]\u@\h&nbs…

    Linux干貨 2016-10-18
  • Linux程序包管理方式

    Linux程序包安裝和管理方式共計三種:          一、[yum|dnf],通過官網或者其他開源網站提供的文件服務器,本機鏡像源等途徑進行安裝。         二、rpm,通過官網或者其他開源網站通過…

    Linux干貨 2016-07-29

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-23 13:46

    寫的很棒,排版也很好,也使用的一些案例,但是取ip地址好像沒有取出來吧,在仔細想一下正則應該怎么寫

欧美性久久久久