linux下用户、用户组、密码等相关操作和文件

转自[url=http://huagelinux.blog.163.com/blog/static/87337083201092332443480/]linux下用户,用户组和用户权限的查看[/url]

[b]相关文件:[/b]
/usr/bin/passwd 包含 passwd 命令。
/etc/passwd 包含用户 ID、用户名、主目录、登录 shell 和 finger 的信息
/etc/security/passwd 包含加密的密码和安全性信息。
/etc/shdow 用户加密后的口令存放位置

[b]相关命令:[/b]
groups 查看当前用户所在的组
groupadd http 添加组
groupadd [-g GID] groupname 添加组
gropudel groupname 删除组
useradd http -g http 添加用户
useradd [-u UID] [-g GID] [-d HOME] [-M] [-s] 添加用户 -u 自定义UID
-g 使其属于已经存在的某个GID -d 自定义用户的家目录 -M 不建立家目录 -s 自定义shell 等创建完账户后,默认是没有设置密码的,虽然没有密码,但该账户同样登录不了系统。只有设置好密码后方可登录系统。
userdel [-r] username 删除用户
passwd [username] 设定密码

[b]cat /etc/group:[/b]
etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户列表(Userlist),每个用户组一条记录;格式如下:
group_name:passwd:GID:user_list
例子:
root:x:0:root,linuxsir 注:用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括[color=red]root、linuxsir用户以及GID为0的其它用户(可以通过 /etc/passwd查看)[/color]

[b]/etc/shadow:[/b]
和/etc/passwd类似,用”:”分割成9个字段。
[list]
[*]1)用户名,跟/etc/passwd对应。
[*]2)用户密码,这个才是该账号的真正的密码,不过这个密码已经加密过了,但是有些黑客还是能够解密的。所以为了安全,该文件属性设置为600,只允许root读写。
[*]3)上次更改密码的日期,这个数字是这样计算得来的,距离1970年1月1日到上次更改密码的日期,例如上次更改密码的日期为2012年1月1日,则这个值就是365*(2012-1970)+1=15331。
[*]4)要过多少天才可以更改密码,默认是0,即不限制。
[*]5)密码多少天后到期。即在多少天内必须更改密码,例如这里设置成30,则30天内必须更改一次密码,否则将不能登录系统,默认是99999,可以理解为永远不需要改。
[*]6)密码到期前的警告期限,若这个值设置成7,则表示当7天后密码过期时,系统就发出警告告诉用户,提醒用户他的密码将在7天后到期。
[*]7)账号失效期限。你可以这样理解,如果设置这个值为3,则表示:密码已经到期,然而用户并没有在到期前修改密码,那么再过3天,则这个账号就失效了,即锁定了。
[*]8)账号的生命周期,跟第三段一样,是按距离1970年1月1日多少天算的。它表示的含义是,账号在这个日期前可以使用,到期后账号作废。
[*]9)作为保留用的,没有什么意义。
[/list]
[b]/etc/passwd:[/b]
#cat /etc/passwd
效果如下:
[img]http://dl.iteye.com/upload/attachment/0062/3053/05fececb-ba8f-3eb7-8aa5-80bed79c87e4.jpg[/img]
/etc/passwd中一行记录对应着一个用户,每行记录又被冒号:分隔为7个字段,其格式和具体含义如下:
[color=red]用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell[/color]
1)“[color=red]用户名[/color]”是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(,因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。

2)“[color=red]口令[/color]”一些系统中,存放着加密后的用户口令字。。虽然这个字段存放的只是用户口令的加密串,不是 明文,但是由于[color=red]/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多 Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中[/color],而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”。

3)“[color=red]用户标识号[/color]”是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一一对应的。[color=red]如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录Shell等[/color]。
通常用户标识号的取值范围是0~65535。[color=red]0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。[/color]

4)“[color=red]组标识号[/color]”字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。

5)“[color=red]注释性描述[/color]”字段记录着用户的一些个人情况,例如用户的真实姓名、电话、地址等,这个字段并没有什么实际的用途。在不同的Linux 系统中,这个字段的格式并没有统一。在许多Linux系统中,这个字段存放的是一段任意的注释性描述文字,用做finger命令的输出。

6)“[color=red]主目录[/color]”,也就是用户的起始工作目录,它是用户在登录到系统之后所处的目录。在大多数系统中,各用户的主目录都被组织在同一个特定的目录下,而用户主目录的名称就是该用户的登录名。各用户对自己的主目录有读、写、执行(搜索)权限,其他用户对此目录的访问权限则根据具体情况设置。

7)用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的[color=red]命令解释器或某个特定的程序[/color],即Shell。Shell 是用户与Linux系统之间的接口。Linux的Shell有许多种,每种都有不同的特点。常用的有sh(Bourne Shell), csh(C Shell), ksh(Korn Shell), tcsh(TENEX/TOPS-20 type C Shell), bash(Bourne Again Shell)等。系统管理员可以根据系统情况和用户习惯为用户指定某个Shell。[color=red]如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh[/color]。

用户的登录Shell也可以指定为某个特定的程序(此程序不是一个命令解释器)。[color=red]利用这一特点,我们可以限制用户只能运行指定的应用程序,在该应用程序运行结束后,用户就自动退出了系统[/color]。有些Linux 系统要求只有那些在系统中登记了的程序才能出现在这个字段中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值