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

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

# who | cut -d' ' -f1 | sort | uniq
huazi2
root

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

# finger $(last | head -1 | cut -d' ' -f1)
Login: root                             Name: root
Directory: /root                        Shell: /bin/bash
On since 五 6月 17 09:07 (CST) on pts/1 from 172.16.100.1
   28 minutes 27 seconds idle
On since 五 6月 17 09:15 (CST) on pts/2 from 172.16.100.1
   3 seconds idle
Mail last read 二 5月 31 01:53 2016 (CST)
No Plan.

# id $(last | head -1 | cut -d' ' -f1)         
uid=0(root) gid=0(root) 組=0(root)

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

# cut -d':' -f7 /etc/passwd | sort | uniq -c | sort -nr | head -1 | tr -d '[0-9 ]'
/sbin/nologin

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

# sort -t':' -k3nr /etc/passwd | head -10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt
# 
# cat /tmp/maxusers.txt 
OPENSTACK:X:3003:5922::/HOME/OPENSTACK:/SBIN/NOLOGIN
SLACKWARE:X:2002:2016::/HOME/SLACKWARE:/BIN/TCSH
HUAZI2:X:1241:1241::/HOME/HUAZI2:/BIN/BASH
HUAZI1:X:1237:1237::/HOME/HUAZI1:/BIN/BASH
TEST1:X:1236:1236::/HOME/TEST1:/BIN/BASH
ARCHLINUX:X:1235:1235::/USERS/ARCHLINUX:/BIN/BASH
IAMKILLER:X:1234:1234::/OPT/.PRIVATE/IAMKILLER:/SBIN/NOLOGIN

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

# ifconfig | egrep '(inet addr:|inet )(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' -o   
inet 172.16.100.11
inet 127.0.0.1

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

# ls -A  /etc/ | grep .conf$ | tr 'a-z' 'A-Z' > /tmp/etc.conf
[root@c7-1 ~]# 
[root@c7-1 ~]# cat /tmp/etc.conf
.123.CONF
ASOUND.CONF
DNSMASQ.CONF
DRACUT.CONF
E2FSCK.CONF
ELINKS.CONF
HOST.CONF
KDUMP.CONF
KRB5.CONF
LD.SO.CONF
LIBAUDIT.CONF
LIBUSER.CONF
LOCALE.CONF
LOGROTATE.CONF
MAN_DB.CONF
MKE2FS.CONF
NSSWITCH.CONF
NTP.CONF
REDIS.CONF
REDIS-SENTINEL.CONF
RESOLV.CONF
RSYSLOG.CONF
SESTATUS.CONF
SUDO.CONF
SUDO-LDAP.CONF
SYSCTL.CONF
TCSD.CONF
VCONSOLE.CONF
YUM.CONF

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

# ls -A /var/ | wc -l   
21

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

# sort -t':' -k3n /etc/group | head -10 | cut -d':' -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

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

# cat /etc/{fstab,issue} > /tmp/etc.test
# 
# cat /tmp/etc.test

#
# /etc/fstab
# Created by anaconda on Mon May 23 18:04:04 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=9edd08de-e432-4196-8a06-2363c167f3e5 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
\S
Kernel \r on an \m

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

useradd 命令:
	創建用戶
	格式 - useradd [options] LOGIN
		-u uid: 指定用戶id [UID_MIN,UID_MAX] 定義在 /etc/login.defs
		-g gid: 指定組id or 組名, name or number  
		-c "" : 用的描述 comment
		-d : 創建時指定家目錄
		-s : 指定shell
		-G : 指定用戶的附加組 GROUP1[,GROUP2,...[,GROUPN]]]
		-r : 創建的是系統用戶
		-M : 不創建家目錄 

usermod 命令:
	用戶屬性修改
	格式 - usermod [options] LOGIN
		-u : 新uid
		-g : 新gid
		-s : 新shell
		-G : 新附加組,原來的附加組會覆蓋,如果想追加新的附加組 要用 -a選項
		-l : 新的名字
		-d : 修改家目錄,同時用 -m 選項 
		-m : 修改家目錄時 復制原家目錄的內容到新家目錄里
		-L : 鎖定指定用戶,在/etc/shadow 密碼字段前加!嘆號
		-U : 解鎖
		-e : YYYY-MM-DD 指明用戶帳號過期日期

userdel 命令:
	格式 - userdel [option] login
		-r 刪除用戶家目錄和郵件目錄
	# userdel -r xiaoming 刪除xiaoming用戶以及家目錄和郵件目錄

passwd 命令:
	修改當前用戶或其他用戶的密碼(管理員才有修改他人密碼的權限)
	格式 - passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [--stdin] [username]
		-l : 鎖定指定用戶,在/etc/shadow 密碼字段前加!嘆號
		-u : 解鎖
		-n mindays: 指定最短使用期限
		-x maxdays:最大使用期限
		-w warndays:提前多少天開始警告
		-i inactivedays:非活動期限;
		-S 查看用戶信息

		--stdin:從標準輸入接收用戶密碼;
			echo "PASSWORD" | passwd --stdin USERNAME

groupadd 命令:
	創建組
	格式 - groupadd [options] group
		-g gid 指定gid
		-r 創建系統組
	# groupadd -r test 添加test系統組

groupmod :
	修改組屬性
	groupmod [options] GROUP
	-g 指定新gid
	-n 修改組名 

groupdel 命令:
	刪除組
	# groupdel test 刪除 test組 此命令比較簡單


