linux用户管理

来源:互联网 发布:king网址软件 编辑:程序博客网 时间:2024/06/03 15:14

用户管理配置文件

Linux操作系统中,与用户有关的信息保存在/etc/passwd/etc/shadow这两个文件中,与用户组有关的信息保存在/etc/group/etc/gshadow这两个文件中。(查看所有用户>cat /etc/passwd)(查看所有用户组>cat /etc/group

与用户管理相关的配置文件

1/etc/passwd

2/etc/shadow

3/etc/group

4/etc/gshadow

5/etc/login.defs

6/etc/default/useradd

1/etc/passwd
在/etc/passwd中,每一行都表示的是一个用户的信息。每一行有7个段位,每个段位用:号分割。
  第一字段:用户名(也被称为登录名)

          第二字段:口令,具体内容是一个字母x,其密码已被映射到/etc/shadow文件中。

          第三字段:UID。

          第四字段:GID。

          第五字段:用户名全称,这是可选的,可以不设置。

          第六字段:用户个人目录所在位置。

          第七字段:用户所用SHELL 的类型。

2/etc/shadow

/etc/shadow文件是/etc/passwd的影子文件,这个文件不是由/etc/passwd产生的。/etc/shadow/etc/passwd是对应互补的。

/etc/shadow文件内容包括了用户名及被加密的密码以及其它在/etc/passwd中没有包括的用户信息。比如用户的有效期限、密码过期时间等。/etc/shadow文件的读取和修改需要root权限。

/etc/shadow 文件的内容包括9个段位,每个段位之间用:号分割。
  第一字段:用户名(也被称为登录名),在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd和shadow中用的用户记录联系在一起,这个   字段是非空的。

          第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统,这个字段是非空的。

          第三字段:上次修改口令的时间。这个时间是从1970年01月01日算起到最近一次修改口令的时间间隔(天数)。

          第四字段:两次修改口令间隔最少的天数,如果设置为0,则表示禁用此功能。此项功能对于提高系统的安全性有重要的意义。其默认值是通过/etc/login.defs文件的PASS_MIN_DAYS选项进行定义。

          第五字段:两次修改口令间隔最多的天数,也就是所谓的口令有效期。此功能增强了操作系统用户管理口令的时效性,对于提高系统的安全性有重要的意义。其默认值是通过/etc/login.defs文件的PASS_MAX_DAYS选项进行定义。

          第六字段:提前多少天警告用户口令将过期。当用户登录系统后,系统登录程序提醒用户口令将要在多少天内作废。其默认值是通过/etc/login.defs文件的PASS_WARN_AGE选项进行定义。

          第七字段:在口令过期之后多少天禁用此用户。此字段表示用户口令作废多少天后,系统会禁用此用户。用户禁用后,将无法登陆系统且无法进行口令修改。

          第八字段:用户过期日期。此字段指定了用户过期的天数(从1970年的1月1日开始的天数),如果这个字段的值为空,帐号永远不过期;

          第九字段:保留字段,目前为空,以备将来Linux发展之用。

          可以使用man shadow命令来查看帮助,从而获得更为详尽的资料。

3/etc/group

/etc/group内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录。 

  第一字段:用户组名称。

          第二字段:用户组密码。

          第三字段:GID。

          第四字段:用户列表,每个用户之间用,号分割。该字段可以为空,如果字段为空表示用户组为GID的用户名。

4/etc/gshadow

/etc/gshado/etc/group的加密文件,用户组(Group)管理的密码就是存放在这个文件中。/etc/gshadow/etc/group是互补的两个文件。

                第一字段:用户组。

                第二字段:用户组密码。这个段可以是空的或!,如果是空的或有!,表示没有密码。

                第三字段:用户组管理者。这个字段也可为空,如果有多个用户组管理者,用,号分割。

                第四字段:组成员。如果有多个成员,用,号分割。 

5/etc/login.defs
/etc/login.defs文件是当创建用户时的一些默认规划。对此文件的修改需要root权限。

6/etc/default/useradd

 /etc/default/useradd定义了通过useradd命令添加用户时的规则。

           查看系统/etc/default/useradd文件的内容,具体如下。

# useradd defaults file

GROUP=100

HOME=/home 注:把用户的家目录建在/home中。

INACTIVE=-1 注:是否启用帐号过期停权,-1表示不启用。

EXPIRE=   注:帐号终止日期,不设置表示不启用。

SHELL=/bin/bash 注:所用SHELL的类型。

SKEL=/etc/skel注:默认添加用户的目录默认文件存放位置。当用adduser添加用户时,用户个人目录下的文件,都是从这个目录中复制过去。


                      用户管理命令一览表

序号

命令

说明

1

useradd

添加用户。

2

adduser

添加用户。

3

passwd

设置用户的密码。

4

usermod

修改用户的配置参数。例如登录名、用户的个人目录等。

5

pwconv

可以开启用户的投影密码。将用户密码从/etc/passwd同步到/etc/shadow

6

pwck

校验用户配置文件/etc/passwd/etc/shadow文件内容是否合法或完整。

7

pwunconv

执行pwunconv指令可以关闭用户投影密码,它会把密码从shadow文件内,重回存到passwd文件里。

8

finger

查看用户信息工具。

9

id

查看用户的UIDGID及所归属的用户组。

10

chfn

更改用户信息。

11

su

用户切换工具。

12

sudo

sudo是通过另一个用户来执行命令(execute a command as another user),su用来切换用户,然后通过切换到的用户来完成相应的任务。

13

visudo

visodo是编辑/etc/sudoers的命令,相当于直接编辑/etc/sudoers

14

sudoedit

 

使用id查看用户信息

命令:

shell>id [参数] [用户名]

          命令参数:

-g--group  显示用户所属群组的ID

-G--groups  显示用户所属附加群组的ID

-n--name  显示用户,所属群组或附加群组的名称。

-r--real  显示实际ID

-u--user  显示用户ID

--help  显示帮助。

--version  显示版本信息

    命令说明:

              (1)id命令用于查看用户信息和用户组信息。

              (2)指定用户名时查看指定用户的信息,不指定用户名时查看当前用户的信息。不指定参数时,显示所有信息。


查看登录到系统的用户

命令:

shell>w

shell>who

shell>users

    命令说明:

     (1wwhousers命令可以查询已登录当前主机的用户。

     (2wwhousers命令的作用相同,展示数据的方式不同。

useradd添加用户

命令:

shell>useradd[-u uid [-o]] [-g group] [-G group,...]

               [-d home] [-s shell] [-c comment] [-m [-k template]]

               [-f inactive] [-e expire ] [-p passwd] name

shell>useradd-D [-g group] [-b base] [-s shell]

[-f inactive] [-e expire ]

    命令参数:

-c:加上备注文字,备注文字保存在password的备注栏中。

-d:指定用户登入时的启始目录。

-D:变更预设值。

-e:指定账号的有效期限,缺省表示永久有效。

-f:指定在密码过期后多少天即关闭该账号。

-g:指定用户所属的群组。

-G:指定用户所属的附加群组。

-m:自动建立用户的登入目录。

-M:不要自动建立用户的登入目录。

-n:取消建立以用户名称为名的群组。

-r:建立系统账号。

-s:指定用户登入后所使用的shell

-u:指定用户ID号。

       命令说明:

           (1useradd 后面直接跟用户名,不加任何参数,表示添加用户时按事先/etc/default/adduser /etc/login.defs 添加新用户的配置文件的规则来添加用户。

useradd不加参数选项,后面直接跟所添加的用户名进行执行时的过程是:

                     第一步:读取添加用户配置文件/etc/login.defs/etc/default/useradd中所定义的规则。

                     第二步:依据规则添加用户。

                     第三步:向/etc/passwd/etc/groups文件添加用户和用户组记录。

                     第四步:在/etc/shadow/etc/gshadow加密资讯文件中同步生成记录。

                     第四步:在/etc/default/useradd中所指定的用户默认文件存储的目录中建立用户个人目录。

                     第五步:复制/etc/skel中的文件所有文件(包括隐藏文件)到新创建的用户个人目录。

           (2useradd-D参数,可以修改配置文件中的默认参数。后面不添加任何内容直接执行useradd -D命令,显示配置文件信息。

           (3useradd命令在创建用户时,没有指定用户密码,在用户创建完成后,使用passwd命令设置用户密码。

使用passwd修改密码

命令:

shell>passwd [-dklS][-u <-f>][用户名称]

    命令参数:

-k, --keep-tokens:保留即将过期的用户在期满后能仍能使用。

-d, --delete:删除用户密码,仅能以root权限操作。

-l, --lock:锁住用户无权更改其密码,仅能通过root权限操作。

-u, --unlock:解除锁定。

-f, --force:强制操作;仅root权限才能操作。

-x, --maximum=DAYS:两次密码修正的最大天数,后面接数字;仅能root权限操作。

-n, --minimum=DAYS:两次密码修改的最小天数,后面接数字,仅能root权限操作。

-w, --warning=DAYS:在距多少天提醒用户修改密码;仅能root权限操作。

-i, --inactive=DAYS:在密码过期后多少天,用户被禁掉,仅能以root操作。

-S, --status:查询用户的密码状态,仅能root用户操作。

          命令说明:

             (1)passwd的执行权限为普通用户和超级权限用户。普通用户只能更改自己的用户密码,但前提是没有被root用户锁定。root用户可以设置或修改任何用户的密码。

            (2)passwd命令后面不接任何参数或用户名,则表示修改当前用户的密码。

            (3)使用useradd命令创建新用户后,新创建的用户是没有密码的,需要及时通过passwd命令为其创建密码。

            (4)如果需要指定某个用户不能修改密码,passwd -l锁定用户的密码修改权限。

使用usermod修改用户信息

    命令:

shell>usermod [-u uid [-o]] [-g group] [-G group,...]

[-d 主目录 [-m]] [-s shell] [-c 注释] [-l 新名称]

             [-f 失效日] [-e 过期日] [-p 密码] [-L|-U] 用户名

    命令参数:

-c comment:更新用户password档中的注解内容。

-d home_dir:更新用户的登入目录。如果给定-m选项,用户旧目录会搬到新的目录去,如旧目录不存在则建新的目录。

-e expire_date:设置用户帐号过期的日期,日期格式为MM/DD/YY

-f inactive_days:帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能。预设值为-1

-g initial_group:更新用户新的起始登入用户组。用户组名须已存在。用户组ID必须参照既有的的用户组。用户组ID预设值为1

-G group[...]:定义用户为多个用户组成员。每个用户组使用","隔开,不可以夹杂空白内容。用户组名同-g选项的限制。如果用户已经所属的用户组不在此列,则将用户从不在此列的用户组中移除。

-l login_name:变更用户login时的名称为login_name。用户目录名也会同步更动为新的登入名。

-s shell:指定用户使用的shell。如此栏留白,将选用系统预设shell

-u uid:修改用户ID值。为用户指定的ID值必须为唯一ID值,除非用-o选项。数字不可为负值。UID值不得小于/etc/login.defs中定义的UID_MIN值。用户目录树下所有的档案目录其userID会自动改变。放在用户目录外的档案则要不会自动更新,需要手动更新。

          命令说明:

             (1)usermod能够修改用户的各种信息与配置,例如修改用户的SHELL类型、所归属用户组、用户密码有效期以及登录名等信息。

             (2)usermod不允许修改当前活动用户的信息。当usermod修改用户信息时,首先确认被修改用户的UID没有执行任何程序。

             (3)usermod和useradd名的参数信息基本一致,useradd用于创建用户,而usermod用于修改用户信息。

userdel删除用户

    命令:

shell>userdel [-r][用户帐号]

    命令说明:

       (1userdel删除指定用户信息。

       (2)使用-r参数,可以在删除用户信息的同时,删除用户的个人目录的全部数据。

用户组

Linux操作系统中,提供了一系列用于用户组管理的命令,具体如下表所示。

                                        用户组管理命令一览表

序号

命令

说明

1

groupadd

添加用户组。

2

groupdel

删除用户组。

3

groupmod

修改用户组信息。

4

groups

显示用户所属的用户组信息。

5

grpck

检查用户组及密码文件的完整性(etc/group/etc/gshadow

6

grpconv

开启用户组的投影密码。将用户组密码从/etc/group同步到/etc/gshadow。如果/etc/gshadow不存在则创建。

7

grpunconv

执行grpunconv指令可以关闭用户组投影密码,它会把密码从gshadow文件内,重回存到group文件里,并删除gshadow文件。

groupadd创建用户组

    命令:

shell>groupadd [-g gid [-o]] [-r] [-f] 用户组名

    命令参数:

-g gid:除非使用-o参数,否则该值必须是唯一的。数值不可为负。

-o:允许设置相同组id的群组。

-r:建立系统组。

-f:强制执行,默认是不允许创建相同id的组的,使用此参数就可以,而且不用-o选项。

    命令说明:

       (1groupadd可指定用户组名称来建立新的用户组帐号,需要时可从系统中取得新用户组值。

       (2)建议创建用户组是尽量简单,直接指定用户组名称就可以。

groupdel删除用户组

    命令:

shell>groupdel用户组名称

    命令说明:

      (1groupdel用于删除指定的用户组。

      (2)删除用户组时,用户组必须存在,如果被删除用户组中的任一用户在使用,则不能删除该用户组。

 

groupmod修改用户组信息

    命令:

shell>groupmod [-g gid [-o]] [-n NewGroupName] 用户组名

    命令参数:

-g gid:指定GID

-o:与groupadd命令中相同的作用。

-n NewGroupName:修改用户组名为NewGroupName

    命令说明:

      (1groupmod命令用于修改用户组的基本信息。

      (2)指定的GID必须在系统中唯一,指定的NewGroupName必须在系统中唯一。

groups查询用户所在组

    命令:

shell>groups [用户名]

    命令说明:

      (1groups用于查询指定用户所归属的用户组信息。

      (2)如果不指定用户名,groups查询当前用户的用户组信息。



原创粉丝点击