Linux基础二

目录

一、理解用户账户文件

1./etc/passwd文件

2./etc/shadow文件

3./etc/login.defs文件

二、理解组群文件

  1./etc/group文件

  2./etc/gshadow文件

三、新建用户

四、设置用户账户口令     1.passwd命令

2.chage命令

五、维护用户账户

1.修改用户账户

2.禁用和恢复用户账户

3.删除用户账户

六、管理组群

1、维护组群用户

2、为组群添加用户


一、理解用户账户文件

1./etc/passwd文件

准备工作:新建用户bobby、user1、user2,将user1和 user2加入bobby群组

 
 [root@localhost ~] useradd bobby

 [root@localhost ~] useradd user1

 [root@localhost ~] useradd user2

 [root@localhost ~] usermod -G bobby user1

 [root@localhost ~] usermod -G bobby user2

  在Linux系统中,所创建的用户账户及其相关信息(密码除外)均放在/etc/passwd配置文件中。用vim编辑器(或者使用cat  /etc/passwd)打开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

 user1:x:1002:1002::/home/user1:/bin/bash
字段说明
字段说明
用户名用户账号名称,用户登陆时所使用的用户名
加密口令用户口令,考虑系统的安全性,现在已经不适用该字段保存口令,而用字母“x”
UID用户号,唯一表示某用户的数字标识
GID用户所属的私有组号,该数字对应group中的GID
用户描述信息可选的关于用户全名、用户电话等描述信息
主目录用户的宿主目录,用户成功登录后的默认目录
命令解释器用户所使用的shell,默认为“/bin/bash”

2./etc/shadow文件

由于所有用户对/etc/passwd文件均有读取权限,为了增强系统的安全性,用户经过加密之后的口令都存放在/etc/shadow文件中。/etc/shadow文件只对root用户可读,因而大大提高了系统的安全性。shadow文件的内容形式如下(cat  /etc/shadow):

  root:$6$PQxz7W3s$Ra7AKw53/n7rntDgjPNWdCG66/5RZgjhoelzT2

  F00ouf2iDM.AVvRIYoez10hGG7kBHEaah.oH5U1t60Qj2Rf.:17654:

  0:99999:7:::

  bin:↓:16925:0:99999:7:::

  daemon:↓:16925:0:99999:7:::

  bobby:!!:17656:0:99999:7:::

  user1:!!:17656:0:99999:7:::

.shadow文件保存投影加密之后的口令以及与口令相关的一系列信息,每个用户的信息在shadow文件中占用一行,并且用“:”分隔为9个域,各域的含义如表3-3所示。

域的含义
字段说明
1用户登录名
2加密后的用户口令,“表示非登录。!!表示没设置密码”
3从1970年1月1日起,到用户可以更改密码的天数
4从1970年1月1日起,到用户可以更改密码的天数。即最短口令存活期限
5从1970年1月1日起,到用户必修更改的密码的天数。即最长口令存活期
6口令过期前几天提醒用户更改口令
7口令过期后几天账号被禁用
8口令被禁用的具体日期(相对日期,从1970年1月1日至禁用时的天数)
9保留城,用于功能扩展

3./etc/login.defs文件

建立用户账户时会根据/etc/login.defs文件的配置设置用户账户的某些选项。该配置文件的有效设置内容及中文注释如下所示。

    MAIL_DIR      /var/spool/mail//用户邮箱目录

    MAIL_FILE    .mail

    PASS_MAX_DAYS  99999    //账号密码最长有效天数

    PASS_MIN_DAYS    0          //账号密码最短有效天数

    PASS_MIN_LEN     5          //账号密码的最小长度

    PASS_WARN_AGE    7          //账号密码过期前提前警告天数

    UID_MIN    1000  //用useradd命令创建账户时自动产生的最小UID值

    UID_MAX  60000   //用useradd命令创建账户时自动产生的最大UID值

    GID_MIN  1000  //用groupaddd命令创建组群时自动产生的最小GID值

    GID_MAX 60000  //用groupadd命令创建组群时自动产生的最大GID值

    USERDEL  CMD  /usr/sbin/userdel_local   //如果定义的话,将删除用户时执行,以删除相应用户的计划作业和打印作业等

    CREATE_HOME    yes     //创建用户账户时是否为用户创建主目录

