馬哥教育網絡班21期+第三周課程練習

馬哥教育網絡班21期+第3周課程練習

[TOC]

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

[root@zj-6-2 ~]# who 
root     tty7         2016-04-24 02:22 (:0)
root     pts/1        2016-04-24 02:07 (192.168.101.1)
root     pts/2        2016-04-24 02:20 (192.168.101.1)
root     pts/0        2016-07-23 09:27 (192.168.101.253)
root     pts/3        2016-07-23 15:59 (192.168.101.253)
zj       pts/4        2016-07-23 16:19 (192.168.101.253)
[root@zj-6-2 ~]# who | cut -d' ' -f1 | uniq | wc -l
2

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

[ies@zj-6-2 ~]$ who
root     tty7         2016-04-24 02:22 (:0)
root     pts/1        2016-04-24 02:07 (192.168.101.1)
root     pts/2        2016-04-24 02:20 (192.168.101.1)
root     pts/0        2016-07-23 09:27 (192.168.101.253)
root     pts/3        2016-07-23 15:59 (192.168.101.253)
zj       pts/4        2016-07-23 16:19 (192.168.101.253)
ies      pts/5        2016-07-23 16:24 (192.168.101.253)
[ies@zj-6-2 ~]$ who | tail -1
ies      pts/5        2016-07-23 16:24 (192.168.101.253)
[ies@zj-6-2 ~]$ who | tail -1 | cut -d ' ' -f1
ies

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

[root@zj-6-2 ~]# grep 'sh\>$' /etc/passwd | cut -d ':' -f7 | uniq -c | sort -n | tail -n 1 
      5 /bin/bash

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

[root@zj-6-2 ~]# sort -t ':' -k 3 -n  /etc/passwd | tail -n 10 | tr [a-z] [A-Z] >> /tmp/maxusers.txt
[root@zj-6-2 ~]# cat /tmp/maxusers.txt 
AVAHI-AUTOIPD:X:170:170:AVAHI IPV4LL STACK:/VAR/LIB/AVAHI-AUTOIPD:/SBIN/NOLOGIN
ABRT:X:173:173::/ETC/ABRT:/SBIN/NOLOGIN
PULSE:X:496:493:PULSEAUDIO SYSTEM DAEMON:/VAR/RUN/PULSE:/SBIN/NOLOGIN
MEMCACHED:X:497:494:MEMCACHED DAEMON:/VAR/RUN/MEMCACHED:/SBIN/NOLOGIN
SASLAUTH:X:498:76:"SASLAUTHD USER":/VAR/EMPTY/SASLAUTH:/SBIN/NOLOGIN
RTKIT:X:499:496:REALTIMEKIT:/PROC:/SBIN/NOLOGIN
DMDBA:X:500:500::/HOME/DMDBA:/BIN/BASH
ZJ:X:501:501::/HOME/ZJ:/BIN/BASH
IES:X:502:502::/HOME/IES:/BIN/TCSH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
[root@zj-6-2 ~]#

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

[root@zj-6-2 ~]# ifconfig | grep 'inet addr' | head -n 1 | cut -d ':' -f 2 | cut -d ' ' -f1
192.168.101.206
[root@zj-6-2 ~]# ifconfig | egrep -o 'addr:[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' | head -1 | cut -d: -f2
192.168.101.206

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

[root@zj-6-2 ~]# ls /etc/ | grep '\.conf$' | tr [a-z] [A-Z] > /tmp/etc.conf
[root@zj-6-2 ~]# cat /tmp/etc.conf 
ANT.CONF
ASOUND.CONF
AUTOFS_LDAP_AUTH.CONF
CAS.CONF
CGCONFIG.CONF
CGRULES.CONF
CGSNAPSHOT_BLACKLIST.CONF
DM_SVC.CONF
DNSMASQ.CONF
DRACUT.CONF
......

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

[root@zj-6-2 ~]# ls /var/ | wc -l
23

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

