linux账号和权限管理-2

 

目录

2.添加、修改、删除用户账号

1)useradd命令-----添加用户账号

2)passwd命令-----为用户账号设置密码

3) usermod命令一修改用户账号属性

4)userdel命令--删除用户账号

3.用户账号的初始配置文件


2.添加、修改、删除用户账号

1)useradd命令-----添加用户账号

useradd命令用于添加用户账号,其基本的命令格式如下:

useradd [选项]用户名

最简单的用法是,不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户账号。在CentOS系统中,使用useradd命令添加用户账号时主要完成以下几项任务。

  • /etc/passwd文件和 /etc/shadow文件的末尾增加该用户账号的记录
  • 若未明确指定用户的宿主目录,则在/home目录下自动创建与该用户账号同名的宿主目录,并在该目录中建立用户的各种初始配置文件。

  • 若没有明确指定用户所属的组,则自动创建与该用户账号同名的基本组账号,组账号的记录信息将保存到/etc/group和/etc/gshadow文件中。

例如,执行以下操作可以创建名为bdqn_zeng的用户账号,并通过查看passwd、shadow文件和 /home目录来确认新增用户账号时的变化。

[root@localhost ~]# useradd marry

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

marry:x:1002:1002::/home/marry:/bin/bash

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

marry:!!:18533:0:99999:7:::

[root@localhost ~]# ls -A /home/marry/          //确认自动创建的用户目录

.bash_logout  .bash_profile  .bashrc  .mozilla

如果结合useradd命令的各种选项,可以在添加用户账号的同时对UID号、宿主目录、登录Shell等相关属性进行指定。以下列出了 useradd命令中用于设置账号属性的几个常见选项。

  • -u指定用户的UID号,要求该UID号码未被其他用户使用。
  • -d指定用户的宿主目录位置(当与 -M —起使用时,不生效)。
  • -e指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式。
  • -g指定用户的基本组名(或使用GID号)。
  • -G指定用户的附加组名(或使用GID号)。
  • -M不建立宿主目录,即使/etc/login.defs系统配置中已设定要建立宿主目录。
  • -s指定用户的登录Shell

上述的各个选项可以组合使用。例如,执行以下操作可以创建一个辅助管理员账号admin,将其基本组指定为 "wheel",附加组指定为 "root",宿主目录指定为 "/admin"。

[root@localhost ~]# useradd -d /admin -g wheel -G root admin

在账号管理工作中,有时候会希望在新建账号的同时指定该账号的有效期限,或者要求新建的账号不能登录系统(如仅用于访问FTP服务),这时可分别使用 "-e"和 "-S"选项。例如,执行以下操作可以创建一个名为b_down的FTP账号(禁止终端登录),该账号将于2020-12-31失效

[root@localhost ~]# useradd -e 2020-12-31 -s /sbin/nologin b_down

2)passwd命令-----为用户账号设置密码

通过useradd命令新增用户账号以后,还需要为其设置一个密码才可以正常使用。使用passwd命令可以设置或修改密码,「oot用户有权管理其他账号的密码(指定账号名称作为参数即可)。例如,执行 "passwd marry" 命令可为bdqn_zeng账号设置登录密码,要根据提示重复输入两次,具体操作如下:

[root@localhost ~]# passwd marry

更改用户 marry 的密码 。

新的 密码:

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

用户账号具有可用的登录密码以后,就可以从字符终端进行登录了。虽然root用户可以指定用户名作为参数,对指定账号的密码进行管理,但是普通用户却只能执行单独的 "passwd" 命令修改自己的密码。

对于普通用户自行设置的密码,要求具有一定的复杂性(如不要直接使用英文单词,长度保持在六位以上),否则系统可能拒绝进行设置。普通用户设置自身的登录密码时,需要先输入旧的密码进行验证。例如,以下操作是用户marry更改登录密码的过程。

[root@localhost ~]# su - marry

Attempting to create directory /home/marry/perl5

[marry@localhost ~]$ passwd

更改用户 marry 的密码 。

为 marry 更改 STRESS 密码。

(当前)UNIX 密码:              //你当前用户账户的旧密码

新的 密码:                      //新的账户密码需要符合复杂度和密码位数。

重新输入新的 密码:              //重新输入上一个新密码。

passwd:所有的身份验证令牌已经成功更新。

使用passwd命令除了可以修改账号的密码以外,还能够对用户账号进行锁定、解锁,也可以将用户的密码设置为空(无须密码即可登录)。与上述功能相关的几个选项如下所示。

  • -d清空指定用户的密码,仅使用用户名即可登录系统。
  • -l锁定用户账户。
  • -S查看用户账户的状态(是否被锁定)。
  • -u解锁用户账户。

通过passwd命令锁定的用户账号,将无法再登录系统(shadow文件中的对应密码字串前将添加 "!!" 字符),只能由管理员来解除锁定。例如,以下操作分别用于锁定、解锁用户账号marry。