二、理解组群文件

组群账户的信息存放在/etc/group文件中,而关于组群管理的信息(组群口令、组群管理员等)则存放在/etc/gshadow文件中。

  1./etc/group文件

       group文件位于“/etc”目录,用于存放用户的组账户信息,对于该文件的内容任何用户都可以读取。每个组群账户在group文件中占用一行,并且用“:”分隔为4个域。每一行各域的内容如下(使用cat  /etc/group):

组群名称:组群口令(一般为空,用x占位):GID:组群成员列表

group文件的内容形式如下:

     root:x:0:

     bin:x:1:

     daemon:x:2:

     bobby:x:1001:user1,user2

   user1:x:1002:

        可以看出,root的GID为0,没有其他组成员。group文件的组群成员列表中如果有多个用户账户属于同一个组群,则各成员之间以“,”分隔。在/etc/group文件中,用户的主组群并不把该用户作为成员列出,只有用户的附属组群才会把该用户作为成员列出。例如,用户bobby的主组群是bobby,但/etc/group文件中组群bobby的成员列表中并没有用户bobby,只有用户user1和user2。

  2./etc/gshadow文件

/etc/gshadow文件用于存放组群的加密口令、组管理员等信息,该文件只有root用户可以读取。每个组群账户在gshadow文件中占用一行,并以“:”分隔为4个域。每一行中各域的内容如下:

组群名称:加密后的组群口令(没有就用!):组群的管理员:组群成员列表

gshadow文件的内容形式如下:

      root:::

      bin:::

      daemon:::

      bobby:!::user1,user2

     user1:!::

三、新建用户

在系统新建用户可以使用useradd或者adduser命令。useradd命令的格式是:

useradd  [选项]  <username>

useradd命令
选项说明
-c(comment)用户的注释性信息
-d(home_dir)指定用户的主目录
-e(expire_date)禁用账号的日期,格式为YYYY-MM-DD
-f(inacfive_days)设置账户过期多少天后用户账户被禁用。如果为0,账户过期后将立即被禁用;如果为-1,账户过期后,将不被禁用
-g(inifial_group)用户所属主组群的组群名称或者GID
-G(group-list)用户所属的附属组群列表,多个组群之间用逗号分隔开
-m若用户主目录不存在则创建它
-M不要创建用户主目录
-n不要为用户创建用户私人组群
-p(passwd)加密口令
-r创建UID小于500的不带主目录的系统账户
-s(shell)指定用户登录shell,默认为/bin/bash
-u(UID)指定用户的UID,它必须是唯一的,且大于499

【例】新建用户user3,UID为1010,指定其所属的私有组为group1(group1组的标识符为1010),用户的主目录为/home/user3,用户的shell为/bin/bash,用户的密码为123456,账户永不过期。

[root@localhost ~]# groupadd -g 1010  group1

[root@localhost ~]# useradd -u 1010 -g 1000  -d     /home/user3 -s /bin/bash -p 123456 -f -1 user3

[root@localhost ~]# tail -1 /etc/passwd

    user3:x:1010:1000::/home/user3:/bin/bash

如果新建用户已经存在,那么在执行useradd命令时,系统会提示该用户已经存在:

       [root@localhost ~]# useradd user3

       useradd: user user1 exists

四、设置用户账户口令    
 1.passwd命令

       指定和修改用户账户口令的命令是passwd。超级用户可以为自己和其他用户设置口令,而普通用户只能为自己设置口令。passwd命令的格式为:

passwd  [选项]  [username]

