LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4191|回复: 37

直接修改/etc/passwd添加新用户,密码安全问题

[复制链接]
发表于 2002-10-22 21:00:11 | 显示全部楼层 |阅读模式
手动修改/etc/passwd后,系统提示是否把改动映射到/etc/shadow,选择是以后
应该如何改动/etc/shadow呢?如果不改,会有什么后果吗?
发表于 2002-11-9 10:36:39 | 显示全部楼层
我也想过了这个问题,但还是没有搞的太懂。因为这关系统系统安全方面的,咱们应该重点学习一下这个。这个问题解有讨论的价值了。

直接在/etc/passwd文件中增加帐号,适用范围是增加大量帐号,当然还有更好的办法,用newusers和chpasswd工具。这些我还没有学习到,哈。。我也是菜的不行,只是看到而已。在以后的帖子中,弟兄们逐步完善吧。
操作环境:RedHat 8.0
1]首先是用finger命令来查一下,我们所增加的帐号linuxsir是否存在?
[root@LinuxSir02 root]# finger linuxsir
finger: linuxsir: no such user.
从上面的信息可以看出,linuxsir这个帐号是不存在,当然,我们也可以直接
#more /etc/passwd来查看,我这样说,只想让和我一样菜的弟兄明白一个命令的使用finger

2]编辑/etc/passwd,用vi或者是其它的编辑工具,如pico
#vi /etc/passwd

#pico /etc/passwd
如果这两个文本编辑器不会用,那在x下用#gedit也行。如果这个也不会,我觉得就不太可能了。呵。。。

说明一点:在linux中,帐号都是唯一识别的,此号码称为UID,root权限,也就是超级管理权限新添加的第一个帐号UID为500,然后是501等,一直下去。而每个组的帐号也是唯一的,也就是GID,这些都在/etc/group中。如果详细的情况,可以找一下相关文档。新加的组也是从500开始的。以此类推。

看下面的例子,我们用#vi /etc/passwd,新加一个用户
linuxsir:x:502:502:linuxsir:/home/linuxsir:/bin/bash
在这里,用户名为linuxsir,UID和GID都为502,那个x,也就是密码了。为了安全起见。linux就是显示为x,是不是root也不知道是什么?我也不理解,反正我用root,也看不到什么。请经通此道的弟兄指点一二。/home/linuxsir就是用户的目录了,/bin/bash就是用户的shell了。我们现在把那个x删除,也就加下面的一行,目的是没有密码,这样我们可能通过无密码登录,然后自己修改密码。
linuxsir::502:502:linuxsir:/home/linuxsir:/bin/bash
2]为有户创建目录
[root@LinuxSir02 root]mkdir /home/linuxsir
看一下是否创建成功?
[root@LinuxSir02 root]# ls /home
beinan  fonts    linuxsir
从上面的显示看来,已经有linuxsir这个目录了,证明已经成功了。

我们可以按[CTRL]+[ALT]+F2,试着用linuxsir登录。我们可以登入到系统,但发现一个问题,我们没有办法更改自己的帐号。无论怎么搞,就是不行。
$passwd
弟兄们也试一下,呵,可能是有些步聚不对?
下面说一下/etc/shadow这个文件吧。
3]/etc/shadow
这也是与用户管理相关的,据有关资料说是根据/etc/passwd文件产生的。只有root才能读取,密码是由MD5算法来的。root也不能看到帐号的密码。

在上面所做添加的帐号中,我发现一个问题,我们在/etc/passwd中新加的帐号,并没有在/etc/shadow中产生什么相应的内容。

请高手指点一二,我是哪块操作有问题?系统也没有提示johnpang兄弟所说的晚射到/etc/passwd?
发表于 2002-11-9 11:32:41 | 显示全部楼层
我记得要用一条同步命令。可以吧 passwd 的 东西 同步到 shadow
中。
发表于 2002-11-9 12:01:19 | 显示全部楼层
请兄弟指点一下,用哪个命令?
多谢。
发表于 2002-11-20 18:14:56 | 显示全部楼层

linux下有没有vipw??