[root@zj-6-2 ~]# sort -t':' -k 3 -n /etc/group | head -n 10 | cut -d: -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

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

[root@zj-6-2 ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
[root@zj-6-2 ~]# cat /tmp/etc.test 

#
# /etc/fstab
# Created by anaconda on Thu Aug 27 08:34:38 2015
#
# 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
#
UUID=ca76697b-a614-40dc-bd18-fe9c9852bb6c /                       ext4    defaults        1 1
UUID=cc02b17a-b4b4-4231-b0b6-53654400fde5 /boot                   ext4    defaults        1 2
UUID=69878b6d-5169-4a0c-831f-a51f1c1274a8 swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel \r on an \m

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

用戶和組相關的管理類命令介紹

useradd : 用戶創建
	-u UID:[UID_MIN,UID_MAX],定義在/etc/login.defs文件中
		若不指定uid,則以現有最大uid為準,依次加1;
	-g GID: 指定用戶所屬基本組,可為組名,也可為GID,組名必須已經存在
	-c "COMMENT": 添加用戶注釋信息;
	-d /PATH/TO/HOME_DIR: 指定用戶主目錄,指定的目錄最好不要事先存在。
	-s: 指明用戶默認shell程序,可用shell列表在/etc/shells文件中
	-G GROUP[,GROUP2,...[,GROUPN]]: 指明附加組,組必須已存在;
	-r: 創建系統用戶
			CentOS 6: ID<500
			CentOS 7: ID<1000
	-D:修改useradd默認值,默認值設定:/etc/default/useradd
		示例:
			useradd -D -s /bin/csh
groupadd : 組創建
	group [OPTIONS]... group_name
	-g GID:指明GID號;[GID_MIN,GID_MAX],定義在/etc/login.defs文件中
	-r: 創建系統組:
			CentOS 6: ID<500
			CentOS 7: ID<1000
	示例:
			groupadd -g 3000 test
			groupadd -r test
			groupadd -r -g 121 test
id:查看用戶相關的id信息
	id [OPTIONS]... USER
	-u: UID
	-g: GID
	-G: 顯示所屬的所有組
	-n: NAME,顯示名稱而不是id號
示例:
[root@zj-6-2 ~]# id slackware
uid=2022(slackware) gid=2016(distro) 組=2016(distro),2017(peguin),2018(admins)
su:切換用戶或以其他用戶身份執行命令;
	su [OPTION]... [-] [USER [ARG]...]
	切換用戶的方式:
		su USERNAME:非登錄式切換,不會讀取目標用戶的配置文件;
		su - USERNAME:登錄式切換,讀取用戶的配置文件,完全切換;
	Note; root su至其他用戶無需密碼;非root用戶切換時需要密碼;

	換個身份執行命令:
		su [-] username -c "COMMANDS"
			選項:
				-l :su -l username 相當于 su - username
usermod : 用戶屬性修改
	usermod [OPTIONS]... username
		-u UID: 新UID
		-g GID: 新GID
		-G GROUP[,GROUP2,...[,GROUPN]]: 
			新附加組,原來的附加組會被覆蓋,若要保留原有,
			需使用 -a選項,表示追加;usermod -a -G GROUP1,GROUP2..
		-s SHELL: 新的SHELL;
		-c 'COMMENT': 新的注釋信息;
		-d HOME_DIR: 
			指定新的家目錄;新的家目錄不會自動創建,原有家目錄中的文件也不會同時移動至新
			的家目錄,若要移動,則同時使用-m選項;
			usermod -d HOME_DIR -m username
	Note : 使用-d指定新的家目錄時,若不使用-m選項,登陸時系統會報錯。

		-l login_name: 指定新名字;
			示例:
				將test用戶名修改為zzz
				[root@zj-5-2 ~]# usermod -l zzz test
				[root@zj-5-2 ~]# su - test
				su: 用戶 test 不存在
				[root@zj-5-2 ~]# su - zzz

		-L:鎖定指定用戶,passwd文件中密碼前加!號;
		-U:解鎖指定用戶
		-e YYYY-MM-DD: 指明用戶賬號過期日期;
		-f INACTIVE: 設定非活躍期限;
passwd : 設置用戶密碼
	passwd [OPTIONS]... USERNAME:修改指定用戶的密碼,僅root用戶有權限;
	passwd:修改自己的密碼;

	-l:鎖定指定用戶,passwd文件中密碼前加;
	-u: 解鎖用戶;
	-n mindays: 指定最短使用期限
	-x maxdays: 指定最大使用期限
	-w warndays: 提前多少天開始警告
	-i inactivedays: 非活動期限:即密碼過期后還可使用多少天
	--stdin:從標準輸入接收用戶密碼:
		echo "PASSWD" | passwd --stdin USERNAME
userdel : 刪除用戶
	userdel [OPTIONS]... username
	-r:刪除用戶家目錄;
groupmod :組屬性修改
	groupmod [OPTIONS]... GROUP
	-n group_name: 新組名
	-g GID:新的GID;
groupdel : 刪除組
	groupdel GROUP_NAME
gpasswd : 組密碼設置
	gpasswd [OPTIONS] group
	gpasswd oinstall,密碼在/etc/gshadow文件中;
		-a USER GROUP: 將USER添加到指定組中
		-d USER GROUP:刪除用戶user的以當前組為組名的附加組
		-A user1,user2,..:設置有管理權限的用戶列表。
		
newgrp group_name : 臨時切換屬組
	如果用戶本不屬于此組,則需要組密碼;
pwck - verify integrity of password files
SYNOPSIS
       pwck [-q] [-s] [passwd [ shadow ]]

       pwck [-q] [-r] [passwd [ shadow ]]
chage : 修改密碼過期信息
NAME
       chage - change user password expiry information

SYNOPSIS
       chage [options] [LOGIN]
Options:
  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    display this help message and exit
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximim number of days before password
                                change to MAX_DAYS
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS
其他命令:chfn,chsh,finger
chfn USERNAME:修改注釋信息;相當于usermod -c
chsh:修改默認shell
finger USERNAME:查看用戶注釋信息;
### (1). 創建組*distro*,其*GID*為*2016*;
[root@zj-6-2 ~]# groupadd -g 2016 distro
[root@zj-6-2 ~]# grep 'distro' /etc/group
distro:x:2016:

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

[root@zj-6-2 ~]# useradd -u 1105 -g distro magedriva
[root@zj-6-2 ~]# id magedriva
uid=1105(magedriva) gid=2016(distro) 組=2016(distro)

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

[root@zj-6-2 ~]# useradd -u 1100 -d /home/linux mageia
[root@zj-6-2 ~]# id mageia
uid=1100(mageia) gid=1100(mageia) 組=1100(mageia)
[root@zj-6-2 ~]# grep 'mageia' /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash

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

方法一:
[root@zj-6-2 ~]# echo "mageedu" | passwd --stdin mageia
更改用戶 mageia 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
方法二:
[root@zj-6-2 ~]# passwd mageia
更改用戶 mageia 的密碼 。
新的 密碼:

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

[root@zj-6-2 ~]# userdel magedriva
[root@zj-6-2 ~]# ls -ld /home/magedriva/
drwx------. 4 1105 distro 4096 7月  23 17:16 /home/magedriva/

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

[root@zj-6-2 ~]# groupadd peguin
[root@zj-6-2 ~]# useradd -u 2022 -g distro -G peguin slackware
[root@zj-6-2 ~]# id slackware
uid=2022(slackware) gid=2016(distro) 組=2016(distro),2017(peguin)

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

[root@zj-6-2 ~]# grep 'slackware' /etc/passwd
slackware:x:2022:2016::/home/slackware:/bin/bash
[root@zj-6-2 ~]# 
[root@zj-6-2 ~]# usermod -s /bin/tcsh slackware
[root@zj-6-2 ~]# grep 'slackware' /etc/passwd
slackware:x:2022:2016::/home/slackware:/bin/tcsh

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

[root@zj-6-2 ~]# id slackware
uid=2022(slackware) gid=2016(distro) 組=2016(distro),2017(peguin)
[root@zj-6-2 ~]# groupadd admins
[root@zj-6-2 ~]# usermod -a -G admins slackware
[root@zj-6-2 ~]# id slackware
uid=2022(slackware) gid=2016(distro) 組=2016(distro),2017(peguin),2018(admins)

usermod -G GROUP[,GROUP2,…[,GROUPN]]: 新附加組,原來的附加組會被覆蓋,若要保留原有附加組,需使用 -a選項,表示追加;

usermod -a -G GROUP1,GROUP2..

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

passwd -n 3 -x 180 -w 3 slackware

(10). 添加用戶openstack,其ID號為3003,基本組為clouds,附加組為peguinnova;

[root@zj-6-2 ~]# groupadd clouds
[root@zj-6-2 ~]# groupadd nova
[root@zj-6-2 ~]# useradd -u 3003 -g clouds -G peguin,nova openstack
[root@zj-6-2 ~]# id openstack
uid=3003(openstack) gid=2019(clouds) 組=2019(clouds),2017(peguin),2020(nova)

(11). 添加系統用戶mysql,要求其shell/bin/nologin;

[root@zj-6-2 ~]# useradd -r -s /bin/nologin mysql

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

[root@zj-6-2 ~]# echo 'mageedu' | passwd --stdin openstack
更改用戶 openstack 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。

原創文章,作者:N21_未來人,如若轉載,請注明出處:http://www.www58058.com/25583

(0)
N21_未來人N21_未來人
上一篇 2016-07-29
下一篇 2016-07-29

相關推薦

  • 馬哥教育千萬級PV實戰大揭秘

    又到了激動人心的架構實戰項目實踐時間,馬哥教育面授班的學員都很期待這一刻的到來,因為經過此次洗禮,能讓自己成長更多! 上周二,馬哥教育張Sir帶領18期面授班的學員們做千萬PV級別的電商架構實戰項目!新增的多臺R710企業級服務器設備,輕松搭建大數據、云計算等高端實驗環境,讓實戰,更加真實!相信經過這場實戰的洗禮,小伙伴們架構技能會有更大提升! 【張Sir生…

    2016-06-30
  • Linux下搭建路由器

    客戶端1:CentOS6.9 客戶端2:CentOS7.3 路由器:router1(CentOS7.3)、router2(CentOS7.3) r router3(CentOS7.3) 1 準備工作 為了避免干擾,最好建立獨立的網絡。 打開VMvare的虛擬網絡編輯器,點擊添加網絡按鈕,添加VMnet11并且將左下角使用“本地DHCP服務將IP地址分配給虛擬…

    Linux干貨 2017-08-20
  • Linux網絡配置

    (1)、ifcfg家庭命令配置: ifconfig/route/netstat ifup/ifdown   (2)、ip命令配置: ip addr | route | link   (3)、修改配置文件 IP、MASK、GW、DNS相關配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE 路由相關…

    2018-01-30
  • 壓縮與歸檔

    一、壓縮     壓縮:根據一定算法將數據以更加節省空間的形式存放。下面來看一下Linux常見的壓縮工具:     1、gzip/gunzip         后綴名:.gz   …

    Linux干貨 2015-05-04
  • 第一周總結→干貨

    需要掌握的大部分前期基礎知識

    2018-04-01
  • N25第五周總結:程序包管理

    程序包管理:rpm、yum、編譯詳解 rpm詳解: 一:大綱        1、什么是rpm        2、為什么要使用rpm        3、rpm能實現什么功能 &nbs…

    Linux干貨 2017-01-10

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-29 15:51

    寫的很好,排版也很棒,加油

欧美性久久久久