第五章 管理本地用户和组
学习目标:
理解用户和组在Linux系统上的工作机制
掌握使用系统管理员的身份执行命令
掌握创建、修改、锁定、删除本地用户
掌握创建、修改、删除本地用户组
掌握通过人工或者通过密码策略自动锁定指定账号
5.1 用户和组的工作机制
相关命令: id、 ls -l 、 ps au
相关文件: /etc/passwd , /etc/group
username:password:UID:GID:GECOS:/home/dir:shell
groupname:password:GID:list,of,users,in,this,group
用户uid的分类:
0 管理员
1-200 系统用户,由系统静态分配给系统进程使用
201-999 系统用户,这些用户在系统上一般不会拥有文件,他们是动态地指定给安装了的软件作为运行身份。
1000+ 常规用户
需要了解的一些shell:
/bin/bash 系统默认shell
/sbin/nologin 非交互式shell: 禁止用户登陆的作用
=
5.2 获得管理员权限
相关命令:
su [-] <username>
sudo <command>
su 和 sudo的区别
5.3 管理本地账号
相关命令: useradd ,usermod ,userdel,passwd , groupadd ,groupmod,gpasswd,groupdel
相关文件: /etc/login.defs , /etc/passwd , /etc/shadow , /etc/gpasswd , /etc/gshadow
需要掌握: 创建,修改,删除用户、用户组,修改用户组身份,设定用户密码
添加用户前需要确定:
确定用户的默认组是否有特殊要求
确定用户是否允许登陆
确定用户的密码策略
确定用户的有效期
确定用户的uid是否有特殊要求
useradd,usermod 的参数:
-u 指定用户的uid
-c 添加用户注释
-g 指定用用户的默认组
-G 指定用户的附加组
-a 追加更多的附加组,必须和-G使用: -aG
-d 指定用户的家目录
-m 家目录迁移,必须和-d一起使用
-s 指定用户默认shell
-L 锁定用户
-U 解锁用户
groupadd命令的需要掌握的参数:
-g
groupmod命令的需要掌握的参数:
-g
-n
练习: 考试必考知识点
建立用户juliet, romeo, hamlet,reba, dolly, and elvis
建立用户组,组ID要求为30000,组名为shakespeare
建立用户组,组名为artists
要求把shakespeare作为用户juliet, romeo和 hamlet的附加组
要求把artists作为用户reba, dolly 和 elvis的附加组
要求artists同时作为用户romeo的另外一个附加组(之前的附加组还继续使用)
5.4 管理用户密码
相关文件: /etc/passwd,/etc/shadow
相关命令: chage,usermod
chage命令的参数:
-l 显示帐户年龄信息
-E # chage -E 2014-12-28 romeo
-d # -d 0 下次登陆系统强制修改密码
-M 将两次改变密码之间相距的最大天数设为“最大天数”
-m 将两次改变密码之间相距的最小天数设为“最小天数”
-W 将过期警告天数设为“警告天数”
-I 过期 INACTIVE 天数后,设定密码为失效状态
练习: 在server虚拟机上完成。 当romeo用户第一次登陆系统的时候(默认登陆密码为romeo),必须要求强制更改密码。密码有效期为90天,账号将在180天后过期
实验: 重置server虚拟机,然后在上面完成操作
新建用户sspade, bboop, and dtracy,密码有效期为30天,默认密码都为redhat
新建用户组consultants,组ID必须为40000,并且该组作为上面三个用户的附加组
把上述三个用户的账号有效期设定为90天后
bboop用户的密码有效期更改为15天
所有用户在第一登陆的时候都必须强制修改密码
实验完毕,提交# lab localusers grade
======================================================================================================================
上课笔记 :
5.1
[student@localhost kuang]$ id
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
一个用户可以有多个组
[student@localhost kuang]$ ls -l
total 4
-rw-rw-r--. 1 student student 51 May 20 11:58 date
-rw-rw-r-- 第一个三位,表示这个用户的权限,第二个三位是这个组,但不是这个文件拥有的用户的权限,第三个三位是表示如果是其他用户是什么 权限 。
显示瞬间进程
[student@localhost kuang]$ ps au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1005 0.9 4.6 219292 46376 tty1 Ssl+ 11:52 0:11 /usr/bin/Xorg
root 1480 0.0 0.0 110004 860 ttyS0 Ss+ 11:52 0:00 /sbin/agetty -
student 2596 0.0 0.2 116260 2912 pts/0 Ss 11:53 0:00 /bin/bash
student 3476 0.0 0.1 123356 1384 pts/0 R+ 12:12 0:00 ps au
vim /etc/passwd
username:password:UID:GID:GECOS:/home/dir:shell
root:x:0:0:root:/root:/bin/bash
student:x:1000:1000:Student User:/home/student:/bin/bash
[student@localhost kuang]$ touch ~/tanpao.txt 家目录创建一个文件
[student@localhost kuang]$ ls -lh !$ !$表示上一个命令的最后一个段
ls -lh ~/tanpao.txt
-rw-rw-r--. 1 student student 0 May 20 12:21 /home/student/tanpao.txt
[student@localhost kuang]$ pwd
/tmp/kuang
[student@localhost kuang]$ cd cd后不加参数就进入主目录(家目录)
[student@localhost ~]$ pwd
/home/student
[student@localhost /]$ ps
PID TTY TIME CMD
2596 pts/0 00:00:00 bash
4878 pts/0 00:00:00 ps
[student@localhost /]
常见shell
[student@localhost etc]$ cat shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
组信息放在etc group下
[student@localhost etc]$ ls -lh group
-rw-r--r--. 1 root root 850 Jul 11 2014 group
可以在group中最后加一个名字,他就有了root的权限
root:x:0:student
[student@localhost etc]$ grep student /etc/passwd
student:x:1000:1000:Student User:/home/student:/bin/bash
5.2 切换到管理员root
[student@localhost Desktop]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[student@localhost Desktop]$ su -
Password:
Last login: Sat Apr 29 14:15:51 CST 2017 on pts/0
[root@localhost ~]#
[student@localhost Desktop]$ su 这种切换没有完全切,只是一般份,并且目录没有变,一般不用这种
Password:
(process:5757): dconf-WARNING **: failed to commit changes to dconf: The connection is closed
[root@localhost Desktop]# pwd
/home/student/Desktop
[root@localhost Desktop]#
切换后去破坏非常不好,而且无法知道是哪个切换过来的,对系统的安全非常不好。
====================================================
普通用户不用登陆管理员就可以获得一些管理员操作。
[student@localhost Desktop]$ sudo cat /etc/shadow
[sudo] password for student:
root:$6$UiGI4Tc2$htsXYn5cJnOqv3P1VLcUSgfjDu2pL5yiJBuua6foZAHdwqeuLHfYUfS/vBn27Wjvoel8EJgtdsMjyquqvKAmf1:16261:0:99999:7:::
bin:*:16141:0:99999:7:::
daemon:*:16141:0:99999:7:::
adm:*:16141:0:99999:7:::
lp:*:16141:0:99999:7:::
sync:*:16141:0:99999:7:::
shutdown:*:16141:0:99999:7:::
halt:*:16141:0:99999:7:::
mail:*:16141:0:99999:7:::
operator:*:16141:0:99999:7:::
games:*:16141:0:99999:7:::
ftp:*:16141:0:99999:7:::
nobody:*:16141:0:99999:7:::
dbus:!!:16197::::::
polkitd:!!:16197::::::
avahi:!!:16197::::::
avahi-autoipd:!!:16197::::::
rpc:!!:16197:0:99999:7:::
rpcuser:!!:16197::::::
nfsnobody:!!:16197::::::
ovirtagent:!!:16197::::::
postfix:!!:16197::::::
sshd:!!:16197::::::
chrony:!!:16197::::::
student:$6$8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80:16261:0:99999:7:::
usbmuxd:!!:16261::::::
colord:!!:16261::::::
abrt:!!:16261::::::
libstoragemgmt:!!:16261::::::
unbound:!!:16261::::::
qemu:!!:16261::::::
saslauth:!!:16261::::::
ntp:!!:16261::::::
rtkit:!!:16261::::::
radvd:!!:16261::::::
pulse:!!:16261::::::
gdm:!!:16261::::::
gnome-initial-setup:!!:16261::::::
tcpdump:!!:16261::::::
[student@localhost Desktop]$
以上操作有日志,比su -要好很多。