阿宁的linux学习----用户和用户组管理

这是我学习linux的过程,每天都会更新所学习的知识总结,每个例子都是我自己的亲手实践的,作为新人的我希望各位大佬提出宝贵的意见!!

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户账号都拥有一个惟一的用户名和各自的口令。

用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。

实现用户账号的管理,要完成的工作主要有如下几个方面:

  • 用户账号的添加、删除与修改。
  • 用户口令的管理。
  • 用户组的管理。

一、linux系统用户账号管理

添加新的用户账号
useradd 选项 用户名
参数说明:
选项:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
用户名:
指定新账号的登录名。
例:
[root@localhost ~]# useradd aaa
[root@localhost ~]# ll -d /home/aaa
#预设会建立使用者家目录,且权限为700
[root@localhost ~]# useradd -d /home/bbb -m bbb
#此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录 /home/sam(/home为默认的用户主目录所在的父目录)。
删除账号
如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
删除一个已有的用户账号使用userdel命令,其格式如下:
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
[root@localhost ~]# userdel -r aaa
修改账号

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:

usermod 选项 用户名
选项参数:
用法:usermod [选项] 登录

选项:
  -c, --comment 注释            GECOS 字段的新值
  -d, --home HOME_DIR           用户的新主目录
  -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
  -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
  -g, --gid GROUP               强制使用 GROUP 为新主组
  -G, --groups GROUPS           新的附加组列表 GROUPS
  -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
                                并不从其它组中删除此用户
  -h, --help                    显示此帮助信息并推出
  -l, --login LOGIN             新的登录名称
  -L, --lock                    锁定用户帐号
  -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
  -o, --non-unique              允许使用重复的(非唯一的) UID
  -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
  -R, --root CHROOT_DIR         chroot 到的目录
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             该用户帐号的新登录 shell
  -u, --uid UID                 用户帐号的新 UID
  -U, --unlock                  解锁用户帐号
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射
范例:修改使用者bbb的说明栏,加上『VBird's test』的说明。
[root@localhost ~]# usermod -c "VBird's test" bbb
[root@localhost ~]#  grep bbb /etc/passwd 
bbb:x:1002:1002:VBird's test:/home/bbb:/bin/bash
范例二:使用者bbb这个帐号在2020/12/31失效
[root@localhost ~]# usermod -e "2020-12-31" bbb
[root@localhost ~]#  chage -l bbb | grep 'Account expires'
用户口令管理

用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

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

passwd 选项 用户名
参数及选项
  -k, --keep-tokens       保持身份验证令牌不过期
  -d, --delete            删除已命名帐号的密码(只有根用户才能进行此操作)
  -l, --lock              锁定指名帐户的密码(仅限 root 用户)
  -u, --unlock            解锁指名账户的密码(仅限 root 用户)
  -e, --expire            终止指名帐户的密码(仅限 root 用户)
  -f, --force             强制执行操作
  -x, --maximum=DAYS      密码的最长有效时限(只有根用户才能进行此操作)
  -n, --minimum=DAYS      密码的最短有效时限(只有根用户才能进行此操作)
  -w, --warning=DAYS      在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
  -i, --inactive=DAYS     当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
  -S, --status            报告已命名帐号的密码状态(只有根用户才能进行此操作)
  --stdin                 从标准输入读取令牌(只有根用户才能进行此操作)
