管理用户和组账号

用户和组账号概述

Linux基于用户身份对资源访问进行控制

用户帐号:

超级用户 root  超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统

普通用户   普通用户帐号一般只在用户自己的宿主目录中有完全权限

程序用户   程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bindaemonftpmail

 

组帐号:

基本组(私有组)  创建用户时指定的组

附加组(公共组)  额外添加的指定组

 

UIDGID

UIDUser IDentity,用户标识号)

GIDGroup IDentify,组标识号)

l  root用户的UID号的固定值为0root组帐号的GID号为固定值0

l  1-499UIDGID号默认保留给程序用户使用,普通用户/组使用的UIDGID号在50060000之间

 

用户账号文件 /etc/passwd

保存用户名称、宿主目录、登录Shell等基本信息

文件位置:/etc/passwd

每一行对应一个用户的帐号记录

账户和权限管理_权限管理

l  基于系统运行和管理需要,所有用户都可以访问passwd文件中的内容,但是只有root用户才能进行更改

l  在早期的UNIX操作系统中,用户帐号的密码信息是保存在passwd文件中的,不法用户可以很容易的获取密码字串并进行暴力破解,因此存在一定的安全隐患,后来经改进后,将密码转存入专门的shadow文件中(见下页)并严格控制全新,而passwd文件中仅保留密码占位符“x”

 

用户账号文件 /etc/shadow

保存用户的密码、账号有效期等信息

文件位置:/etc/shadow

每一行对应一个用户的密码记录

 账户和权限管理_账户管理_02

字段7:在密码过期之后多少天禁用此用户

字段8:帐号失效时间,默认值为空

字段9:保留字段(未使用)

 

l  默认只有root用户能够读取文件中的内容,并且不允许root直接编辑该文件中的内容

l  上次修改密码的时间,表示从19700101日(可理解为Unix系统的诞生日)算起到最近一次修改密码时间隔的天数

l  当加密的密码信息为“*“或者”!!”时表示此用户不能登录到系统,若为空时无需密码即可登录系统

 

 

添加用户账号

useradd命令

格式     useradd  [选项]...  用户名

常用命令选项

-u:指定 UID 标记号

-d:指定宿主目录,缺省为 /home/用户名

-e:指定帐号失效时间,格式为YYYY-MM-DD

-g:指定用户的基本组名(或UID号)

-G:指定用户的附加组名(或GID号)

-M:不为用户建立并初始化宿主目录

-s:指定用户的登录Shell

 

账户和权限管理_账户管理_03

l  对应的基本组和附加组必须已存在

l  另外使用adduser命令也可以添加用户帐号

 

 

用户账号的初始配置文件

文件来源

新建用户帐号时,从 /etc/skel 目录中复制而来


主要的用户初始配置文件

~/.bash_profile:用户每次登录时执行   

~/.bashrc:每次进入新的Bash环境时执行   

~/.bash_logout:用户每次退出登录时执行 

 

账户和权限管理_权限管理_04 账户和权限管理_账户管理_05


 

账户和权限管理_账户管理_06

账户和权限管理_账户管理_07当用户退出登录后所记录的历史命令将自动清空

 

账户和权限管理_权限管理_08


l  如需为所有用户添加登录后自动运行的命令程序、自动设置变量等,可以直接修改/etc目录下的类似文件,如/etc/bashrc/etc/profile文件


设置/更改用户口令 passwd

passwd命令

格式     passwd  [选项]...  用户名

l  只有root用户才能进行更改密码

l  不指定用户名时,修改当前账号的密码

常用命令选项

-d:清空用户的密码,使之无需密码即可登录

-l:锁定用户帐号

-u:解锁用户账户

-S :查看用户账号的状态(是否被锁定)

l  标准性密码输入:echo  “密码”  |  passwd  --stdin   用户名

 

修改用户账号的属性usermod

usermod命令

格式       usermod  [选项]...  用户名

常用命令选项

-l:更改用户帐号的登录名称

-L:锁定用户账户

-U:解锁用户账户

以下选项与useradd命令中的含义相同

 -u-d-e-g-G-s

l  usermod有两个选项“-L”、“-U”,分别用于锁定、解锁用户帐号,这两个选项与passwd命令的“-l”、“-u”选项作用基本相同,只不过大小写存在区别

 

删除用户账号 userdel

userdel命令

格式     userdel  [-r]  用户名

添加 -r 选项时,表示连用户的宿主目录一并删除

 

组账号文件

与用户帐号文件相类似

/etc/group:保存组帐号基本信息

/etc/gshadow:保存组帐号的密码信息

账户和权限管理_权限管理_09

l  group文件内的最后一个字段中列出属于该组的用户成员(一般不包括基本组对应的用户帐号),多个成员之间以逗号“,”分隔

 

添加组账号 groupadd

groupadd命令

格式       groupadd  [-g GID]  组账号名

 

删除组账号 groupdel

groupdel命令

格式      groupdel  组帐号名

 

查询账号信息

id命令

用途:查询用户身份标识

格式     id  [用户名]

 

groups命令

用途:查询用户所属的组

格式     groups  [用户名]

 

finger命令

用途:查询用户帐号的详细信息

格式     finger  [用户名]

 

usersw who命令

用途:查询已登录到主机的用户信息

 

文件/目录的权限和归属

访问权限

读取 r:允许查看文件内容、显示目录列表

写入 w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

可执行 x:允许运行程序、切换目录

 

归属(所有权)

属主:拥有该文件或目录的用户帐号

属组:拥有该文件或目录的组帐号

账户和权限管理_账户管理_10账户和权限管理_权限管理_11

 

l  -rw-rr--”部分的第一个字符表示文件类型,可以是d(目录)b(块设备文件)c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等

l  其余部分指定了文件的访问权限

l  在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符: r可读 w可写 x可执行 -无权限

l  rwx- 权限字符还可分别表示为8进制数字4210

账户和权限管理_权限管理_12

l  普通文件的最大权限为6

l  文件夹的最大权限为7

 

设置文件和目录的权限 chmod

chmod命令

格式1

 账户和权限管理_权限管理_13

 


格式2

 账户和权限管理_权限管理_14


常用命令选项

-R:递归修改指定目录下所有子项的权限

 

设置文件和目录的归属 chown

chown命令

格式

chown  属主   文件或目录

chown  :属组  文件或目录     也可以通过 chgrp  属主  文件或目录,chgrp命令只用于修改属组信息(因此并不常用)

chown  属主:属组  文件或目录    也可以chown  属主.属组

 

常用命令选项

-R:递归修改指定目录下所有文件、子目录的归属