在FreeBSD下用这个命令修改完后,系统会自动把相应的文件更新。
发表于 2002-11-20 20:45:42 | 显示全部楼层
北南兄基本讲的正确,我来讲一下完整的过程吧。
先补充finger命令。
#finger username@hostname
侦探hostname主机上username用户的情况,如果直接
finger @hostname,就是侦探hostname主机当前运行的用户情况,前提当然是hostname上开了finger服务.
系统中用户号及group号一般是从101开始加的。一般不要太大或太小,有的软件如数据库安装时对这个有要求的。
好了,现在说怎么手工加用户了。
#vi /etc/passwd
wxz8::101:101:wxz8:/home/wxz8:/bin/bash
在wxz:x:的这个x表示用户有加密的密码的,空的有无密码。
#vi /etc/group
wxz8::101:
这里的wxz8跟/etc/passwd中的那行的第二个wxz8相对应,表示group.
#vi /etc/shadow
wxz8::12011:0:99999:7:::
等会你如果给用户加了密码的话就会看到 wxz8:后面有很多的字符,就是加密后的密码。
#cd /etc/skel
#mkdir /home/wxz8
#cp .* /home/wxz8
#cp -r .kde /home/wxz8
在/etc/skel目录下有一些隐含文件及一个.kde的隐含目录,这些是定义用户的缺省属性的。你可以更改它。如自动运行程序什么的,使每个新建的用户都这样。
#cd /home/wxz8
#chown -R wxz8:wxz8 .*
OK!
wxz8这个用户就建好了。
用它登录,可以用
$passwd
来更改它的密码.
发表于 2002-11-20 21:49:06 | 显示全部楼层
老兄出手,果然不凡!

#vi /etc/shadow
wxz8::12011:0:99999:7:::
等会你如果给用户加了密码的话就会看到 wxz8:后面有很多的字符,就是加密后的密码。

多谢老兄指教。。。。上面的这步也是手工加入的吗?那么多的数字是用来做什么的?

另外请教的是,主机名,比如我用的是LinuxSir,我看了好多的书,都是local@localhost的形式。大概就是这样的形式的。但有点不解。为什么要有个@,咱们能不能直接就用我说的那个LinuxSir的形式的??我就用这样形式的,也没有什么问题,是不是这个格式的,对网络方面有什么影响。。或者说不良影响???

请兄台指教 。。。。
发表于 2002-11-20 22:23:32 | 显示全部楼层
关于/etc/shadow文件中各字段的含义我稍微讲一下
用户登录名
用户加密过的口令
口令上次更改时距1970年1月1日的天数(手工建是随便填啦,我懒的计算的)
口令更改后不可以更改的天数
口令更改后必须再更改的天数(有效期)
口令失效前警告用户的天数
口令失效后距帐号被查封的天数
帐号被封时距1970年1月1日的天数
各字段以:号分开。
发表于 2002-11-20 22:26:05 | 显示全部楼层
对了,还有一点我要补充一下。用户加密过的口令,一般是很凌乱的字符,如果该用户的这个字段是*的话,表示该用户是不可以登录的,如系统用户,ftp用户等。
发表于 2002-11-24 17:25:40 | 显示全部楼层
成功!!!!!
呵,为了这个问题,我就搞了四天。。。。没有办法,我太笨。。。。。我把老兄的教程仔细的看了N次,总出现没有101的用户组的提示信息。实践了这么多天,也没有一点进展,可能自己也太粗心,我也不敢问,就怕因为自己有些步骤操作失误,或者少了什么步骤。果不其然,我没有做#vi /etc/group 这步。这是我把教程打印出来才发现的。我是一步一步的做下去,每做一步就把已经做过一个标记。哈。。。这样下去,不是做到哪里,我一清二楚。。。

等我把这步做了后,到虚拟控制台下,一步登入改密码成功。没有一点错误信息。用同样的方法,我又一连串的方法造了6个帐号。无一失败。


提示:学习要细心,也要有耐心!


相关细节再解释一下。怕新手弟兄不太清楚有些命令。

#chown -R wxz8:wxz8 .*
在教程中,这一步是变更文件或目录拥有者或所属群组的权限。-R,是把目录下的所有的文件和目录,一一递归处理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表