passwd命令的常用选项
选项说明
-l锁定(停用)用户账户
-u口令解锁
-d将用户口令设置为空,这与未设置口令的账户不同。未设置口令的账户无法登录系统,而口令为空的账户可以
-f强迫用户下次登录时必须修改口令
-n指定口令的最短存活期
-x指定口令的最长存活期
-w口令要到期前提前警告的天数
-i口令过期后多少天停用账户
-S显示账户口令的简短状态信息

【例】假设当前用户为root,则下面的两个命令分别为root用户修改自己的口令和root用户修改user1用户的口令。

     //root用户修改自己的口令,直接用passwd命令回车即可

    [root@localhost ~]# passwd



     //root用户修改user1用户的口令

    [root@localhost ~]# passwd user1

       需要注意的是,普通用户修改口令时,passwd命令会首先询问原来的口令,只有验证通过才可以修改。而root用户为用户指定口令时,不需要知道原来的口令。为了系统安全,用户应选择包含字母、数字和特殊符号组合的复杂口令,且口令长度应至少为8个字符。

       如果密码复杂度不够,系统会提示“无效的密码: 密码未通过字典检查 - 它基于字典单词”。这时有两种处理方法,一是再次输入刚才输入的简单密码,系统也会接受;另一种方法是更改为符合要求的密码。例如,P@ssw02d包含大小写字母、数字、特殊符号等8位或以上的字符组合。

2.chage命令

要修改用户账户口令,也可以用chage命令实现。

chage命令的常用选项
选项说明
-l列出账户口令属性的各个数值
-m指定口令最短存活期
-M指定口令最长存活期

-W

口令要到期前提前警告的天数
-l口令过期后多少天停用账户
-E用户账户到期作废的日期
-d设置口令上一次修改的日期

【例】设置user1用户的最短口令存活期为6天,最长口令存活期为60天,口令到期前5天提醒用户修改口令。设置完成后查看各属性值。

    [root@localhost ~]# chage -m 6 -M 60 -W 5 user1

    [root@localhost ~]# chage -l user1

最近一次密码修改时间       :5月 04, 2018

密码过期时间       :7月 03, 2018

密码失效时间       :从不

帐户过期时间       :从不

两次改变密码之间相距的最小天数     :6

两次改变密码之间相距的最大天数    :60

在密码过期之前警告的天数    :5

五、维护用户账户

1.修改用户账户

usermod命令用于修改用户的属性,格式为

       usermod  [选项]  用户名

       Linux系统中的一切都是文件,因此在系统中创建用户也就是修改配置文件的过程。用户的信息保存在/etc/passwd文件中,可以直接用文本编辑器来修改其中的用户参数项目,也可以用usermod命令修改已经创建的用户信息,诸如用户的UID、基本/扩展用户组、默认终端等。

usermod命令中的参数及作用
参数作用
-c 填写用户账户的备注信息
-d -m参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e账户的到期时间,格式为YYYY-MM-DD
-g变更所属用户组
-G变更扩展用户组
-L锁定用户禁止其登录系统
-U解锁用户,允许其登录系统
-s变更默认终端
-u修改用户的UID

账户用户user1的默认信息:

         [root@localhost ~]# id user1

    uid=1002(user1) gid=1002(user1) 组=1002(user1),1001(bobby)

将用户user1加入root用户组中,这样扩展组列表中会出现root用户组的字样,而基本组不会受到影响:

[root@localhost ~]# usermod -G root user1

[root@localhost ~]# id user1

uid=1002(user1) gid=1002(user1) 组=1002(user1),0(root)

用-g参数修改用户的基本组ID,用-G参数修改用户扩展组ID

    [root@localhost ~]# usermod -u 8888 user1

    [root@localhost ~]# id user1

  uid=8888(user1) gid=1002(user1) 组=1002(user1),0(root)

