Linux基礎學習總結(三)

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

[leexide@leeblog ~]$who | cut -d" " -f1 | uniq

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

last -n 1 | cut -d" " -f1 | head -1

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

[leexide@leeblog ~]$cat /etc/passwd | cut -d":" -f7 | uniq -c | sort -n | tail -1 | awk '{print $2}'
/sbin/nologin

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

[leexide@leeblog ~]$cat /etc/passwd | sort -n -k 3 -t: | tr 'a-z' 'A-Z' >/tmp/maxusers.txt

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

[leexide@leeblog ~]$ifconfig eth0 | grep "inet" | awk '{print $2}'

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

[leexide@leeblog ~]$ls /etc/*.conf  |  tr 'a-z' 'A-Z'  > /tmp/etc.conf

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

[leexide@leeblog ~]$find /var -type f | wc -l

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

[leexide@leeblog ~]$cat /etc/group | sort -n -k 3 -t: | head -10 | cut -d":" -f1

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

[leexide@leeblog ~]$ cat /etc/{fstab,issue} > /tmp/etc.test

10、總結描述用戶和組管理類命令的使用方法以及一些具體的示例

(1)Linux用戶和用戶組簡介

       Linux是一個多用戶操作系統,即同時支持多個用戶同時登錄到系統共同使用計算機資源,那么每個要登錄到計算機系統的唯一的標識就叫做一個用戶,這個唯一的標識實現了資源的隔離,使得多個用戶同時登錄到系統時不會導致系統的混亂,那么,當用戶過多時,對每個用戶的管理就會變得十分困難和繁瑣,于是,用戶組的作用就是實現對用戶的分組管理,使得對用戶的管理變得簡潔。而對于計算機來說,字符串并非是其擅長處理的,數字才是,所以每個用戶都有一個唯一的標識與用戶相對應的數字,叫做用戶或用戶組的id,類似人的身份證。但是并非每個人都有使用計算機資源的權利,因此,每個用戶想要登錄到系統還需要使用憑證,通俗來說就是需要所謂的密碼來登錄系統。而用戶登錄系統的整個過程則是根據/etc/passwd文件來實現驗證。那么對于管理 員來說,對系統上用戶的管理就顯得至關重要。

(2)Linux用戶和用戶組說明

Linux中用戶有:管理員和普通用戶兩類:

 管理員:也叫超級用戶,用戶id為0,擁有系統管理的最高權限

 普通用戶:系統用戶和 登錄用戶:

     系統用戶:centos6上用戶id是1-499,centos7上則是1-999;

      登錄用戶:centos6上用戶id是500-60000,centos7則是1000-60000; 

Linux上的用戶組:管理員組和普通用戶組:

   管理員組:組id為0

   普通用戶:分為系統用戶組和登錄用戶組

     系統用戶組:centos6上組id為1-499,centos7上組id為1-999

     登錄用戶組:centos6上組id是500-60000,centos7組id為1000-60000;’

(3)總結:

用戶管理命令:

A、useradd:添加用戶B、查看每個用戶的用戶id和組id信息

  語法:useradd [options] use_rname

  常用選項:

  •  -r:創建系統用戶,所謂的系統用戶就是系統剛啟動時還沒有用戶登錄時,很多服務進程需要啟動時必須以某個用戶的身份運行,而此類用戶就是系統用戶。

  • -u uid:創建用戶時指定用戶id

  • -g gid:創建用戶時指定用戶的基本組id

  • -G Group_name:創建用戶是指定附加組,多個組之間用逗號分隔

  • -d  dir:創建家用戶時指定其家目錄

  • -s shell :創建用戶時指定其默認的shell

B、groupadd:添加用戶組

語法:groupadd [options] group_name   

常用選項:

  • -g gid:創建組時指定用戶組id,若不指定則在上一個組id的值加1

  • -r :創建系統組

C、usermod:修改用戶屬性

語法:usermod [options] username

 常用選項:

  • -u uid:修改uid為指定的id

  • -g gid:修改gid為指定的id

  • -G group_name:修改附加組

  • -m dir:修改家目錄為指定的目錄

  • -l login_name:修改登錄名

  • -s shell:修改用戶的默認shell

  • -L:鎖定指定的用戶

  • -U:對指定的用戶解鎖

D、userdel:刪除用戶

 語法:userdel [options] user_name

常用選項:

  • -r : 刪除用戶時同時刪除其家目錄

E、passwd:修改用戶密碼

語法:passwd [options] user_name

常用選項:

  • -d : 清除用戶密碼串

  • -l:鎖定用戶

  • -S:查看指定用戶的密碼狀態信息

  • -u:對指定用戶解鎖

  • -e date:指定過期時間

  • -i :非活動時間

  • -n :密碼的最短使用期限 

F、gpasswd:管理用戶組

語法:gpasswd [options] group_name

常用選項:

  • -a username:將指定的用戶添加到指定組中

  • -d username:將指定用戶從指定的組中移除

使用示例:

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

groupadd -g 2016 distro

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

useradd -u 1005 -g distro  mandriva

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

useradd -u 1100 -d /home/linux mageia

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

echo  "mageedu" | passwd –stdin mageia

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

userdel mandriva

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

useradd -u 2002 -g distro -G peguin slackware

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

usermod -s /bin/tcsh slackware

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

usermod -G admins

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

passwd -n 3 -x  180 -w 3 slackware

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

useradd -u 3003 -g clouds -G peguin,nova openstack

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

useradd -r -s /sbin/nologin mysql

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

echo "openstack"  | passwd --stdin openstack

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

(0)
LeexideLeexide
上一篇 2016-10-03
下一篇 2016-10-03

相關推薦

  • while循環中的一個常見問題

    在樓主剛剛學習接觸while循環的時候,發現了一個問題,在while循環內部對變量賦值、定義變量、數組定義等等環境,在循環外面失效。 一個簡單的測試腳本如下: 執行結果證明,$new_var的結果是空值。在google上查了查,才發現問題出在管道上。 先看看下面的內容。 while循環的寫法有好幾種,它的語法結構為: while test_cmd_list;…

    2017-08-26
  • Linux學習總結02—Linux的操作系統發展史(原創)

       我們都知道,在美國賓夕法尼亞大學,有那么一種計算機,叫ENIAC,這種機器耗電量是非常大,而且主機也是龐大,它誕生于1946年的2月14日的情人節,確實有紀念意義,就算是約炮也是拿著智能手機先搖一搖,好看就勾搭,不好看的就拉黑,這臺計算機可并不是造福人類的,只是計算數據,我想,當時的情況是這樣,在這臺計算機沒有出世之前,那幫工程師們…

    Linux干貨 2016-10-29
  • grep文本查找和正則表達式

    一、grep grep: (Global search REgular expression and Print outthe line)全局查找正則表達式并且打印結果行。不會對輸入的文本進行修改。 Unix的grep家族包括grep、egrep和fgrep,egrep是grep的擴展,支持更多的正則元字符; fgrep就是fixed grep或f…

    Linux干貨 2016-08-07
  • N22-妙手-第七周課程練習

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]# mke2fs -t ext4 -m 2 -L MY…

    Linux干貨 2016-10-09
  • 簡單的文本處理工具和正則表達式

    一、文本工具     在linux中,有很多優秀且功能強大的文本處理工具,對文件內容進行查找、替換、刪除、排序等操作,是linux進行文本處理變得特別方便。日常工作中,經常會用文本處理進行日志分析,文本抽取等,所以掌握文本處理,將會對我們的工作起到極大的作用。 cat:查看文件    &n…

    Linux干貨 2016-08-10
  • Linux的文本處理工具之sed的使用

    Sed文本處理工具 一、認識sed工具: sed是一種流編輯器,一次處理一行內容。當進行處理時,把當前處理的行存儲在臨時的緩沖區中(俗稱“模式空間”)后,再用sed命令去處理緩沖區的內容,最后把處理過的緩沖區內容送往屏幕打印顯示。接著處理下一行,不斷重復進行讀取、處理、輸出,直到文件末尾。  注:sed命令處理文本,文件內容本身并沒有改變,除非你使…

    Linux干貨 2016-08-10
欧美性久久久久