分享
 
 
 

安全管理Linux系统中的用户和组

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

Linux系统中,用户是活动的主体,直接享有对系统文件和资源进行操作和控制的权利,所以如何对系统中的用户进行好的管理,是系统管理员保证系统安全必须认真完成的第一步工作。

在Linux操作系统中,每一个文件和程序都归属于一个特定的“用户”。每一个用户都由一个惟一的身份来标识,这个标识叫做用户ID(UserID,UID)。并且,系统中的每一个用户也至少需要属于一个“用户分组”,也就是由系统管理员所建立的用户小组,这个小组中包含着许多系统用户。与用户一样,用户分组也是由一个惟一的身份来标识的,该标识叫做用户分组ID(GroupID,GID)。用户可以归属于多个用户分组。对某个文件或程序的访问是以它的UID和GID为基础的。一个执行中的程序继承了调用它的用户的权利和访问权限。

用户文件和组文件

1. 用户账户文件――/etc/passwd

/etc/passwd文件是Unix安全的关键文件之一。这个文件的每一行保存一个用户的资料,而用户资料的每一个数据项采用冒号“: ”分隔。如下所示:

LOGNAME: PASSWORD: UID: GID: USERINFO: HOME: SHELL

每行的头两项是登录名和加密后的口令,后面的两个数是UID和GID,接着的一项是系统管理员想写入的有关该用户的任何信息。最后两项是两个路径名: 一个是分配给用户的HOME目录; 第二个是用户登录后将执行的shell(若为空格则缺省为/bin/sh)。所有用户口令的存放都是加密的,通常采用的是不可逆的加密算法,比如DES。任何拥有0值UID的用户都具有根用户(系统管理员)访问权限,通常,UID是这个特殊值的用户的登录名是“root”。允许任何其他用户或者用户名拥有0值的UID都可能危及系统安全。

2. 用户影子文件――shadow

由于/etc/passwd文件是全局可读的,而且口令加密的算法是公开的,如果有恶意用户取得了/etc/passwd文件,便可以穷举所有可能的明文通过相同的算法计算出密文进行比较,直到相同,从而破解口令。因此,针对这种安全问题,Linux/Unix广泛采用了“shadow(影子)文件”机制,将加密的口令转移到/etc/shadow文件里,该文件只为root超级用户可读,而同时/etc/passwd文件的密文域显示为一个x,从而最大限度地减少了密文泄露的机会。/etc/shadow文件的每行是8个冒号分割的9个域,格式如下。

username: passwd: lastchg: min: max: warn: inactive: expire: flag

其中,各个域表示如下含义: 用户登录名、加密的用户口令、从1970年1月1日起到上次修改口令所经过的天数、两次修改口令之间至少经过的天数、口令还会有效的最大天数(如果是99999则表示永不过期)、口令失效前多少天内系统向用户发出警告、禁止登陆前用户名还有效的天数、用户被禁止登陆的时间、保留字段(暂未使用)。

3. 用户组账号文件――/etc/group

/etc/passwd文件中包含着每个用户缺省的分组ID(GID)。在/etc/group文件中,这个GID被映射到该用户分组的名称以及同一分组中的其他成员。

/etc/group文件含有关于小组的信息,/etc/passwd中的每个GID在文件中应当有相应的入口项,入口项中列出了小组名和小组中的用户,这样可方便地了解每个小组的用户,否则必须根据GID在/etc/passwd文件中从头至尾地寻找同组用户,这提供了一个比较快捷的寻找途径。/etc/group文件对小组的许可权限的控制并不是必要的,因为系统用来自于/etc/passwd文件的UID、GID来决定文件存取权限,即使/etc/group文件不存在于系统中,具有相同的GID用户也可以小组的存取许可权限共享文件。小组就像登录用户一样可以有口令。如果/etc/group文件入口项的第二个域为非空(通常用x表示),则将被认为是加密口令。

/etc/group文件中每一行的内容如下所示: 用户分组名、加过密的用户分组口令、用户分组ID号(GID)、以逗号分隔的成员用户清单。

4. 组账号文件――/etc/gshadow

