1. 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
[root@localhost ~]# who | cut -d' ' -f1 | sort -u
root
2. 取出最后登录到当前系统的用户的相关信息。
[root@localhost ~]# who | tail -1
root pts/1 2016-12-21 10:08 (192.168.245.1)
3. 取出当前系统上被用户当作其默认shell的最多的那个shell。
[root@localhost ~]# cut -d: -f7 /etc/passwd | uniq -c | sort -n | tail -1 | cut -d' ' -f7
/sbin/nologin
4. 将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
[root@localhost ~]# sort -t: -k3 -n /etc/passwd | tail -10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt
5. 取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分
[root@localhost ~]# ifconfig eth0 | cut -d: -f2 | cut -d' ' -f1 | head -2 | tail -1
192.168.245.131
6. 列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
[root@localhost ~]# ls /etc/*conf | tr 'a-z' 'A-Z' > /tmp/etc.conf
7. 显示/var目录下一级子目录或文件的总个数。
[root@localhost ~]# ls /var | tee /tmp/b.txt | wc -l
23
[root@localhost ~]# ls /var > /tmp/a.txt | wc -l
0
注意:必须使用tee而非>,因为>是改变输出流而非定向保存后再统计
8. 取出/etc/group文件中第三个字段数值最小的10个组的名字。
[root@localhost ~]# cat /etc/group | sort -t: -k3 -n | head -10 | cut -d: -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem
9. 将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
[root@localhost ~]# cat /etc/fstab /etc/issue | tee /tmp/etc.test
第一部分:Linux的用户分类:
管理用户
普通用户:系统用户和登陆用户
其中:系统用户是系统开机后自动登陆运行的,为了能让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,这类用户不需要登录系统,仅仅是让其他进程用其身份来运行,从而仅能获取普通权限。
几个概念:
-
从用户所属组的角度划分:用户的基本组和用户的附加组
-
根据组内是否包含与组名同名的用户角度划分:用户的私有组和公共组。其中,私有组是组名同用户名,且只有一个用户;公共组是组内包含了多个用户。
第二部分:linux用户和组的相关配置文件
1.etc/passwd:用户存储信息
account:password:UID:GID:GECOS:directory:shell
其中:
account:用户名
passwd:可以是加密的密码,也可以是占位符
UID:用户的ID号
GID:用户所属主组的ID号
GECOS:用户的注释信息
directory:用户的家目录
shell:默认打开的shell
2.etc/shadow;用户的密码
用户名:加密密码:最近一次修改时间:最短:最长:警告:有效:过期
3.etc/group:组的信息库
组名:密码:GID:改组的用户成员,以此组为附加组的用户的用户列表
第三部分:命令管理:
用户管理命令:
1.useradd:创建用户或者更新新用户信息
-u:指定UID
-g:指定基本组ID,此组必须事先存在
-G:指明用户所属的附加组,多个组之间用逗号分隔
-c:指明注释信息
-d:指定家目录,默认为home。
注意:以指定的路径为用户的家目录,通过复制/etc/skel此目录并重命名实现;指定的家目录路径如果事先存在,则不会为用户复制环境配置文件。
-s:指定默认使用的shell,可用的所有shell列表存储在/etc/shells的文件
-r:创建系统用户
-f:密码过期后可以使用的天数,-1为禁用此功能。
-D:显示创建用户的默认配置,修改选项值。
注意:默认配置文件/etc/login.defs,其中修改的结果保存在/etc/default/useradd文件中,可以编辑此文件来实现。
2.usermod:修改用户属性
-u:修改ID号
-g:修改用户所属的基本组
-G:修改用户所属的附加组,原来的附加组会被覆盖
-aG:为用户添加新的附加组
-c:修改注释信息
-d:修改用户的家目录,用户原有的文件不会被转移至新位置
-md:将用户的主目录移动到新位置
-l:修改用户名
-s:修改用户的默认shell
-L:锁定用户密码并禁止用户登录,即在用户原来的密码字符串之前添加一个“!”
-U:解锁用户的密码
3.userdel:删除用户
-r:删除用户时一并删除其家目录
组管理命令:
1.groupadd命令:添加组
-g:制定GID号;默认是上一个GID号加一位;
-r:创建系统组;
2. groupmod:修改组属性
-g:修改GID号
-n:修改组名
3. groupdel:删除组
第四部分:密码管理
1.passwd:密码
(1)passwd:修改用户自己的密码
(2)passwd username :修改指定用户的密码,但仅root有此权限
-l,-u:锁定和解锁用户
-d:清楚密码
-e:过期期限,日期
-i:非活动期限,时间范围
-n days:密码的最短使用期限
-x days:密码的最长使用期限
-w days:警告期限
–stdin(标准输入机制)
eg:
[root@localhost home]# echo "xuefeng" | passwd –stdin testgrp3
Changing password for user testgrp3.
passwd: all authentication tokens updated successfully.
2.gpasswd:组密码
gpasswd group:向组定义密码或向组中添加用户
-a username:向组中添加用户
-d username:向组中移除用户
注:newgrp用来更改用户的基本组,基本组事先必须存在。
注:为组添加密码是要防止用户随意添加到特定组中,涉及到文件安全上下文。
1. 创建组distro,其GID为2016
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# cat /etc/group
distro:x:2016:
2. 创建用户mandriva, 其ID号为1005;基本组为distro
[root@localhost ~]# groupadd -g 2016 distro
[root@localhost ~]# cat /etc/group
mandriva:x:1005:2016::/home/mandriva:/bin/bash
3. 创建用户mageia,其ID号为1100,家目录为/home/linux
[root@localhost home]# useradd -u 1100 -d /home/linux mageia
[root@localhost home]# cat /etc/passwd
mageia:x:1100:1100::/home/linux:/bin/bash
4. 给用户mageia添加密码,密码为mageedu
[root@localhost home]# echo "mageedu" | passwd –stdin mageia
Changing password for user mageia.
passwd: all authentication tokens updated successfully.
5. 删除mandriva,但保留其家目录
[root@localhost home]# userdel mandriva
[root@localhost home]# ll
drwx—— 3 mageia mageia 4096 Dec 26 09:54 linux
drwx—— 3 1005 distro 4096 Dec 26 09:51 mandriva
6. 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin
[root@localhost home]# useradd -u 2002 -g distro -G peguin slackware
[root@localhost home]# tail -l /etc/group
peguin:x:5007:slackware
7. 修改slackware的默认shell为/bin/tcsh
[root@localhost home]# usermod -s /bin/tcsh slackware
[root@localhost home]# tail -1 /etc/passwd
slackware:x:2002:2016::/home/slackware:/bin/tcsh
8. 为用户slackware新增附加组admins
[root@localhost home]# groupadd admins
[root@localhost home]# usermod -aG admins slackware
9. 为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天
[root@localhost ~]# echo "slackware" | passwd -n 3 -x 180 -w 3 –stdin slackware
Adjusting aging data for user slackware.
passwd: Success
[root@localhost ~]# tail -1 /etc/shadow
slackware:!!:17161:3:180:3:::
10. 添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova
[root@localhost ~]# useradd -u 3003 -g clouds -G peguin,nova openstack
[root@localhost ~]# tail -1 /etc/passwd
openstack:x:3003:5010::/home/openstack:/bin/bash
[root@localhost ~]# tail -1 /etc/group
clouds:x:5010:
11. 添加系统用户mysql,要求其shell为/sbin/nologin
[root@localhost ~]# useradd -r -s /sbin/nologin mysql
[root@localhost ~]# tail -1 /etc/passwd
mysql:x:101:105::/home/mysql:/sbin/nologin
12. 使用echo命令,非交互式为openstack添加密码
[root@localhost ~]# echo "openstack" | passwd –stdin openstack
Changing password for user openstack.
passwd: all authentication tokens updated successfully.
原创文章,作者:N25-笔头,如若转载,请注明出处:http://www.178linux.com/64781