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

转自 linux下用户,用户组和用户权限的查看

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

相关命令:
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] 设定密码

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

/etc/shadow:
和/etc/passwd类似,用”:”分割成9个字段。
  • 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)作为保留用的,没有什么意义。

/etc/passwd:
#cat /etc/passwd
效果如下:

/etc/passwd中一行记录对应着一个用户,每行记录又被冒号:分隔为7个字段,其格式和具体含义如下:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
1)“ 用户名”是代表用户账号的字符串。通常长度不超过8个字符,并且由大小写字母和/或数字组成。登录名中不能有冒号(,因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不使用连字符(-)和加号(+)打头。

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

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

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

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

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

7)用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的 命令解释器或某个特定的程序,即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。 如果不指定Shell,那么系统使用sh为默认的登录Shell,即这个字段的值为/bin/sh

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

猜你喜欢

转载自desert3.iteye.com/blog/1358680
今日推荐