如同用户账号文件的作用一样,组账号文件也是为了加强组口令的安全性,防止黑客对其实行的暴力攻击,而采用的一种将组口令与组的其他信息相分离的安全机制。其格式如下所示: 用户组名、加密的组口令、组成员列表。

验证用户和组文件

1. 使用pwck和grpck命令验证用户和组文件

上面所介绍的用户以及组账号文件都非常重要,对于系统验证用户和组具有重要意义。一旦上述文件发生错误,则会对系统造成影响。正是基于这个原因,Linux提供了pwck和grpck这两个命令分别验证用户以及组文件,以保证这两个文件的一致性和正确性。下面将分别加以介绍。

pwck用来验证用户账号文件(/etc/passwd)和影子文件(/etc/shadow)的一致性,它验证文件中的每一个数据项中每个域的格式以及数据的正确性。如果发现错误,该命令将会提示用户对出现错误的数据项进行删除。

该命令主要验证每个数据项是否具有: 正确的域数目、惟一的用户名、合法的用户和组标识、合法的主要组群、合法的主目录、合法的登录shell。如果检查发现域数目与用户名错误,则该错误是致命的,则需要用户删除整个数据项。其他的错误均为非致命的,将会需要用户进行修改,而不一定要删除整个数据项。下面的例子说明如何使用该命令:

//cat /etc/passwd

//显示系统中原来的用户账号文件

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

……

#vi /etc/passwd

//编辑该账号文件,并加入一项不存在的数据项

//“super:x:200:200:superman:/home/super:/bin/bash”

#pwck /etc/passwd //执行验证工作

//验证出系统并不存在该super用户

user adm: directory /var/adm does not exist

user news: directory /etc/news does not exist

user uucp: directory /var/spool/uucp does not exist

user gopher: directory /var/gopher does not exist

user pcap: directory /var/arpwatch does not exist

user super: no group 200

user super: directory /home/super does not exist

pwck: no changes

//再次编辑该账号文件,加入不正确的数据项“super:x:200:200:superman:/home/super:”

//执行验证工作

#pwck /etc/passwd

user adm: directory /var/adm does not exist

user news: directory /etc/news does not exist

user uucp: directory /var/spool/uucp does not exist

user gopher: directory /var/gopher does not exist

user pcap: directory /var/arpwatch does not exist

user super: no group 200

user super: directory /home/super does not exist

invalid password file entry

delete line `'? y

pwck: the files have been updated

上述执行的两次验证操作结果不一样,第一次并没有要求用户删除该不正确的数据项,原因是数据项中域的数目没有发生错误,而第二次域的数目少了一个(本来应该有七项,只有六项),所以是致命错误,系统提示用户进行删除,用户确定删除后该文件验证才通过。同样地,也可以用该命令来验证/etc/shadow文件的一致性。

与pwck命令相类似,grpck命令是用来验证组账号文件(/etc/group)和影子文件(/etc/gshadow)的一致性和正确性的。该命令验证文件中的每一个数据项中每个域的格式以及数据的正确性。如果发现错误,该命令将会提示用户对出现错误的数据项进行删除。

该命令主要验证每个数据项是否具有: 正确的域数目、惟一的组群标识、合法的成员和管理员列表。

如果检查发现域数目与组名错误,则该错误是致命的,则需要用户删除整个数据项。其他的错误均为非致命的,将会需要用户进行修改,而不一定要删除整个数据项。

下面的例子说明如何使用该命令:

//cat /etc/group //显示系统中原来的用户账号文件

root:x:0:root,patterson

bin:x:1:root,bin,daemon

daemon:x:2:root,bin,daemon

sys:x:3:root,bin,adm

adm:x:4:root,adm,daemon

tty:x:5:

disk:x:6:root

lp:x:7:daemon,lp

kmem:x:9:

supersun:x:501:liyangsuper

liyangsuper:x:502:

patterson1:x:504:

programmer:x:2500:

jerry:x:503:

manager:x:2500:

#vi /etc/group

//编辑该账号文件,加入不正确的数据项“test:x”

//执行验证工作

#grpck /etc/group

invalid group file entry

delete line `tes

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有