列出當(dāng)前系統(tǒng)上所有已經(jīng)登錄的用戶的用戶名,同一個(gè)用戶登錄多次,只顯示一次即可
代碼及運(yùn)行結(jié)果如下
~]$ who | cut -d" " -f1 | uniq
root
sky
取出最后登錄到當(dāng)前系統(tǒng)的用戶的相關(guān)信息
~]$ cat /etc/passwd | grep "^`who | sort -k3 | tail -1 | cut -d" " -f1`"
root:x:0:0:root:/root:/bin/bash
取出當(dāng)前系統(tǒng)上被用戶當(dāng)作其默認(rèn)shell的最多的那個(gè)shell
~]$ cat /etc/passwd | cut -d":" -f7 | sort | uniq -c | sort -n | tail -1 | grep -o "[^/]\+$"
nologin
將/etc/passwd中的第三個(gè)字段數(shù)值最大的后10個(gè)用戶的信息全部改為大寫后保存至/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
取出當(dāng)前主機(jī)的IP地址
~]$ ifconfig | grep "broadcast" | grep -o "inet.*" | cut -d" " -f2
192.168.31.113
列出/etc目錄下所有以.conf結(jié)尾的文件的文件名,并將其名字轉(zhuǎn)換為大寫后保存至/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目錄下一級(jí)子目錄或文件的總個(gè)數(shù)
~]$ ls -d /var/* | wc -l
20
取出/etc/group文件中第三個(gè)字段數(shù)值最小的10個(gè)組的名字
~]$ 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文件的內(nèi)容合并為同一個(gè)內(nèi)容后保存至/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
總結(jié)描述用戶和組管理類命令的使用方法
用戶和組管理命令總結(jié)
- useradd命令:用于添加用戶
- useradd [option] USERNAME 使用格式
- -u選項(xiàng) : 指定UID
- -g選項(xiàng) : 指定基本組
- -G GROUP1,GROUP2... : 指定用戶的附加組免钻, 可以是多個(gè)
- -r選項(xiàng) : 添加系統(tǒng)用戶(UID在1000+ centos7, 500+ centos6)
- -d選項(xiàng) : 指定家目錄
- -s選項(xiàng) : 指定默認(rèn)shell
- -c選項(xiàng) : 設(shè)置用戶的注釋信息
- -D選項(xiàng) : 設(shè)置添加用戶的默認(rèn)設(shè)置(即/etc/default/useradd文件中的選項(xiàng))
- userdel命令:刪除用戶
- userdel [option] USERNAME 使用格式
- -r選項(xiàng) : 遞歸刪除另患,可以在刪除用戶的同時(shí),同時(shí)刪除與該用戶相關(guān)的家目錄文件
- groupadd命令:用與添加組
- groupadd [option] GROUPNAME 使用格式
- -g選項(xiàng) : 指定GID
- -r選項(xiàng) : 添加系統(tǒng)組(GID在1000+ centos7, 500+ centos6)
- groupdel命令:刪除組
- groupdel [option] GROUPNAME 使用格式
- id命令:查看用戶信息
- id [option] USERNAME 使用格式
- -u選項(xiàng) : 顯示UID
- -g選項(xiàng) : 顯示GID
- -G選項(xiàng) : 顯示附加組的GID
- -n選項(xiàng) : 顯示名字忿峻,與-ugG連用
顯示用戶sky1的附加組的名字
~]$ id -Gn sky1
- su命令:切換用戶
- su - USERNAME : 登錄式切換用戶,會(huì)重新讀取目標(biāo)用戶的配置文件
- su USERNAME : 非登錄式切換辕羽,不會(huì)重新讀取用戶的配置文件
- su [-] USERNAME -c COMMAND : 使用目標(biāo)用戶的身份運(yùn)行指令
- usermod命令:修改用戶屬性
- usermod [option] USERNAME 使用格式
- -u選項(xiàng) : 修改UID
- -g選項(xiàng) : 修改GID
- -G GROUP1,GROUP2... : 指定用戶的附加組逛尚,可以指定多個(gè)組,與-a選項(xiàng)連用不會(huì)覆蓋用戶原來(lái)指定的附加組信息
- -l選項(xiàng) : 修改用戶的名字
- -s選項(xiàng) : 修改用戶的默認(rèn)shell
- -c選項(xiàng) : 修改用戶的注釋信息
- -d選項(xiàng) : 修改用戶的家目錄
- -L選項(xiàng) : 鎖定用戶
- -U選項(xiàng) : 解鎖用戶
- -e選項(xiàng) : 修改用戶賬戶的過(guò)期時(shí)間
- -f選項(xiàng) : 修改用戶的非活動(dòng)時(shí)間
為用戶sky1追加附加組sky,sky2
~]$ usermod -aG sky,sky2 sky1
修改用戶sky1在密碼過(guò)期的7天后被鎖定
~]$ usermod -f 7 sky1
- groupmod命令:修改組屬性
- groupmod [option] GROUPNAME 使用格式
- -g選項(xiàng) : 修改組的GID
- -n選項(xiàng) : 修改組的名字
- passwd命令:設(shè)置用戶的密碼
- passwd [option] USERNAME : 不加選項(xiàng)時(shí)就是設(shè)置用戶的密碼
- -l選項(xiàng) : 鎖定用戶
- -u選項(xiàng) : 解鎖用戶
- -d選項(xiàng) : 刪除用戶密碼
- -n選項(xiàng) : 設(shè)置最短使用期限
- -x選項(xiàng) : 設(shè)置最長(zhǎng)使用期限
- -w選項(xiàng) : 設(shè)置提前多少天警告
- -i選項(xiàng) : 設(shè)置非活動(dòng)期限
- --stdin選項(xiàng) : 從標(biāo)準(zhǔn)輸入接收用戶密碼
設(shè)置sky1用戶密碼到期提前5天警告
~]$ passwd -w sky1
設(shè)置"password"為用戶sky1的密碼
~]$ echo "password" | passwd --stdin sky1
- gpasswd命令:用于設(shè)置組密碼及添加修改用戶的附加組
- gpasswd [option] GROUPNAME : 不加選項(xiàng)時(shí)就是設(shè)置該組的密碼
- gpasswd -r GROUPNAME : 刪除組的密碼
- gpasswd -a USERNAME GROUPNAME : 添加用戶到指定的組逛漫,同時(shí)保留以前添加的組
- gpasswd -d USERNAME GROUPNAME : 從指定的組中刪除用戶
- gpasswd -A USERNAME GROUPNAME : 指定某用戶為該組的管理員
- chage命令:修改關(guān)于用戶密碼的一些屬性
- chage [option] USERNAME 命令格式
- -d選項(xiàng) : 修改用戶最近一次修改密碼的時(shí)間
- -E選項(xiàng) : 修改用戶的賬號(hào)到期時(shí)間
- -I選項(xiàng) : 修改用戶的非活動(dòng)期限
設(shè)置用戶sky1的非活動(dòng)期限為5天
~]$ chage -I 5 sky1
- newgrp命令:臨時(shí)切換基本組
- newgrp GROUPNAME 如果用戶不屬于這個(gè)組黑低,則需要輸入該組的密碼
用戶和組管理練習(xí)
- 創(chuàng)建組distro,其GID為2016
~]# groupadd -g 2016 distro
~]# cat /etc/group | grep distro
distro:x:2016:
- 創(chuàng)建用戶mandriva,其ID號(hào)為1005酌毡;基本組為distro
~]# useradd -u 1005 -g distro mandriva
~]# cat /etc/passwd | grep mandriva
mandriva:x:1005:2016::/home/mandriva:/bin/bash
- 創(chuàng)建用戶mageia克握,其ID號(hào)為1100,家目錄為/home/linux
~]# useradd -u 1100 -d /home/linux mageia
~]# cat /etc/passwd | grep mageia
mageia:x:1100:1100::/home/linux:/bin/bash
- 給用戶mageia添加密碼枷踏,密碼為mageedu
~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
- 刪除mandriva菩暗,但保留其家目錄
~]# userdel mandriva
~]# cat /etc/passwd | grep "mandriva"
~]# ls -a /home/mandriva
. .. .bash_logout .bash_profile .bashrc .zshrc
- 創(chuàng)建用戶slackware,其ID號(hào)為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:
- 修改slackware的默認(rèn)shell為/bin/tcsh
~]# usermod -s /bin/tcsh slackware
~]# cat /etc/passwd | grep "slackware"
slackware:x:2002:2016::/home/slackware:/bin/tcsh
- 為用戶slackware新增附加組admins
~]# groupadd admins
~]# usermod -aG admins slackware
~]# cat /etc/group | grep "slackware"
peguin:x:5001:slackware
admins:x:5003:slackware