用户分类:
1)超级用户。
2)普通用户。
3)虚拟用户。
linux系统下的账户文件主要有/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow。里边的内容都是用冒号分割的。
账号管理:
账户管理的主要命令:
需要记住的命令:useradd,userdel,passwd,chage,usermod,id,su,sudo,visudo。
用户组管理的命令:
需要记住的命令:groupadd。
/etc/skel目录:
简介:
演示:
把第一图用户的隐藏文件全部删除,会出现第二图的情况,原因就是用户的隐藏文件没有了。今天我们将的就和/etc/skel有关。
/etc/skel的作用是在创建新用户时会把/etc/skel下的文件拷贝到新用户下面。
上面是一个简单的说明/etc/skel文件作用的操作。
那为什么添加用户的时候就会从/etc/skel拷贝文件呢?
答:请查看下边的/etc/default/useradd文件。
/etc/login.defs文件(了解):
/etc/default/useradd文件:
当执行useradd添加用户的时候,就会调用这个文件里边的配置。
添加用户的时候,读取这个文件。因为这个文件有对应SKEl=/etc/skel的目录。
修改文件之前要先进行备份。
使用man useradd命令查看以上内容。
例题:
useradd eitiantian:当创建新用户的时候,还会创建一个和用户名相同的组。
-D参数:
作用:改变用户初始的参数的值。如下:
实例:
useradd -e参数:
hwclock:把上一条命令输出的内容写入bios里面。
设置m1用户的到期时间,并可以用chage -l 用户名查看用户信息。
当修改完时间(超出用户m1的到期时间),创建的用户m1就会连不上。提示账户已经过期。
结论:
到时间就无法登陆了,但是可以su切换。
查看字符集。
例题:
用户密码相关命令passwd:
因为passwd有suid,且拥有root的权限。所以能改普通用户的密码和超级用户的密码。
相关参数:
重要的是--stdin。
例子:
直接给m1改密码。
给m1改过密码,再进入m1之后就不能改密码。
解锁之后就能重新改密码了。
解答:
面试题:批量添加用户和密码。
chage:
-m参数会把passwd expires(密码到期)和Minimum number--(最短密码修改时间差)改了。
各项参数的修改试验。
chage -I 20 m1:将过期5天的密码停权20天。在过期5天的基础上给一个停权20天。相当于inactive。
请使用chage完成下列例题:
各项数据修改试验。
删除用户相关命令userdel:
使用-r参数会彻底删除,不适用还会再家目录显示。工作中不常用-r。一般先使用命令cat /etc/passwd,再在想要删除的用户前面加上#,就代表这个用户用不了了。方便万一以后出问题了,再把#去掉又恢复了,凡事给自己留一条后路。
删除用户组相关命令groupdel:
当一个组作为一个用户的主组的时候,不能删除。要想删除,必须先删除用户。
***用户信息修改相关命令usermod:
参数和useradd的差不多。
usermod各项参数的修改。
finger oldboy:查看用户oldboy最近修改的情况。
锁定用户zhangsan和解锁用户zhangsan的例子。
用户查询相关命令id,finger,users,w,who,last,lastlog,groups。
使用man查询命令信息。
gruops没什么作用,了解,不要求记。
newgrp的用法,改变用户的主组。用处不大,可以过(不常用)
linux用户身份切换命令:
su命令:
-的作用:su root:虽然已经切换到rot了,但是环境变量没有改变,使用pwd命令和echo $USER命令显示的还是root超级用户。
-c参数:切换到hsp用户并且使用hsp用户的权限查看/home/hsp信息。
上图是一个例子。优点:简单方便使用。
以oldboy的身份执行这个脚本。
su的缺点:八个人都有root,那么一个人就可以把其他七个人废了。在公司,三个或三个一下root权限就可以了,三个以上的就会造成各种问题。
sudo命令:
通过visudo进入命令行,输入98gg进入到第98行,修改oldboy用户权限,然后使用sudo命令就可以让添加的权限生效。
要密码的原因是检查了/var/run/sudo,发现没有时间戳,表示已经过期,所以才输入密码。五分钟之内不用再次输入密码就可以创建新的用户,也就是说,时间戳为五分钟。两种要密码的方式不一样,没有时间戳的是完整的告诉你怎么做,有时间戳的直接要密码。
关于时间戳问题:
通过man sudoers命令再搜索“/5”可以查到。
注意:-k直接要密码。
sudo -l可以查看老大给的权限。
sudo配置文件/etc/sudoers:
授权组(%sa)的优点:比如给技术部都授权简单方便。这样这个部门都可以有权限。
当然也可以用visudo再修改回来。
别名:
关于名别:把这些命令都设置成别名,让后把别名加入到用户的后面,方便简洁。
ANMINS SERS=(OP) COMMMAND: 用户组在哪个服务器上有那个权限有哪个命令。
使用命令cat /etc/sudoers进去之后这就完成了一次别名的设置。
如果出现oldboy不能再oldboylinux上运行,就在SERS后边加上oldboylinux,然后出来试验,发现是对的。执行sudo useradd kkm是可以运行的。
: