问 题 :


1.查看配置文件/etc/shadow第一行中root账号的第三个字段(以':'分隔)中的数字,请算一下这个数字是怎么来的?


2. 写出一个您认为很强悍的密码.


3. 查资料搞明白 /sbin/nologin 和 /bin/false 的区别,您知道他们用在什么场合吗?


4. 请想一想,当我们创建一个新的账号时,系统会修改哪几个文件呢?


5. 假如我们已经创建了一个普通用户user1, 默认这个用户的家目录为/home/user1, 做实验证明能否直接修改/etc/passwd配置文件中user1的家目录那个字段而改变user1的家目录呢? (提示: 您可以使用 “cd ~ ”命令来进入当前用户家目录的方法来验证)


6. /etc/passwd 文件以":"为分隔符,第三和第四个字段表示什么含义?如果把某一行的第三个字段改为'0' 会发生什么?


7.  先新增一个组group11,然后再新增一个账号user12, 使该账号所属组为刚刚新增的组。


8. 如果删除一个组时报错: “cannot remove the primary group of user 'aming'” 这是什么意思?如何解决该问题呢?


9. 如何删除某个账户时,连带这个账户的家目录一并删除?


10. 如果您的Linux没有命令"mkpasswd", 需要安装哪个包?


11. 普通账户可以修改自己的密码吗?


12. 使用su时,后面加了 '-' 表示什么含义?


13. sudo的作用是什么呢?


14. 创建系统账号时,帐户名要符合什么样的规范?


15. Linux系统里,你知道最大uid能有多大吗?默认创建一个普通帐号的uid最小是多少?


16. 请思考,一个用户可以同时属于多个用户组吗?如果可以,如何把一个用户加入到另外的组里? 同时加入多个组怎么做?



加深扩展:

1.  锁定和解锁某个账户

假如要锁定 user1 账户,命令为:   passwd -l  user1


解锁user1:  passwd -u user1


注意,这两个用法只有root账户才有资格执行哦!


2.  如何限制远程登陆时,不允许root登陆,而只允许普通用户登陆? (上一章节已经介绍过,这里复习一遍)


答案:

修改配置文件/etc/sshd/sshd_config,  在文件中查找 "#PermitRootLogin  yes" 这句话, 修改为 "PermitRootLogin no”表示不允许root用户远程登录。 /etc/sshd/sshd_config 为sshd服务的配置文件,默认虽然在前面加"#"注释了这句,"PermitRootLogin yes” 但它默认就是允许root账户登陆的,所以要想不让root登陆,修改为no 就可以了。保存配置文件后,重启sshd 服务: service sshd restart



3. 如何限制远程登陆时,只允许root使用密钥登陆,而不能使用密码登陆?(上一章节已经介绍过,这里复习一遍)


答案:

打开配置文件 /etc/sshd/sshd_config 加上一句:

PermitRootLogin without-password

保存配置文件后,重启sshd 服务:  service sshd restart



4.以一个用户的身份执行某个命令?


答案:

su -c “command” user 

例如,我想用www的用户身份执行 /home/www/test.sh 这个脚本,则

su -c   “/home/www/test.sh”    www

前提是,/home/www/test.sh 这个脚本文件www用户有执行权限



答 案 :


1. 查看配置文件/etc/shadow第一行中root账号的第三个字段(以':'分隔)中的数字,请算一下这个数字是怎么来的?

距离1970年1月1日到上次更改密码的时间的间隔天数。例如root密码日期更改时间为2013年9月1日星期日,那么配置文件/etc/shadow中root的第三个字段为15949,计算如下:

15949 = (2013-1970)*365+MOD((2013-1970)/4)+(5*31+2*30+28)+1=15695+10+241+1=15949


2. 写出一个您认为很强悍的密码.

2ZbzHsi4#?fega8


3. 查资料搞明白 /sbin/nologin 和 /bin/false 的区别,您知道他们用在什么场合吗?

/sbin/nologin 不允许账号登陆,但是可以使用在ftp账号上,也就是说ftp账号即使设置了该项也可以通过ftp登陆

/bin/false   严格禁止用户登录系统,禁止使用一切服务


4. 请想一想,当我们创建一个新的账号时,系统会修改哪几个文件呢?

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow


5. 假如我们已经创建了一个普通用户user1, 默认这个用户的家目录为/home/user1, 做实验证明能否直接修改/etc/passwd配置文件中user1的家目录那个字段而改变user1的家目录呢? (提示: 您可以使用 “cd ~ ”命令来进入当前用户家目录的方法来验证)

[root@uhza006714 ~]# useradd    user1

[root@uhza006714 ~]# grep  user1  /etc/passwd

user1:x:502:503::/home/user1:/bin/bash

[root@uhza006714 ~]# sed  -i  's#/home/user1#/tmp#'  /etc/passwd

[root@uhza006714 ~]# grep user1 /etc/passwd

user1:x:502:503::/tmp:/bin/bash

[root@uhza006714 ~]# su  -  user1

-bash-3.2$ echo $HOME

/tmp

-bash-3.2$ cd

-bash-3.2$ pwd

/tmp

证明可以通过更改/etc/passwd而更改用户的家目录


6. /etc/passwd 文件以":"为分隔符,第三和第四个字段表示什么含义?如果把某一行的第三个字段改为'0' 会发生什么?

第三个表示用户id,第四个为组id,如果把第三个字段改为0,则该用户变成root


7.  先新增一个组group11,然后再新增一个账号user12, 使该账号所属组为刚刚新增的组。

groupadd group11; useradd -g group11 user12


8. 如果删除一个组时报错: “cannot remove the primary group of user 'aming'” 这是什么意思?如何解决该问题呢?

这是因为删除的组内有用户,需要先删除该组内的账号,再删除组;或者更改aming所在组


9. 如何删除某个账户时,连带这个账户的家目录一并删除?

userdel -r username


10. 如果您的Linux没有命令"mkpasswd", 需要安装哪个包?

yum install -y expect


11. 普通账户可以修改自己的密码吗?

可以修改   因为sudo权限赋予的


12. 使用su时,后面加了 '-' 表示什么含义?

加上- 表示,切换用户时,使用该用户的所有用户环境变量,例如$HOME, $BASH


13. sudo的作用是什么呢?

使用sudo可以使普通账户不用知道root的密码而临时拥有root的权限,这是为了提高安全性


14. 创建系统账号时,帐户名要符合什么样的规范?

可以是大小写字母、数字、减号(不能出现在首位)、点以及下划线,其他字符不合法。虽然用户名中可以出现点,但不建议使用,尤其是首位为点时,另外减号也不建议使用,因为容易造成混淆。


15. Linux系统里,你知道最大uid能有多大吗?默认创建一个普通帐号的uid最小是多少?

普通用户的uid最大为65535,目前的 linux 核心 (2.6.x 版)已经可以最大支持到 4294967295 (2^32-1) 。默认普通账号的最小uid为500


16. 请思考,一个用户可以同时属于多个用户组吗?如果可以,如何把一个用户加入到另外的组里? 同时加入多个组怎么做?

可以同时属于多个用户组,usermod  -G GROUP1,GROUP2,GROUP3 username

这还有一个附加组的概念,有兴趣的可以去查查;