如果遇到不能删除的组,若是组中有账户则要先删除账户再删除组。
命令格式:useradd[-u UID] [-g GID] [-d HOME] [-M] [-s]
- 若直接接用户名就直接删除用户名
- 若想把家目录一并删除就要加上选项 -r
命令mkpasswd用于生成密码。我们安装的Linux默认是没有这个命令的,需要安装一个expect软件包,安装命令如下:
1.输入命令直接回车即可以生成密码。
2.可以指定长度的密码。
3.也可以指定密码中有几个特殊字符或几个数字: -l 设置指定长度 ;-s (special) 设置特殊符号位数 ;-d (digit) 设置数字
sudo 可以让普通用户临时执行一条命令,让普通用户临时拥有 root 身份;默认情况下,只有root用户能使用sudo命令,普通用户想要使用sudo,是需要root预先设定的
使用visudo命令编辑/etc/sudoers配置文件(必须使用root账户)
添加用户内容:
但是这样有一个问题:每增加一个用户就设置一行太麻烦了,所以我们可以找到**## Allows people in group wheel to run all commands把# %wheel ALL=(ALL) ALL**前的#去掉即可。
如果在编辑/etc/sudoers/退出保存失败可以强制保存退出:wq!;或者先修改/etc/sudoers的权限:chmod 777 /etc/sudoers,编辑完文件要把权限改回原来的: chmod 440 /etc/sudoers
(1)查看配置文件/etc/shadow第一行中root账号的第3个字段(由:分隔)中的数字,请算一下这个数字是怎么得来的?
答:在我个人虚拟机上第三个字段为0,就搞不懂为什么…
所以我这里采用书籍上的结果,如图:
根据书籍提供的例子,得出:
已知 365*(2012-1970)+(2012-1970)/4+1=12341,求17212是怎么得出的?
解:设年份为x
得: 365*(x -1970)+(x -1970)/4+1=17212
365x - 719050 + x/4 - 492.5 + 1 = 17212
365x + x/4 = 17212+719050+492.5-1
两边同时乘以4得 1460x + x = 2947014
x =2017.12115
由结果得知,并试验得出:小数点后都要保留,不然验证的结果是不正确的!
验证
把x值代入365*(x -1970)+(x -1970)/4+1=17212得 :
365* (2017.12115 - 1970)+ (2017.12115-1970)/4+1
=736249.22-719050 + 12.7802875
=17212.0003
≈17212
这叫反推法,如果没有例子的情况下可能是行不通的,百度上的方法看得不是很懂,就不提出,因为也没有唯一的解答。
(2)写出一个你认为很强大的密码。
答: 3ZcdKmn@#drhq9
(3)查资料弄清楚/sbin/nologin和/bin/false的区别。你知道它们分别用在什么场合吗?
答:/sbin/nologin 不允许账号登陆,但是可以使用在ftp账号上,也就是说ftp账号即使设置了该项也可以通过ftp登陆。
/bin/false 严格禁止用户登录系统,禁止使用一切服务。
(4)当我们创建一个新的账号时,系统会修改哪几个文件呢?
答:/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
(5)假如我们已经创建了一个普通用户userl,默认这个用户的家目录为/home/user1,做试验证明能否直接修改/etc/passwd配置文件中user1的家目录那个字段而改变user1的家目录呢?(提示:你可以使用cd~命令进入当前用户的家目录来验证)
答:
(6)/etc/passwd文件以:为分隔符,第3、4个字段表示什么含义?如果把某一行的第3个字段改为0,会发生什么呢?
答:第三个表示用户id,第四个为组id,如果把第三个字段改为0,那么该用户会变成 root
(7)先新增一个组group11,然后再新增一个账号user12,使该账号所属组为group11组。
答:如图:
(8)如果删除一个组时报错:cannot remove the primary group of user’aming,这是什么意思?如何解决该问题呢?
答:因为删除的组内有用户,需要先删除该组内的账号,再删除组。
(10)如果你的Linux没有命令mkpasswd,需要安装什么软件包?
答: yum install -y expect
(11)普通账户可以修改自己的密码吗?
答:可以。切换到要修改的普通用户,然后输入:passwd ,回车;然后先输入自己的旧密码,再输入两遍新密码即可(这里我不演示修改)
(12)使用su命令时,后面加-表示什么含义?
答: 加上 - 表示,切换用户时,使用该用户的所有环境变量。
(13)sudo命令的作用是什么?
答:普通用户想临时使用超级管理员权限时使用sudo。
(14)创建系统账号时,账户名要符合什么样的规范?
答:百度:可以是大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位为点时,另外减号也不建议使用,因为容易造成混淆。
(15)Linux系统里,你知道uid最大是多少吗?创建一个普通账号的默认uid最小是多少?
答:百度:普通用户的uid最大为65535,目前的 linux 核心 (2.6.x 版)已经可以最大支持到 4294967295 (2^32-1) 。默认普通账号的最小uid为500。
(16)一个用户可以同时属于多个用户组吗?如果可以,如何把一个用户加入到另外的组里?如何
同时加入多个组?
答:可以;如图所示:
1.如何使用命令把一个用户加入多个组?
usermod -G 组1,组2,…,组X 用户名 (组与组之间用逗号隔开)
2.查看当前用户所属的组
groups
3.查看某个账号所属组
groups 账号名
4.sed命令
除了拥有查找功能外,还拥有替换功能
sed -i :直接修改读取的文件内容,而不是输出到终端。