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

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

一.回顧第二周的學習內容

1,Linux上的文件管理類的命令:
mkdir:創建目錄:
[root@localhost ~]# mkdir /tmp/fstab2222
[root@localhost ~]# ls -l /tmp/
total 64
drwxr-xr-x.  2 root root 4096 Jul 10 19:32 aaa
-rw-r--r--.  1 root root    0 Jul 10 21:19 aaaa
drwxr-xr-x.  3 root root 4096 Jul 10 19:37 ccc
drwxr-xr-x.  2 root root 4096 Jul 10 19:37 ddd
-rw-r--r--.  1 root root    0 Jul 12 09:51 +%F-%H-%M-%S
-rw-r--r--.  1 root root  884 Jul 10 19:24 fstab111
drwxr-xr-x.  2 root root 4096 Jul 12 14:30 fstab2222

- cp [OPTION]... [-T] SOURCE DEST
- cp [OPTION]... SOURCE... DIRECTORY
- cp [OPTION]... -t DIRECTORY SOURCE...
以上注意幾點:
例如:cp src DEST....
src是文本文件:如果DEST不存在,則復制到目標文件中,并將src內容覆蓋至DEST上:

src是文本文件:如果DEST存在,則復制到目標文件中,則將目標文件內容覆蓋:

如果DEST是目錄:在DEST下新建與原文件同名的文件,并將SRC中內容填充至新文件中;

如果SRC是目錄:
    如果DEST不存在:創建目標目錄,復制SRC目錄中所有文件至DEST中;
    如果DEST存在:
        如果DEST是文件:報錯
        如果DEST是目錄:復制到此目錄中
☆★☆★這里的其實已經使用alias命名別名的方法進行了命令別名了:
[root@localhost ~]# alias
alias cp='cp -i'
[root@localhost ~]# cat ~/.bashrc 
# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias grep='grep --color'
# Source global definitions
if [ -f /etc/bashrc ]; then
    . /etc/bashrc
fi
此上是對當前用用戶永久生效,如想對全局生效則需要修改/etc/profile.d/*.sh

rmdir:刪除目錄命令
如要刪除含有內容的目錄:建議使用rm -rf強制刪除命令:此條命令慎用!

mv:移動或剪切
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
常用選項:
    -i:交互式
    -f:強制

rm:刪除命令
rm [OPTION]... FILE... 
常用選項:
-i: 交互式
-f: 強制刪除
-r: 遞歸

glob文件通配符:
*:任意長度字符:
?:任意單個字符:
[]:匹配內的任意單個字符:
[^]:匹配內以外的任意字符:
[:space;]:表示空白字符:
[:digit:]:任意數字-->[0-9]:
[:lower:]任意小寫字母:
[:upper:]任意大寫字母;
[:alpha:]任意大小寫字母;
[:alnum:]任意數字或字母;
[:punct:]標點符號;

stat查看數據源文件:
[root@localhost tmp]# stat /etc/
 File: `/etc/'
Size: 12288         Blocks: 24         IO Block: 4096   directory
Device: 802h/2050d  Inode: 1179649     Links: 114
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2016-07-12 09:54:41.916999187 -0400
Modify: 2016-07-10 20:55:06.585989155 -0400
Change: 2016-07-10 20:55:06.585989155 -0400

二.第三周博客及其作業:

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

[root@localhost tmp]# who | cut -d' ' -f1 | sort -u
root
wostop

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

[root@localhost tmp]# w | tail -n1
wostop   pts/4    192.168.1.3      14:45    1:11m  0.01s  0.01s -bash

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

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

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

[root@localhost ~]# sort -t':' -k3 -n /etc/passwd | tail -n1 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt

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

ifconfig |grep '^[[:space:]]\{1,\}inet' | cut -d':' -f3 | cut -d' ' -f1
☆★☆★此上為如果當前主機有多個地址,包括loopback地址都能抓出來?。。?!☆★☆★

[root@localhost ~]#   ifconfig |grep '^[[:space:]]\{1,\}inet' | head -n1 | cut -d':' -f3 | cut -d' ' -f1
192.168.1.255

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

ls /etc/*.conf | tr 'a-z' 'A-Z' >> /tmp/etc.conf1

ls /etc/*.conf | tr 'a-z' 'A-Z' | tee /tmp/etc.conf

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

[root@localhost ~]# ls -l /var/ |wc -l
22

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

[root@localhost ~]# cat /etc/group | sort -t':' -k3 -n | tail -n10 | cut -d':' -f1
abrt
fuse
pulse-access
pulse
rtkit
desktop_user_r
desktop_admin_r
wostop
user1
nfsnobody

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

cat /etc/fstab /etc/issue >> /tmp/etc.test
cat /etc/fstab /etc/issue &>> /tmp/etc.test

找出ifconfig命令結果中1-255之間的數值;

[root@localhost ~]# ifconfig | grep '[0-9]\{1,\}[/./][0-9]\{1,\}[/./][0-9]\{1,\}[/./][0-9]\{1,\}'
      inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
      inet addr:127.0.0.1  Mask:255.0.0.0

找出ifconfig命令結果中的IP地址;

[root@localhost ~]# ifconfig | grep 'inet addr:[1-9]\{1,\}[/./][0-9]\{1,\}[/./][0-9]\{1,\}[/./][1-9]\{1,\}' 
      inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
      inet addr:127.0.0.1  Mask:255.0.0.0

 ifconfig | grep -o 'inet addr:[1-9]\{1,\}[/./][0-9]\{1,\}[/./][0-9]\{1,\}[/./][1-9]\{1,\}'
**inet addr:192.168.1.5**
**inet addr:127.0.0.1**

☆★☆★此處請老師幫忙看一下,我是否匹配對??!

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

用戶和組管理
Linux用戶:USERNAME/UID
    管理員:root,0
    普通用戶:1-65535
    系統用戶:1-499

Linux組:Gropuname/GID
    管理員組:root 0
    普通組:
        系統組:1-499(CentOS6),1-999(CentOS7)
        普通組:500+(CentOS6),1000+(CentOS7)

Linux安全上下文:
    運行中的程序:進程 (process)

    以進程發起者的身份運行:
        root:cat
        tom:cat

進程所能夠訪問的所有資源的權限取決于進程的發起者的身份;

Linux組的類別:
    用戶的基本組(主組):
    此外用戶也可以擁有額外組:


Linux用戶和組相關的配置文件:
    /etc/passwd:用戶及其屬性信息(名稱,UID,基本組ID等等)
    /etc/group:組及其屬性信息:
    /etc/shadow:用戶密碼及其相關屬性:
    /etc/gshadow:組密碼及其相關屬性:在用戶完成基本組切換時使用
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash

[root@localhost ~]# cat /etc/group 
root:x:0:

[root@localhost ~]# cat /etc/shadow
root:$6$FcyUxvmkdOBFwgZe$hiQvqaZUBrya755brzKaSPaFXh0.3oKlsOo2UvcAr8UIZPsZocBda2y10qPADitakgpQYe0jP3DfReWVRl

[root@localhost ~]# cat /etc/gshadow
root:::


/etc/passwd:
name:password:UID:GID:GECOS:directory:shell

用戶名:密碼:UID:GID:GECOS:主目錄:默認shell


/etc/group:
group_name:password:GID:user_list

組名:組密碼:GID:以當前組為附加組的用戶列表(分隔符為逗號)

/etc/shadow
用戶名:加密了的密碼:最近一次更改密碼的日期:密碼的最小使用期限:最大密碼使用期限:密碼警告時間段:密碼禁用期:賬戶過期日期:保留字段

相關命令

**用戶創建: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: 創建系統用戶
CentOS 6: ID<500
CentOS 7: ID<1000
默認值設定:/etc/default/useradd文件中

練習:創建用戶gentoo,附加組為distro和linux,默認shell為/bin/csh,注釋信息為"Gentoo Distribution"; 
useradd gentoo -G distro,linux -s /bin/csh -c "Gentoo Distribution"

**組創建:groupadd**
groupadd [OPTION]... group_name

-g GID: 指明GID號;[GID_MIN, GID_MAX]
-r: 創建系統組;
CentOS 6: ID<500
CentOS 7: ID<1000
查看用戶相關的ID信息:id
    id [OPTION]... [USER]
    -u: UID
    -g: GID
    -G: Groups
    -n: Name    

切換用戶或以其他用戶身份執行命令:su
su [options...] [-] [user [args...]]

**切換用戶的方式:**
su UserName:非登錄式切換,即不會讀取目標用戶的配置文件;
su - UserName:登錄式切換,會讀取目標用戶的配置文件;完全切換;

☆★☆★Note:root su至其他用戶無須密碼;非root用戶切換時需要密碼;☆★☆★

**用戶屬性修改:usermod**
    usermod [OPTION] 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: 設定非活動期限;

**給用戶添加密碼:passwd**
passwd [OPTIONS] UserName: 修改指定用戶的密碼,僅root用戶權限
    passwd: 修改自己的密碼;
    常用選項:
        -l: 鎖定指定用戶
        -u: 解鎖指定用戶
        -n mindays: 指定最短使用期限
        -x maxdays:最大使用期限
        -w warndays:提前多少天開始警告
        -i inactivedays:非活動期限;
        --stdin:從標準輸入接收用戶密碼;
        echo "PASSWORD" | passwd --stdin USERNAME
        Note: /dev/null, bit buckets
        /dev/zero, 

**刪除用戶:userdel**
    userdel [OPTION]... login
        -r: 刪除用戶家目錄;

**組屬性修改:groupmod**
    groupmod [OPTION]... group
        -n group_name: 新名字
        -g GID: 新的GID;

**組刪除:groupdel**
    groupdel GROUP


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

**newgrp命令:臨時切換基本組;**
    如果用戶本不屬于此組,則需要組密碼;

**修改用戶屬性:chage**
    chage [OPTION]... LOGIN
        -d LAST_DAY
        -E, --expiredate EXPIRE_DATE
        -I, --inactive INACTIVE
        -m, --mindays MIN_DAYS
        -M, --maxdays MAX_DAYS
        -W, --warndays WARN_DAYS

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

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

[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# cat /etc/group | grep "^distro" 
distro:x:2016:

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

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

[root@localhost ~]# cat /etc/passwd /etc/group | grep "2016"
mandriva:x:1005:2016::/home/mandriva:/bin/bash
distro:x:2016:

#### (3)、創建用戶mageia,其ID號為1100,家目錄為/home/linux; #### [root@localhost ~]# useradd -u 1100 -d /home/linux mageia

[root@localhost ~]# cat /etc/passwd | grep "^mageia"
mageia:x:1100:1100::/home/linux:/bin/bash

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

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

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

[root@localhost ~]# cd /home/
[root@localhost home]# ls
gentoo  linux  lost+found  mandriva  user1  wostop
[root@localhost home]# userdel mandriva
[root@localhost home]# ls
gentoo  linux  lost+found  mandriva  user1  wostop

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

[root@localhost ~]# useradd -u 2002 -g distro -G peguin shackware

root@localhost ~]# cat /etc/passwd /etc/group | grep "shackware"
shackware:x:2002:2016::/home/shackware:/bin/bash
peguin:x:2017:shackware

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

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

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

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

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

[root@localhost ~]# echo 'mageedu' | passwd --stdin shackware
Changing password for user shackware.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd -n 3 -x 180 -w 3 shackware
Adjusting aging data for user shackware.
passwd: Success

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

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

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

[root@localhost ~]# useradd -s /sbin/nologin mysql
[root@localhost ~]# cat /etc/passwd | grep "^mysql"
mysql:x:3004:3004::/home/mysql:/sbin/nologin

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

[root@localhost ~]# echo 'mageedu' | passwd --stdin openstack<--更改用戶 openstack 的密碼 。
Changing password for user openstack.
passwd: all authentication tokens updated successfully.

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

(0)
wostopwostop
上一篇 2016-07-16 22:23
下一篇 2016-07-16 22:24

相關推薦

  • 系統管理至grub故障排錯及自建linux

    第二章    系統啟動故障排除     1、grub配置文件寫錯,無法進入系統     步驟:(修復完成后記得修改配置文件為正確的文件)     方法一:進入啟動菜單項后,修改菜單項為正確的內容,然后…

    Linux干貨 2016-09-13
  • OpenSSL:實現創建私有CA、簽署證書請求詳解

    一、OpenSSL:CA默認配置信息     1.證書簽發機構CA:公共信任CA、私有CA                建立私有CA方式如下: 小范圍測試使用openssl、 大…

    Linux干貨 2016-04-30
  • httpd配置

    httpd配置 修改監聽的IP和端口(port) 持久連接 MPM DSO(Dynamic Shared Object) main server的文檔頁面路徑 站點訪問控制 定義站點主頁面 定義路徑別名 設定默認字符集 日志 基于用戶的訪問控制 虛擬主機 httpd狀態頁面 使用壓縮模塊mod_daflate優化速度 基于IP 為每個虛擬主機至少準備一個IP…

    Linux干貨 2016-12-21
  • AWK

    GNU awk 全稱:Aho,Weiberger,Kernighan,是三個作者的名字,所以簡稱為awk awk:報告生成器,主要用來格式化文本輸出的,它能夠實現在處理文本文件時對文檔中的字段有條件的顯示,而且將顯示的結果用非常美觀的文本形式給予輸出。我們所用的awk其實就是gawk,他是一個符號鏈接指向gawk的。 gawk – pattern…

    Linux干貨 2016-09-23
  • 超級用戶切換普通用戶后如何重置root密碼

    今天在使用su命令切換root用戶和普通用戶使用中不小心改了root密碼,在普通用戶條件下怎么也切換不到root用戶,于是通過搜索和嘗試終于改了root密碼,現以centos7為例總結如下: 1、首先進入開啟菜單,按下e鍵進入編輯模式,找到ro那一行,將ro改為rw,在語言后面加上init=/bin/sh 2、根據提示按下ctrl-x鍵(注意選中x) 3、嘗…

    Linux干貨 2017-03-27
  • 于浩的第一篇隨筆

    人生只有兩件事,努力工作,享受生活!

    2018-03-26

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-17 20:40

    寫的很好,排版也很漂亮,在仔細看看ip地址匹配的問題,加油

欧美性久久久久