[root@localhost ~]# passwd -l marry                       //锁定账号

锁定用户 marry 的密码 。

passwd: 操作成功

[root@localhost ~]# passwd -S marry                      //查看锁定的账号状态

marry LK 2020-09-28 0 99999 7 -1 (密码已被锁定。)

[root@localhost ~]# passwd -u marry                      //解锁账号

解锁用户 marry 的密码。

passwd: 操作成功

[root@localhost ~]# passwd -S marry                      //查看解锁的账号状态

marry PS 2020-09-28 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

3) usermod命令一修改用户账号属性

对于操作系统中已经存在的用户账号,可以使用usermod命令重新设置各种属性。usermod命令同样需要指定账号名称作为参数。usermod命令中较常使用的几个选项如下所述。

  • -u修改用户的UID号。
  • -d修改用户的宿主目录位置。
  • -e修改用户的账户失效时间,可使用丫YYY-MM-DD的曰期格式。
  • -g修改用户的基本组名(或使用GID号)。
  • -G修改用户的附加组名(或使用GID号)。
  • -s指定用户的登录Shell。
  • -l更改用户账号的登录名称(Login Name)。
  • -L锁定用户账户。
  • -U解锁用户账户。

使用usermod命令时,其大部分的选项与useradd命令的选项是对应的,作用也相似。除此以外,还有两个选项 "-L" 和 "-U",分别用于锁定解锁用户账号。这两个选项与passwd命令的 "-l" 和 "-u" 选项的作用基本相同,但是存在大小写区别

若要修改已有账号的宿主目录,需要先将该账号原有的宿主目录转移到新的位置,然后通过usermod命令设置新的宿主目录位置。例如,执行以下操作可以将admin用户的宿主目录由 /admin转移至 /home/admin。

[root@localhost ~]# mv /admin/ /home/

[root@localhost ~]# usermod -d /home/admin/ admin

通过usermod命令同样可以对账号进行锁定、解锁操作,经usermod命令锁定的账号也不能登录系统(shadow文件中的对应密码字串前将添加 "!" 字符)。例如,以下操作分别用于锁定、解锁用户账号admin,但是在CentOS 7系统中,如果账户没有设置密码,那么该账户锁定后将无法使用 "usermod -U" 命令解锁。因此在锁定admin账户之前需要先为其设置账户密码。

[root@localhost ~]# usermod -L admin

[root@localhost ~]# passwd -S admin

admin LK 2020-09-28 0 99999 7 -1 (密码已被锁定。)

[root@localhost ~]# usermod -U admin

[root@localhost ~]# passwd -S admin

admin PS 2020-09-28 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

若需要修改账号的登录名称,可以使用 "-l" 选项。例如,执行以下操作可以将admin用户的登录名称更改为webmaster,下次登录时生效。

[root@localhost ~]# usermod -l webmaster admin

[root@localhost ~]# grep "admin" /etc/passwd

webmaster:x:1003:10::/home/admin/:/bin/bash

4)userdel命令--删除用户账号

当操作系统中的某个用户账号不再使用时(如该员工已经从公司离职等情况),可以使用userdel命令将该用户账号删除。使用该命令也需要指定账号名称作为参数,结合选项可同时删除宿主目录。例如,执行以下操作将删除名为marry的用户账号,同时删除其宿主目录 /home/marry。

[root@localhost ~]# userdel -r marry

[root@localhost ~]# ls -ld /home/marry                //确认宿主目录是否已删除

ls: 无法访问/home/marry: 没有那个文件或目录

3.用户账号的初始配置文件

添加一个新的用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件包括 ".bash_logout" 、".bash_profile" 和 ".bashrc"。其中, ".bash_profile" 文件中的命令将在该用户每次登录时被执行;".bashrc"文件中的命令会在每次加载"/bin/Bash"程序(当然也包括登录系统)时执行;而 ".bash.logout" 文件中的命令将在用户每次退出登录时执行。理解这些文件的作用,可以方便我们安排一些自动运行的后台管理任务。

在 ".bashrc" 等文件中,可以添加用户自己设置的可执行语句(如Linux命令行、脚本控制语句等),以便自动完成相应的任务。如果希望为所有用户添加登录后自动运行的命令程序、自动设置变量等,可以直接修改/etc目录下的类似文件,如/etc/bashrc文件、/etc/profile文件。例如,执行以下操作可以为所有用户自动设置myls命令别名。

[root@localhost ~]# vim /etc/bashrc

……//省略部分

    # and interactive - otherwise just process them to set envvars

    for i in /etc/profile.d/*.sh; do

        if [ -r "$i" ]; then

            if [ "$PS1" ]; then

                . "$i"

            else

                . "$i" >/dev/null

            fi

        fi

    done

    unset i

    unset -f pathmunge

fi

# vim:ts=4:sw=4

alias myls='/bin/ls -lhr'

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值