范例一:请root给予bbb密码
[root@localhost ~]# passwd bbb
更改用户 bbb 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
范例二:管理bbb的密码使具有60天变更、密码过期10天后帐号失效的设定
[root@localhost ~]# passwd -S bbb
bbb PS 2020-10-27 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
# 上面说明密码建立时间(2020-10-27)、0 最小天数、99999 变更天数、7 警告日数与密码不会失效(-1)
[root@localhost ~]# passwd -x 60 -i 10 bbb
[root@localhost ~]#  passwd -S bbb
bbb PS 2020-10-27 0 60 7 10 (密码已设置,使用 SHA512 算法。)
范例三:让vbird2的帐号失效,观察完毕后再让她失效
[root@localhost ~]#  passwd -l bbb
锁定用户 bbb 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -S bbb
bbb LK 2020-10-27 0 60 7 10 (密码已被锁定。)
#状态变成『 LK, Lock 』了啦!无法登入喔!
[root@localhost ~]# grep bbb /etc/shadow
bbb:!!$6$TS9PFc48$rb/e9sHbP9b8Rff28jm/K36CIffczfkGZhTrYbrhERDycwf6N15DfmoCBHzfIJK4QB5Mat83h4KL8NC2AIg2k0:18562:0:60:7:10:18627:
#其实只是在这里加上!!而已!
[root@localhost ~]# passwd -u bbb
解锁用户 bbb 的密码。
passwd: 操作成功
[root@localhost ~]# grep bbb /etc/shadow
bbb:$6$TS9PFc48$rb/e9sHbP9b8Rff28jm/K36CIffczfkGZhTrYbrhERDycwf6N15DfmoCBHzfIJK4QB5Mat83h4KL8NC2AIg2k0:18562:0:60:7:10:18627:
# 密码栏位恢复正常!

除了使用passwd -S 之外,有没有更详细的密码参数显示功能呢?有的!那就是chage 了!他的用法如下:

chage [-ldEImMW]帐号名
选项与参数:
-l :列出该帐号的详细密码参数;
-d :后面接日期,修改shadow 第三栏位(最近一次更改密码的日期),格式YYYY-MM-DD
-E :后面接日期,修改shadow 第八栏位(帐号失效日),格式YYYY-MM-DD
-I :后面接天数,修改shadow 第七栏位(密码失效日期)
-m :后面接天数,修改shadow 第四栏位(密码最短保留天数)
-M :后面接天数,修改shadow 第五栏位(密码多久需要进行变更)
-W :后面接天数,修改shadow 第六栏位(密码过期前警告日期)
范例一:列出bbb的详细密码参数
[root@localhost ~]# chage -l bbb
最近一次密码修改时间					:10月 27, 2020
密码过期时间					:12月 26, 2020
密码失效时间					:1月 05, 2021
帐户过期时间						:12月 31, 2020
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:60
在密码过期之前警告的天数	:7
范例二:建立一个名为agetest 的帐号,该帐号第一次登入后使用预设密码,但必须要更改过密码后,
        使用新密码才能够登入系统使用bash环境
[root@localhost ~]# useradd agetest
[root@localhost ~]#  echo "agetest" | passwd --stdin agetest 
更改用户 agetest 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# chage -d 0 agetest 
[root@localhost ~]# chage -l agetest | head -n 3
最近一次密码修改时间					:密码必须更改
密码过期时间					:密码必须更改
密码失效时间					:密码必须更改

使用者功能(普通用户可以使用的功能:

[root@localhost ~]# id [username]
范例一:查阅root自己的相关ID资讯!
[root@localhost ~]# id 
uid=0(root) gid=0(root)=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
# 上面资讯其实是同一行的资料!包括会显示UID/GID 以及支援的所有群组!
# 至于后面那个context=... 则是SELinux 的内容,先不要理会他!
范例二:查阅一下aaa
[root@localhost ~]# id aaa
uid=1004(aaa) gid=1004(aaa)=1004(aaa)

linux系统用户组的管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

1、增加一个新的用户组使用groupadd命令。其格式如下:
groupadd 选项 用户组
可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
范例一:新建一个群组,名称为group1
[root@localhost ~]# groupadd group1
2、如果要删除一个已有的用户组,使用groupdel命令,其格式如下:
[root@localhost ~]# groupdel group1
3、修改用户组的属性使用groupmod命令。其语法如下:
 groupmod [-g gid] [-n group_name]群组名
选项与参数:
-g :修改既有的GID 数字;
-n :修改既有的群组名称
范例一:将刚刚上个指令建立的group1名称改为mygroup , GID为201 
[root@localhost ~]# groupmod -g 201 -n mygroup group1
[root@localhost ~]# grep mygroup /etc/group /etc/ gshadow 
4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。例如:

[root@localhost ~]# newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值