列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
who | tr -s “ “ | cut -d “ ” -f1 | sort -u
----------------------------------------
[root@localhost tmp]# who | tr -s “ “ | cut -d" " -f1 | sort -u
linuxprobe
root
----------------------------------------
取出最后登录到当前系统的用户的相关信息。
who | grep -o "^[[:alnum:]]\+" | sort -u
----------------------------------------
[root@localhost tmp]# who | grep -o "^[[:alnum:]]\+" | sort -u
linuxprobe
root
----------------------------------------
取出当前系统上被用户当作其默认shell的最多的那个shell。
sort -t: -k7 /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1 | cut -c 6-8
----------------------------------------
[root@localhost ~]# sort -t: -k7 /etc/passwd | cut -d: -f7 | uniq -c | sort -n | tail -1 | cut -c 6-8
34
----------------------------------------
将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
sort -t: -k3 -n /etc/passwd | tail -10 | tr 'a-z' 'A-Z' | tee /tmp/maxusers.txt
----------------------------------------
[root@localhost ~]# sort -t: -k3 -n /etc/passwd | tail -10 | tr 'a-z' 'A-Z' | tee /tmp/maxusers.txt
COLORD:X:997:996:USER FOR COLORD:/VAR/LIB/COLORD:/SBIN/NOLOGIN
UNBOUND:X:998:997:UNBOUND DNS RESOLVER:/ETC/UNBOUND:/SBIN/NOLOGIN
POLKITD:X:999:998:USER FOR POLKITD:/:/SBIN/NOLOGIN
LINUXPROBE:X:1000:1000:LINUXPROBE:/HOME/LINUXPROBE:/BIN/BASH
HADOOP:X:2005:2005:HADOOP:/HOME/HADOOP:/BIN/BASH
BASH:X:2006:2006::/HOME/BASH:/BIN/BASH
TESTBASH:X:2007:2007::/HOME/TESTBASH:/BIN/BASH
BASHER:X:2008:2008::/HOME/BASHER:/BIN/BASH
NOLOGIN:X:2009:2009::/HOME/NOLOGIN:/SBIN/NOLOGIN
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
----------------------------------------
取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
ifconfig | grep -o 1[0-9][0-9].1[0-9][0-9].* | cut -d" " -f1
----------------------------------------
[root@localhost ~]# ifconfig | grep -o 1[0-9][0-9].1[0-9][0-9].* | cut -d" " -f1
192.168.109.128
----------------------------------------
列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
ls /etc/*.conf | tr 'a-z' 'A-Z' | tee /tmp/etc.conf
----------------------------------------
[root@localhost ~]# ls /etc/*.conf | tr 'a-z' 'A-Z' | tee /tmp/etc.conf
/ETC/ASOUND.CONF
/ETC/BRLTTY.CONF
/ETC/CHRONY.CONF
/ETC/COLORD.CONF
/ETC/DNSMASQ.CONF
/ETC/DRACUT.CONF
/ETC/E2FSCK.CONF
/ETC/FPRINTD.CONF
/ETC/FUSE.CONF
/ETC/HBA.CONF
/ETC/HOST.CONF
.....
----------------------------------------
显示/var目录下一级子目录或文件的总个数。
ls /var | wc -l
----------------------------------------
[root@localhost ~]# ls /var | wc -l
23
----------------------------------------
取出/etc/group文件中第三个字段数值最小的10个组的名字。
sort -t: -k3 -n /etc/group | head | cut -d: -f1
----------------------------------------
[root@localhost ~]# sort -t: -k3 -n /etc/group | head | 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 | tee /tmp/etc.test
----------------------------------------
[root@localhost ~]# cat /etc/fstab /etc/issue | tee /tmp/etc.test
#
# /etc/fstab
# Created by anaconda on Thu Jan 25 09:55:02 2018
#
# 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/rhel-root / xfs defaults 1 1
UUID=f15b48a3-314c-436c-a6a6-bcd1231f071d /boot xfs defaults 1 2
/dev/mapper/rhel-home /home xfs defaults 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/cdrom /mnt/media.repo iso9660 defaults 0 0
\S
Kernel \r on an \m
----------------------------------------
请总结描述用户和组管理类命令的使用方法并完成以下练习:
useradd [options] LOGIN: 用户创建命令
-u: 指定用户的uid,在centos6中系统uid为1-499.在centos7中系统uid为1-999.普通用户自定义的uid最好不要占用系统的uid.
-g: 指定用户基本组gid,必须存在的组,如果没有指明则用户uid与gid一样
-c ” ”: 添加用户注释信息
-d /path/ : 指定用户的家目录
-s SHELL: 指定用户的shell,默认为/bin/bash,可用的shell在/etc/shells文件中
-G GROUP1,GROUP2: 指定用户的附加组,可以有多个,用逗号隔开并且附加组必须存在
-s: 修改用户的默认shell信息.
[root@localhost ~]# useradd -s /sbin/nologin test
id [options] USER : 查看用户id信息的命令
-u: 查看用户的有效uid
-g: 查看用户的有效gid
-G: 查看所有组的gid
[root@localhost ~]# id -u test
2010
passwd : 修改用户密码的命令
非root用户只能修改自己的密码,root用户可以修改其他用户的密码格式为:
-l, -u:锁定和解锁用户;
-d:清除用户密码串;
-e DATE: 指定用户密码的过期期限,日期;
-i DAYS:指定用户密码的非活动期限;
-n DAYS:指定用户密码的密码的最短使用期限;
-x DAYS:指定用户密码的密码的最长使用期限;
-w DAYS:指定用户密码的警告期限;
--stdin:从标准输入去修改密码,可以是一个管道,格式如下:
echo "PASSWORD" | passwd --stdin USERNAME
[root@localhost ~]# passwd -l bash
Locking password for user bash.
passwd: Success
userdel: 删除用户
-r :将用户的家目录一并删除
[root@localhost ~]# userdel -r test
usermod: 修改用户属性
-u uid : 修改用户的uid后面跟上新的UID;
-g GROUP:修改用户所属的基本组;
-G:GROUP1[,GROUP2,...[,GROUPN]]]:修改用户所属的附加组;原来的附加组会被覆盖;
-a:为用户追加新的附加组;
-c: COMMENT:修改注释信息;
-d /path:修改用户的家目录;用户原有的文件不会被转移至新位置;
-m /path:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录;
-s SHELL:修改用户的默认shell;
-L:锁定用户密码;即在用户原来的密码字符串之前添加一个"!";
-U:解锁用户的密码;
[root@localhost ~]# id bash
uid=2006(bash) gid=2006(bash) groups=2006(bash)
[root@localhost ~]# usermod -l bash1 bash
[root@localhost ~]# id bash1
uid=2006(bash1) gid=2006(bash) groups=2006(bash)
groupadd: 添加组命令
-g:指定gid,默认是上一个组的gid+1,并且不为系统组gid
-r: 创建系统组
[root@localhost ~]# groupadd -g 2018 bash1
groupmod: 修改组属性
-g gid: 修改为新的gid
-n NEW_NAME: 修改组名
[root@localhost ~]# groupmod -g 2017 bash
groupdel:删除组
[root@localhost ~]# groupdel bash1
groupwd: 管理/etc/group和/etc/gshadow的命令
-a USERNAME: 向组添加用户
-d USERNAME: 从组中删除用户
newgrp:临时切换指定的组为基本组
-:模拟用户重新登录来实现重新初始化其工作环境
[root@localhost ~]# newgrp bash
su: 切换用户的命令
su [-] USERNAME:
su – USERNAME 或者 su –l USERNAME : 完全切换,登陆式切换,会读取目标用户的配置文件并初始化
su USERNAME: 非完全切换,非登录式切换,不会读目标用户的配置文件进行初始化
创建组distro,其GID为2016;
groupadd -g 2016 distro
----------------------------------------
[root@localhost ~]# groupadd -g 2016 distro
----------------------------------------
校验: cat /etc/group | grep distro
----------------------------------------
[root@localhost ~]# cat /etc/group | grep distro
distro:x:2016:
----------------------------------------
创建用户mandriva, 其ID号为1005;基本组为distro;
useradd -u 1005 -g distro mandriva
----------------------------------------
useradd -u 1005 -g distro mandriva
----------------------------------------
校验: cat /etc/passwd | grep man
----------------------------------------
[root@localhost ~]# cat /etc/passwd | grep man
mandriva:x:1005:2016::/home/mandriva:/bin/bash
----------------------------------------
创建用户mageia,其ID号为1100,家目录为/home/linux;
useradd -u 1100 -d /home/linux mageia
----------------------------------------
[root@localhost ~]# useradd -u 1100 -d /home/linux mageia
----------------------------------------
校验:cat /etc/passwd | grep mageia
----------------------------------------
[root@localhost ~]# cat /etc/passwd | grep mageia
mageia:x:1100:1100::/home/linux:/bin/bash
----------------------------------------
给用户mageia添加密码,密码为mageedu;
echo "mageedu" | passwd --stdin mageia
----------------------------------------
[root@localhost ~]# echo "mageedu" | passwd --stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully
----------------------------------------
校验:用另一个普通用户su到mageia输入密码看是否登陆成功
删除mandriva,但保留其家目录;
userdel mandriva
----------------------------------------
[root@localhost ~]# userdel mandriva
----------------------------------------
校验: file /home/mandriva/
----------------------------------------
[root@localhost ~]# file /home/mandriva/
/home/mandriva/: directory
----------------------------------------
创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
groupadd peguin
useradd -u 2002 -g distro -G peguin slackware
----------------------------------------
[root@localhost ~]# groupadd peguin
[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware
----------------------------------------
校验: id slackware
----------------------------------------
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),2018(peguin)
----------------------------------------
修改slackware的默认shell为/bin/tcsh;
usermod -s /bin/tcsh slackware
----------------------------------------
[root@localhost ~]# usermod -s /bin/tcsh slackware
----------------------------------------
校验: cat /etc/passwd | grep slackware
----------------------------------------
[root@localhost ~]# cat /etc/passwd | grep slackware
slackware:x:2002:2016::/home/slackware:/bin/tcsh
----------------------------------------
为用户slackware新增附加组admins;
groupadd admins
usermod -G admins slackware
----------------------------------------
[root@localhost ~]# groupadd admins
[root@localhost ~]# usermod -G admins slackware
----------------------------------------
校验: id slackware
----------------------------------------
[root@localhost ~]# id slackware
uid=2002(slackware) gid=2016(distro) groups=2016(distro),2019(admins)
----------------------------------------