Linux第三周學習博客作業

對第三周學習的內容進行總結

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

代碼及運行結果如下

~]$ who | cut -d" " -f1 | uniq
root
sky

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

~]$ cat /etc/passwd | grep "^`who | sort -k3 | tail -1 | cut -d" " -f1`"
root:x:0:0:root:/root:/bin/bash

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

~]$ cat /etc/passwd | cut -d":" -f7 | sort | uniq -c | sort -n | tail -1 | grep -o "[^/]\+$"
nologin

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

~]$ cat /etc/passwd | sort -nt":" -k3 | tail -10 | tr "a-z" "A-Z" > /tmp/maxusers.txt
~]$ cat /tmp/maxusers.txt
MARIADB:X:997:995::/HOME/MARIADB:/SBIN/NOLOGIN
CHRONY:X:998:996::/VAR/LIB/CHRONY:/SBIN/NOLOGIN
POLKITD:X:999:997:USER FOR POLKITD:/:/SBIN/NOLOGIN
SKY:X:1000:1000:SKY:/HOME/SKY:/BIN/BASH
FEDORA:X:1002:1002:FEDORA CORE:/HOME/FEDORA:/BIN/SH
GENTOO:X:1003:1003::/USERS/GENTOO:/BIN/BASH
CENTOS:X:1004:1004::/HOME/CENTOS:/BIN/BASH
SKY1:X:1005:1005::/HOME/SKY1:/BIN/BASH
SKY2:X:1006:1006::/HOME/SKY2:/BIN/BASH
ARCHLINUX:X:1007:1007::/LVUSERS/ARCHLINUX/:/BIN/BASH

取出當前主機的IP地址

~]$ ifconfig | grep "broadcast" | grep -o "inet.*" | cut -d" " -f2
192.168.31.113

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