修改用户user1的主目录为/var/user1,把启动shell修改为/bin/tcsh,完成后恢复到初始状态,操作如下:

    [root@localhost ~]# usermod -d /var/user1 -s /bin/tcsh user1

    [root@localhost ~]# tail -3 /etc/passwd

    user1:x:8888:1002::/var/user1:/bin/tcsh

    user2:x:1003:1003::/home/user2:/bin/bash

    user3:x:1010:1000::/home/user3:/bin/bash

    [root@localhost ~]# usermod -d /var/user1 -s /bin/bash user1

2.禁用和恢复用户账户

       有时需要临时禁用一个账户而不删除它。禁用用户账户可以用passwd或usermod命令实现,也可以直接修改/etc/passwd或/etc/shadow文件。

例如,暂时禁用和恢复user1账户,可以使用以下3种方法实现。

(1)使用passwd命令

     //使用passwd命令禁用user1账户,利用tail命令查看,可以看到被锁定的账户密码栏前面会加上

     [root@localhost ~]# passwd -l user1

     锁定用户 user1 的密码

     passwd: 操作成功

     [root@localhost ~]# tail -1 /etc/shadow

     user1:123456:17656:0:99999:7:::

     //利用passwd命令的-u选项解除账户锁定,重新启用user1账户

    [root@localhost ~]# passwd -u user1

(2)使用usermod命令

    //禁用user1账户

   [root@localhost ~]# usermod -L user1

   //解除user1账户的锁定

   [root@localhost ~]# usermod -U user1

(3)直接修改用户账户配置文件

可将/etc/passwd文件或/etc/shadow文件中关于user1账户的passwd域的第一个字符前面加上一个“*”,达到禁用账户的目的,在需要恢复的时候只要删除字符“*”即可。

3.删除用户账户

要删除一个账户,可以直接删除/etc/passwd和/etc/shadow文件中要删除的用户所对应的行,或者用userdel命令删除。userdel命令的格式为

userdel  [-r]  用户名

如果不加-r选项,userdel命令会在系统中所有与账户有关的文件中(例如/etc/passwd,/etc/shadow,/etc/group)将用户的信息全部删除。

如果加-r选项,则在删除用户账户的同时,还将用户主目录以及其下的所有文件和目录全部删除掉。另外,如果用户使用E-mail的话,同时也将/var/spool/mail目录下的用户文件删掉。

六、管理组群

组群管理包括新建组群、维护组群账户和为组群添加用户等内容。

1、维护组群用户

创建组群和删除组群的命令与创建、维护账户的命令相似。创建组群可以使用命令groupadd或者addgroup。

例如,创建一个新的组群,组群的名称为testgroup,可用以下命令:

[root@localhost ~]# groupadd  testgroup

要删除一个组可以用groupdel命令,例如删除刚创建的testgroup组时可用以下命令:

[root@localhost ~]# groupdel testgroup

修改组群的命令是groupmod,其命令格式为

groupmod  [选项]  组名

groupmod命令选项
选项说明
-g gid把组群的GID改成gid
-n group-name把组群的名称改为group-name
-o强制接受更改的组的GID为重复的号码

2、为组群添加用户

在Red Hat Linux中使用不带任何参数的useradd命令创建用户时,会同时创建一个和用户账户同名的组群,称为主组群。当一个组群中必须包含多个用户时,则需要使用附属组群。在附属组中增加、删除用户都用gpasswd命令。(只有root用户和组管理员才能够使用这个命令)gpasswd命令的格式为

gpasswd [选项] [用户] [组]

gpasswd命令选项
选项说明
-a把用户加入组
-d把用户从组中删除
-r取消组的密码
-A给组指派管理员

例如,要把user1用户加入testgroup组,并指派user1为管理员,可以执行下列命令:

    [root@localhost ~]# groupadd  testgroup

    [root@localhost ~]# gpasswd -a user1 testgroup

    [root@localhost ~]# gpasswd -A user1 testgroup
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值