1、列出当前系统上所有已经登录的用户的用户名。注意:同一个用户登录多次,则只显示一次即可
[root@localhost ~]# who | cut -d ' ' -f1 | sort | uniq
[root@localhost ~]# who
(unknown) :0 2016-08-29 08:28 (:0)
root pts/0 2016-08-29 08:36 (192.168.12.1)
root pts/1 2016-08-29 09:12 (192.168.12.1)
[root@localhost ~]# who | cut -d ' ' -f1
(unknown)
root
root
[root@localhost ~]# who | cut -d ' ' -f1 | sort
root
root
(unknown)
[root@localhost ~]# who | cut -d ' ' -f1 | sort | uniq
root
(unknown)
[root@localhost ~]#
2、取出最后登录到当前系统的用户的相关信息
[root@localhost ~]# id $(who | tail -1 | cut -d ' ' -f1)
uid=1000(ttxsjh) gid=1000(ttxsjh) 组=1000(ttxsjh),10(wheel)
[root@localhost ~]#
3、取出当前系统上被用户当作其默认shell的最多的那个shell
[root@localhost ~]# cat /etc/passwd | cut -d':' -f7 | tail -1
/bin/bash
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改写为大写后保存至/tmp/maxusers.txt
[root@localhost ~]# cat /etc/passwd | sort -t ':' -k 3n | tail -10 | tr a-z A-Z > /tmp/maxusers.txt
[root@localhost ~]# cat /tmp/maxusers.txt
USER2:X:2019:2019::/HOME/USER2:/BIN/BASH
USER9:X:2020:2020::/HOME/USER9:/BIN/BASH
USER10:X:2021:2021::/HOME/USER10:/BIN/BASH
USER112:X:2022:2022::/HOME/USER112:/BIN/BASH
USER14:X:2023:2023::/HOME/USER14:/BIN/BASH
USER15:X:2024:2024::/HOME/USER15:/BIN/BASH
USER20:X:2025:2025::/HOME/USER20:/BIN/BASH
USER18:X:2026:2026::/HOME/USER18:/BIN/BASH
USER19:X:2027:2027::/HOME/USER19:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN
[root@localhost ~]#
5、取出当前主机的ip地址,提示:对ifconfig命令的结果进行切分
[root@localhost ~]# ifconfig | cut -d ' ' -f10 | grep "[.]"
192.168.12.11
127.0.0.1
[root@localhost ~]#
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中
[root@localhost ~]# ls -a /etc/*.conf | tr a-z A-Z > /tmp/etc.conf
7、显示/var目录下一级子目录或文件总个数
[root@localhost ~]# ls -l /var | wc -l
31
[root@localhost ~]#
8、取出 /etc/group文件中第三个字段数值最小的10个组的名字
[root@localhost ~]# cat /etc/group | sort -t ':' -k 3n | head -10 | cut -d':' -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
[root@localhost ~]#
9、将 /etc/fstab 和/etc/issue文件的内容合并为同一个内容后保存至 /tmp/etc.test文件中
[root@localhost ~]# cat /etc/fstab /etc/issue > /tmp/etc.test
10、用户和组命令描述
用户和组文件描述
/etc/passwd 用户信息库
name:password:UID:GID:GECOS:directory:shell
name:用户名、password:密码占位符、UID、GID:用户基本组ID、GECOS:用户描述信息、directory:用户的家目录、shell:用户默认shell
/etc/shadow 用户密码文件
centos:$6$jOzyjCBk$XmsBHJjmRL095pTsH6hc3onGHiIzym.:16974:0:99999:7:::
centos:登录名、$6$jOzyjCBk$XmsBHJjmRL095pTsH6hc3onGHiIzym:加密了的密码、16974:最后一次更改密码的日期、0:密码的最小年龄、99999:最大密码年龄、7:密码警告时间段、密码禁用期、账户过期日期、保留字段
/etc/group 组的信息库
group_name:password:GID:user_list
group_name:组名、password:组密码:GID、user_list:该组的用户成员,以此组为附加组的用户的用户的列表
/etc/gshadow:组的密码文件
user3:!::
user3:组名、!:密码占位符、管理员、成员
用户和组命令描述
useradd 添加用户
-u, –uidUID 指定UID
-g, –gidGROUP 指定GID,组名必须事先存在
-G, –groupsGROUP1[,GROUP2,…[,GROUPN]]] 指定附加组,默认用户只属于初始组,
-a 和-G联合使用 追加新的附加组
-a, –append 将用户添加到附加组。只能和 -G 选项一起使用
-d, –home HOME_DIR 修改家目录和,默认不复制原有家目录类容和-m联合使用用于将原有文件移动到新的家目录
-s, –shell SHELL 指定SHELL
-L, –lock 锁定用户密码;-U –unlock 解锁用户的密码
-c, –comment COMMENT 修改注释信息
-r, –system 创建系统账号
-f, –inactiveINACTIVE 密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能
userdel – 删除用户账户和相关文件
-f, –force 强制删除用户账户
-r, –remove 删除用户的家目录,默认不删除
usermod – 修改一个用户账户
-a, –append 将用户添加到附加组。只能和 -G 选项一起使用
-u, –uidUID 修改UID
-g, –gidGROUP 修改GID
-f, –inactiveINACTIV 密码过期之后,账户被彻底禁用之前的天数,0 表示密码过期时,立即禁用账户;-1 表示不使用这个功能
-d, –homeHOME_DIR 修改家目录
-m, –move-home 将用户的主目录移动到新位置。 这个选项只有和 -d (或 –home) 选项组合使用时才有效
-s, –shellSHELL 用户的新登录 shell 的名称
-U, –unlock 解锁用户的密码
-L, –lock 锁定用户的密码
groupadd 添加组
-g GID 指定GID 默认是上一个组的GID+1
-r 创建系统组,每一个进程在运行的时候都是以一个用户的身份在运行。开机就运行的程序以系统用户的身份在运行,为了能够让那些后台进程或服务类进程以非管理员的身份运行,通常还需要为此创建多个普通用户,这类用户从不用登陆系统。
groupdel 删除组
groupdel [选项] GROUP
groupmod 修改组属性
groupmod [选项] GROUP
-g GID 修改GID
-n new_name 修改组名
passwd 修改用户密码
passwd 不带任何参数 修改自己的密码
passwd USERNAME 修改指定用户的密码;只有管理员root有此权限
-l ,-u 锁定和解锁用户密码
-d 清除用户密码串
-e DATE 过期期限,日期
-i DAYS 非活动期限
-n DAYS 密码的最短使用期限
-x DAYS 密码最长使用期限
-w DAYS 警告时间
–stdin echo"PASSWORD" | passwd –stdin USERNAME
gpasswd 给组添加密码 不带参数默认给自己添加密码
-a USERNAME 向组中添加用户
-d USERNAME 向组中删除密码
id 显示用户的实际和有效ID
id [OPTION]… [USER]
不带任何参数表示显示自己
-u 显示UID
-g 仅显示用户基本组ID
-G 显示用户所属组的所有组ID
-n 显示名称
su switch user 切换用户
登录式切换 会通过读取目标用户的配置文件来重新初始化
su – USERNAME
su -l USERNAME
非登录式切换 不会通过读取目标用户的配置文件来重新初始化
su USERNAME
注意:管理员切换到任何用户时无需密码。
(1) 创建组distro,其GID为2016
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# cat /etc/group | grep "2016"
distro:x:2016:
(2) 创建用户mandriva,其ID为1005 基本组为distro
[root@localhost ~]# useradd -u 1005 -g distro mandriva
[root@localhost ~]# id mandriva
uid=1005(mandriva) gid=2016(distro) 组=2016(distro)
[root@localhost ~]#
(3) 创建用户magedia 其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 ~]# passwd mageia
更改用户 mageia 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[ttxsjh@localhost ~]$ su – mageia
密码:
上一次登录:一 8月 29 21:21:10 CST 2016pts/0 上
[mageia@localhost ~]$
(5)删除用户mandriva,但保留其加目录
[root@localhost ~]# userdel mandriva
[root@localhost ~]# ls /home/ | grep "mandriva"
mandriva
[root@localhost ~]#
(6) 创建用户slackware 其ID为2002,基本组为ditro,附件组peguin
[root@localhost ~]# groupadd peguin
[root@localhost ~]# useradd -u 2002 -g distro -G peguin slackware
[root@localhost ~]# cat /etc/passwd | grep "slackware"
slackware:x:2002:2016::/home/slackware:/bin/bash
[root@localhost ~]# cat /etc/group | grep "peguin"
peguin:x:3006:slackware
[root@localhost ~]# cat /etc/group | grep "slackware"
peguin:x:3006:slackware
(7) 修改slackware的默认shell为/bin/tcsh
[root@localhost ~]# usermod -s /bin/tcsh slackware
[root@localhost ~]# cat /etc/passwd | grep "slackware"
slackware:x:2002:2016::/home/slackware:/bin/tcsh
(8) 为用户slackware新增附加组admins
[root@localhost ~]# usermod -aG admins slackware
[root@localhost ~]# cat /etc/group | grep "slackware"
peguin:x:3006:slackware
admins:x:3007:slackware
(9)为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
[root@localhost ~]# chage slackware
正在为 slackware 修改年龄信息
请输入新值,或直接敲回车键以使用默认值
最小密码年龄 [0]: 3
最大密码年龄 [99999]: 180
最近一次密码修改时间 (YYYY-MM-DD) [2016-08-29]:
密码过期警告 [7]: 3
密码失效 [-1]:
帐户过期时间 (YYYY-MM-DD) [-1]:
[root@localhost ~]# cat /etc/shadow | grep "slackware"
slackware:!!:17042:3:180:3:::
(10)添加用户openstack,其ID号为3003,基本组为clouds,附加组为peguin和nova
[root@localhost ~]# useradd -u 3003 -g clouds -G peguid,nova openstack
[root@localhost ~]# id openstack
uid=3003(openstack) gid=3010(clouds) 组=3010(clouds),3008(peguid),3009(nova)
(11)添加系统用户mysql,要求其shell为/sbin/nologin
[root@localhost ~]# useradd -r mysql -s /bin/nologin
[root@localhost ~]# id mysql
uid=991(mysql) gid=989(mysql) 组=989(mysql)
[root@localhost ~]# cat /etc/passwd | grep "mysql"
mysql:x:991:989::/home/mysql:/bin/nologin
(12)使用echo命令,非交互式为openstack添加密码
[root@localhost ~]# echo "openstack" | passwd –stdin openstack
更改用户 openstack 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#
原创文章,作者:ttxsjh,如若转载,请注明出处:http://www.178linux.com/41686
评论列表(1条)
点一下第5题,可以使用精确的正则表达式来匹配IP,使用这种方法最佳哈。
另外,排版上面需要再改善下。加油~