~]$ ls /etc/*.conf | grep -o "[^/]\+$" | tr [a-z] [A-Z] > /tmp/etc.conf
~]$ cat /tmp/etc.conf
ASOUND.CONF
CHRONY.CONF
DRACUT.CONF
E2FSCK.CONF
FUSE.CONF
GEOIP.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
RESOLV.CONF
RSYNCD.CONF
RSYSLOG.CONF
SESTATUS.CONF
SUDO.CONF
SUDO-LDAP.CONF
SYSCTL.CONF
TCSD.CONF
UPDATEDB.CONF
VCONSOLE.CONF
YUM.CONF

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

~]$ ls -d /var/* | wc -l
20

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

~]$ cat /etc/group | sort -nt":" -k3 | head -10 | cut -d":" -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

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

~]$ cat /etc/fstab /etc/issue > /tmp/etc.test
~]$ cat /tmp/etc.test

#
# /etc/fstab
# Created by anaconda on Tue Oct 10 18:33:44 2017
#
# 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
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/cdrom              /media/cdrom            iso9660 ro              0 0
\S
Kernel \r on an \m

總結描述用戶和組管理類命令的使用方法

用戶和組管理命令總結

  1. useradd命令:用于添加用戶
  • useradd [option] USERNAME 使用格式
  • -u選項 : 指定UID
  • -g選項 : 指定基本組
  • -G GROUP1,GROUP2… : 指定用戶的附加組, 可以是多個
  • -r選項 : 添加系統用戶(UID在1000+ centos7, 500+ centos6)
  • -d選項 : 指定家目錄
  • -s選項 : 指定默認shell
  • -c選項 : 設置用戶的注釋信息
  • -D選項 : 設置添加用戶的默認設置(即/etc/default/useradd文件中的選項)
  1. userdel命令:刪除用戶
  • userdel [option] USERNAME 使用格式
  • -r選項 : 遞歸刪除,可以在刪除用戶的同時,同時刪除與該用戶相關的家目錄文件
  1. groupadd命令:用與添加組
  • groupadd [option] GROUPNAME 使用格式
  • -g選項 : 指定GID
  • -r選項 : 添加系統組(GID在1000+ centos7, 500+ centos6)
  1. groupdel命令:刪除組
  • groupdel [option] GROUPNAME 使用格式
  1. id命令:查看用戶信息
  • id [option] USERNAME 使用格式
  • -u選項 : 顯示UID
  • -g選項 : 顯示GID
  • -G選項 : 顯示附加組的GID
  • -n選項 : 顯示名字,與-ugG連用
顯示用戶sky1的附加組的名字
~]$ id -Gn sky1
  1. su命令:切換用戶
  • su – USERNAME : 登錄式切換用戶,會重新讀取目標用戶的配置文件
  • su USERNAME : 非登錄式切換,不會重新讀取用戶的配置文件
  • su [-] USERNAME -c COMMAND : 使用目標用戶的身份運行指令
  1. usermod命令:修改用戶屬性
  • usermod [option] USERNAME 使用格式
  • -u選項 : 修改UID
  • -g選項 : 修改GID
  • -G GROUP1,GROUP2… : 指定用戶的附加組,可以指定多個組,與-a選項連用不會覆蓋用戶原來指定的附加組信息
  • -l選項 : 修改用戶的名字
  • -s選項 : 修改用戶的默認shell
  • -c選項 : 修改用戶的注釋信息
  • -d選項 : 修改用戶的家目錄
  • -L選項 : 鎖定用戶
  • -U選項 : 解鎖用戶
  • -e選項 : 修改用戶賬戶的過期時間
  • -f選項 : 修改用戶的非活動時間
為用戶sky1追加附加組sky,sky2
~]$ usermod -aG sky,sky2 sky1
修改用戶sky1在密碼過期的7天后被鎖定
~]$ usermod -f 7 sky1
  1. groupmod命令:修改組屬性
  • groupmod [option] GROUPNAME 使用格式
  • -g選項 : 修改組的GID
  • -n選項 : 修改組的名字
  1. passwd命令:設置用戶的密碼
  • passwd [option] USERNAME : 不加選項時就是設置用戶的密碼
  • -l選項 : 鎖定用戶
  • -u選項 : 解鎖用戶
  • -d選項 : 刪除用戶密碼
  • -n選項 : 設置最短使用期限
  • -x選項 : 設置最長使用期限
  • -w選項 : 設置提前多少天警告
  • -i選項 : 設置非活動期限
  • –stdin選項 : 從標準輸入接收用戶密碼
設置sky1用戶密碼到期提前5天警告
~]$ passwd -w sky1
設置"password"為用戶sky1的密碼
~]$ echo "password" | passwd --stdin sky1
  1. gpasswd命令:用于設置組密碼及添加修改用戶的附加組
  • gpasswd [option] GROUPNAME : 不加選項時就是設置該組的密碼
  • gpasswd -r GROUPNAME : 刪除組的密碼
  • gpasswd -a USERNAME GROUPNAME : 添加用戶到指定的組,同時保留以前添加的組
  • gpasswd -d USERNAME GROUPNAME : 從指定的組中刪除用戶
  • gpasswd -A USERNAME GROUPNAME : 指定某用戶為該組的管理員
  1. chage命令:修改關于用戶密碼的一些屬性
  • chage [option] USERNAME 命令格式
  • -d選項 : 修改用戶最近一次修改密碼的時間
  • -E選項 : 修改用戶的賬號到期時間
  • -I選項 : 修改用戶的非活動期限
設置用戶sky1的非活動期限為5天
~]$ chage -I 5 sky1
  1. newgrp命令:臨時切換基本組
  • newgrp GROUPNAME 如果用戶不屬于這個組,則需要輸入該組的密碼

用戶和組管理練習

  1. 創建組distro,其GID為2016
~]# groupadd -g 2016 distro
~]# cat /etc/group | grep distro
distro:x:2016:
  1. 創建用戶mandriva,其ID號為1005;基本組為distro
~]# useradd -u 1005 -g distro mandriva
~]# cat /etc/passwd | grep mandriva
mandriva:x:1005:2016::/home/mandriva:/bin/bash
  1. 創建用戶mageia,其ID號為1100,家目錄為/home/linux
~]# useradd -u 1100 -d /home/linux mageia
~]# cat /etc/passwd | grep mageia
mageia:x:1100:1100::/home/linux:/bin/bash
  1. 給用戶mageia添加密碼,密碼為mageedu
~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
  1. 刪除mandriva,但保留其家目錄
~]# userdel mandriva
~]# cat /etc/passwd | grep "mandriva"
~]# ls -a /home/mandriva
.  ..  .bash_logout  .bash_profile  .bashrc  .zshrc
  1. 創建用戶slackware,其ID號為2002,基本組為distro,附加組peguin
~]# useradd -u 2002 -g distro -G peguin slackware
~]# cat /etc/passwd /etc/group | grep -E "slackware|distro"
slackware:x:2002:2016::/home/slackware:/bin/bash
peguin:x:5001:slackware
distro:x:2016:
  1. 修改slackware的默認shell為/bin/tcsh
~]# usermod -s /bin/tcsh slackware
~]# cat /etc/passwd | grep "slackware"
slackware:x:2002:2016::/home/slackware:/bin/tcsh
  1. 為用戶slackware新增附加組admins
~]# groupadd admins
~]# usermod -aG admins slackware
~]# cat /etc/group | grep "slackware"
peguin:x:5001:slackware
admins:x:5003:slackware

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/90200

(0)
skysky
上一篇 2017-12-16
下一篇 2017-12-17

相關推薦

  • SHELL流程控制之循環

    當進行腳本編程時,語句執行的流程控制通常有三種: l  順序執行 l  選擇執行 l  循環執行   條件選擇if: if語句可以進行嵌套 if 判斷條件;then          條件為真的分支代碼 elif  判斷條件;th…

    Linux干貨 2016-08-18
  • Linux基礎入門命令

    在經過一個星期的入門學習后,對于LINUX的認識也從陌生到了基本了解??偨Y了一下一周所學習的基本命令。 一、想要查看你當前所在的終端?看下面幾條命令: 查看當前登陸的終端名:tty 、whoami ;   查看當前登陸的終端名的詳細信息:who am i ; 查看當前所有登陸的終端的詳細信息: w ; 二、SHELL 的相關用法 &nbs…

    2017-07-14
  • Python 課堂筆記

    第二天

    Linux干貨 2018-03-21
  • 什么是網站流量、UV、PV、IP

    什么是網站流量,什么叫網站流量?     通常說的網站流量(traffic)是指網站的訪問量,是用來描述訪問一個網站的用戶數量以及用戶所瀏覽的網頁數量等指標,常用的統計指標包括網站的獨立用戶數量、總用戶數量(含重復訪問者)、網頁瀏覽數量、每個用戶的頁面瀏覽數量、用戶在網站的平均停留時間等。     …

    Linux干貨 2015-03-20
  • sed命令、crontab任務、簡單腳本練習(21期網絡班第六周博客作業)

    vim使用: 直接使用sed模式空間演示,基本語法與vim命令模式類似(需注意vim默認定界為當前行,一般需要在前面加1,$定界為全文,而sed不需要) 1、 復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#;      sed &#03…

    Linux干貨 2016-08-22
  • 本周學習總結

    這周我們學習了很多比較深的命令,有點燒腦,這次我總結一下sed命令。      sed 是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(patternspace ),接著用sed 命令處理緩沖區中的內容,處理完成后,把緩沖區的容送往屏幕。然后讀入下行,執行下一個循環。如果…

    2017-08-28

評論列表(1條)

  • 馬哥教育
    馬哥教育 2018-01-07 16:22

    內容上基本沒有什么問題,排版也比較清晰~~繼續加油哈

欧美性久久久久