gpasswd 命令:
	給組添加密碼
	- 格式 gpasswd [option] group
	-a , 指定用戶到某組 -a 用戶名 要加入的組
	-d , 刪除用戶附加組 -d 用戶名 要刪除的組
	-A , 設置有管理權限的用戶列表
	# gpasswd test  給 test 組加密碼
	# gpasswd test -a openstack   將test組添加到 openstack用戶的附加組
	# gpasswd test -d openstack	  刪除 openstack 的附加組 test

finger 命令:
	查看用戶信息
		# finger root
		Login: root                             Name: root
		Directory: /root                        Shell: /bin/bash
		On since Fri Jun 17 09:07 (CST) on pts/1 from 172.16.100.1
		   5 seconds idle
		On since Fri Jun 17 09:15 (CST) on pts/2 from 172.16.100.1
		   3 minutes 41 seconds idle
		Mail last read Tue May 31 01:53 2016 (CST)
		No Plan.

chage 命令:
	修改用戶密碼過期信息
	- 格式 chage [options] LOGIN
		-E 帳號到期的日期
		-I 停滯時期 如果一個密碼已過期這些天,那么此帳號將不可用
		-m 密碼可更改的最小天數
		-M 密碼有效的最大天數
		-W 用戶密碼到期前,提前收到警告信息的天數
		-l 查看賬戶年齡信息

chsh 命令:
	修改用戶 shell
	- 格式 chsh [ -s shell ] [ -l ] [ -u ] [ -v ] [ username ]
		-s 要修改的shell
		-l 列出當前系統的shell
		# chsh -s /sbin/nologin  openstack
		# chsh openstack 交互式
		# chsh 修改當前用戶shell

id 命令:
	id [OPTION]... [USERNAME]
	查看用戶的相關信息
	-u 顯示用戶id
	-g 顯示組id
	-G 顯示所有組 附加組
	-n 顯示組或用戶名
	# id -g openstack  顯示 openstack 用戶的 基本組id
	# id -g -n openstack 顯示 openstack 用戶的 基本組名
	# id -G -n openstack 顯示 openstack 用戶的 附加組名


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

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

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

(4)、給用戶mageia添加密碼,密碼為mageedu;
	echo mageedu | passwd --stdin mageia

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

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

(7)、修改slackware的默認shell為/bin/tcsh;
	usermod slackware -s /bin/tcsh
	
(8)、為用戶slackware新增附加組admins;
	gpasswd admins -a slackware

(9)、為slackware添加密碼,且要求密碼最短使用期限為3天,最長為180天,警告為3天;
	echo 123 | passwd --stdin slackware
	passwd -n 3 -x 180 -w 3 slackware

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

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

(12)、使用echo命令,非交互式為openstack添加密碼。"
	echo 123 | passwd --stdin openstack

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

(0)
banbulabanbula
上一篇 2016-06-29 14:28
下一篇 2016-06-29 14:29

相關推薦

  • 馬哥教育網絡班21期-第六周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 vim編輯器的使用 vim模式:  a,編輯/命令模式;  b,insert/輸入模式  c,末行模式 打開文件:  vim    [option]…    file…  +#:打開文件后,直接讓光標…

    Linux干貨 2016-08-22
  • iproute家族命令

    1 ifconfig up 啟動指定網絡設備/網卡down 關閉指定網絡設備/網卡-a 顯示全部接口信息-s 顯示摘要信息add 設置指定網卡配置IPv6地址del 刪除指定網卡配置IPv6地址mtu<字節數> 設置網卡的最大傳輸單元(bytes)netmask<子網掩碼>設置網卡的子網掩碼multicast 為網卡設置組播標志 例子…

    Linux筆記 2018-04-15
  • Linux find命令使用詳則

    find命令 find命令用來在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄欲文件。并且將查找到的子目錄和文件全部進行顯示。 語法 find(選項)(參數) 選項 -amin<分鐘>:查找在指定時間曾被存取過的文件或者目錄,單位以分鐘計算; -ane…

    2017-08-03
  • 設計模式(一)工廠模式Factory(創建型)

      在面向對象編程中, 最通常的方法是一個new操作符產生一個對象實例,new操作符就是用來構造對象實例的。但是在一些情況下, new操作符直接生成對象會帶來一些問題。舉例來說, 許多類型對象的創造需要一系列的步驟: 你可能需要計算或取得對象的初始設置; 選擇生成哪個子對象實例; 或在生成你需要的對象之前必須先生成一些輔助功能的對象。 在…

    Linux干貨 2015-06-23
  • 如何在 Linux 下大量屏蔽惡意 IP 地址

    很多情況下,你可能需要在Linux下屏蔽IP地址。比如,作為一個終端用戶,你可能想要免受間諜軟件或者IP追蹤的困擾。或者當你在運行P2P軟件時。你可能想要過濾反P2P活動的網絡鏈接。如果你是一名系統管理員,你可能想要禁止垃圾IP地址訪問你們的公司郵件服務器?;蛘吣阋蛞恍┰蛳胍鼓承﹪以L問你的web服務。在許多情況下,然而,你的IP地址屏蔽列表可能會很快…

    Linux干貨 2015-02-26
  • linux上的文本三劍客之grep和文本查看工具

    linux上文本處理三劍客 grep,egrep,fgrep:文本過濾工具(模式:pattern)工具:     grep:基本正則表達式,-E:支持擴展正則表達式,-F:不支持正則表達式     egrep:擴展正則表達式,-G:支持基本正則表達式 ,-F:不支持正則表達式 &…

    Linux干貨 2016-08-07

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-29 15:14

    寫的很好,排版很漂亮,加油

欧美性久久久久