Linux用户、组管理(一)

用户组基本概念

Linux是一个可以实现多用户登陆的操作系统,允许多个用户同时登陆到系统上使用资源。系统根据账户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境。

用户和组

  • 系统上的每个进程(运行程序)都作为特定用户运行;
  • 每个文件都由特定用户拥有;
  • 用户对文件和目录访问受到限制;
  • 与运行中的进程相关联的用户确定该进程可访问文件或目录。

使用者标识:UID和GID

系统解析用户的时候,不能直接的去解析用户名(root),能够识别解析的是ID号。
创建用户时,会产生一个与UID相同的用户组

Linux用户:Username/UID

  • 管理员:root, 0
  • 普通用户:1-65535 系统用户:1-499(CentOS6), 1-999 (CentOS7)
  • 登录用户:500-65535 (Centos6),1000-65535 (Centos7)
  • 解析库 :/etc/passwd

Linux组:Groupname/GID

  • 管理员组:root, 0
  • 普通用户组:1-65535
  • 系统用户组:1-499(CentOS6), 1-999(CentOS7)
  • 登录用户组:500-65535 (Centos6),1000-65535 (Centos7)
  • 解析库:/etc/group

用户组的分类1:基本组、附加组
用户组的分类2:私有组、公共组

当我们用useradd命令去创建用户的时候你只需要去给予系统这个命令,系统会自动为你创建用户,可系统是怎样创建用户的呢?
我们来模拟系统创建一个用户user02,在创建用户user02时,系统将user02的信息都写入了这些文件中:
(1)/etc/passwd
vim /etc/passwd ==vipw

user02:x:1002:1002:This is a user:/home/user02:/bin/bash
#用户名:密码:UID:GID:描述:家目录:bash类型

(2)/etc/group
vim /etc/group == vigr

user02:x:1002:
#组名:密码:GID

(3)/etc/shadow
vim /etc/shadow == vipw -s

user02:$6$fFbV5lit$G1gmc54PgaCzyBlc6zqmnX2KbIW9189MdKPoe1v3baARt6mANGk7K0QQix91Aaw3hJEcpIgDfhg0oERJNTX58.:18466:0:99999:7:::

第一列:用户名
第二列:加密口令,存放加密后的用户口令字(密码)
若是两个!,则没有密码;
星号代表账号被锁定;
$ 6 $开头,表示用SHA-512加密;
$ 1 $开头,表示用MD5加密;
$ 2 $开头,表示用Blowfish加密;
$ 5 $开头,表示用SHA-256加密;
第三列:表示从某刻起,到用户最后一次修改口令的天数。时间起点对不同的系统可能不一样。
第四列:两次修改口令时间之间所需的最小天数
第五列:指口令保持有效的最大天数
第六列:表示从系统开始警告到用户密码正式失效的天数
第七列:表示系统没有登陆活动但账号仍能保持的最大天数
第八列:失效时间


(4)/etc/gshadow
vim /etc/gshadow == vigr -s

user02:!::

(5)创建一个家目录/home/user02
拷贝默认的用户登录登出的初始化文件:
/etc/skel -----> /home/user02

[root@localhost skel]# cp .bash_logout /home/user02
[root@localhost skel]# cp .bash_profile /home/user02
[root@localhost skel]# cp .bashrc /home/user02

(6)创建一个mail文件

[root@localhost mail]# touch user02
[root@localhost mail]# ll
总用量 0
-rw-rw----. 1 mary   mail 0 7月   3 09:47 mary
-rw-rw----. 1 user01 mail 0 7月  23 18:03 user01
-rw-r--r--. 1 root   root 0 7月  26 16:55 user02
[root@localhost mail]# chmod g+w,o-r user02 #改user02的可执行权限
[root@localhost mail]# ll
总用量 0
-rw-rw----. 1 mary   mail 0 7月   3 09:47 mary
-rw-rw----. 1 user01 mail 0 7月  23 18:03 user01
-rw-rw----. 1 root   root 0 7月  26 16:55 user02
[root@localhost mail]# chown user02:mail user02#改user02的属主属组
[root@localhost mail]# ll
总用量 0
-rw-rw----. 1 mary   mail 0 7月   3 09:47 mary
-rw-rw----. 1 user01 mail 0 7月  23 18:03 user01
-rw-rw----. 1 user02 mail 0 7月  26 16:55 user02

注意:创建用户时的众多默认设定配置文件为/etc/login.defs

用户组管理命令

组管理

groupadd命令(增)

groupadd [选项] group_name


  • -g GID:指定GID,默认是上一个组GID+1
  • -r:创建系统组

groupmod命令(改)

groupmod [选项] group


  • -g:修改GID
  • -n:修改组名

groupdel命令(删)

groupdel [选项] group

gpasswd命令

组密码文件:/etc/gshadow

gpasswd [选项] 组名


  • -a:给组中添加用户
  • -d:从组中移除用户

用户管理

useradd命令(增)

useradd [选项] 用户名


  • u:指定UID
  • -g:指定GID
  • -G:指明用户所属附加组,多个组用逗号分割
  • -c:指明注释信息
  • -d:以指定的路径为用户家目录
  • -s:指定用户的默认SHELL

【例1】将用户lasa01加入group01组中

[root@localhost ~]# usermod -G group01 lasa01

查看/etc/group
在这里插入图片描述

usermod命令(改)

usermod [选项] 用户名


  • -u:修改UID为指定UID
  • -g:修改用户所属的基本组
  • -G:修改用户所属附加组,原来的组会被覆盖
  • -a:与-G一起使用,用于为用户追加新的附加组
  • c:修改注释信息
  • -d:修改用户家目录,用户原有文件不会被转移至新目录
  • -m:只能与-d一起使用,用于将原来的家目录移至新目录
  • -l:修改用户名
  • -s:修改用户默认的SHELL
  • -L:锁定用户密码
  • -U:解锁用户密码

userdel命令(删)

userdel [选项] 用户名


  • -r:删除用户时一并删除其家目录

passwd命令

passwd [选项] [用户名]
passwd:修改用户自己的密码;
passwd USERNAME:修改指定用户密码


  • -l、-u:锁定和解锁用户密码
  • -d:清楚用户密码串
  • -e:终止指定用户密码
  • -i:非活动期限
  • -n:密码的最短使用期限
  • -x:密码的最长使用期限
  • -w:警告期限
    –stdin :
    echo “PASSWORD” | passwd --stdin USERNAME

【实例1】
使用for循环一次创建10个用户,指定用户名lasa,描述“This is a user ”,家目录/home/,bash类型:/bin/bash;假如创建成功,即useradd这条命令执行成功,则在屏幕上输出成功,否则输出创建失败。
在这里插入图片描述
执行shell,显示创建成功
在这里插入图片描述
查看/etc/passwd文件
在这里插入图片描述
【实例2】
给实例1所创建的10个用户加上相同的密码
在这里插入图片描述查看/etc/shadow文件可以看到加密口令创建成功

在这里插入图片描述

chage命令

更改用户密码过期信息
chage [选项] 用户名


  • -d:指定密码最后修改日期
  • -E:密码到期的日期,过了这一天,此账号不可用,0表示马上过期,-1表示永不过期
  • -W:密码过期前,提前收到警告的天数
  • -m:密码可以修改的最小天数间隔,0代表随时可以修改
  • -M:密码保持有效的最大天数
  • -l:显示账户年龄信息

id命令

显示用户的真实有效ID
id [选项] 用户名


  • -u:仅显示有效的UID
  • -g:仅显示用户的基本组ID
  • -G:仅显示用户所属的所有组ID
  • -n:显示名字而非ID

【例】

[root@localhost ~]# id -u lasa01
1105
[root@localhost ~]# id -g lasa01
1106
[root@localhost ~]# id -G lasa01
1106 1003

查看/etc/group文件验证
在这里插入图片描述
查看/etc/passwd文件验证
在这里插入图片描述

chsh命令

chsh [选项] [用户名]
查看或更换用户登陆系统所用的shell


  • -s:指定登陆shell
  • -l:打印shell列表并退出
  • -v:输出版本信息并退出

查看系统安装的shell方法1:

[root@localhost ~]# chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

查看系统安装的shell方法2:

[root@localhost ~]# cat /etc/shells 
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

查看当前系统使用的shell

[root@localhost ~]# echo $SHELL
/bin/bash

修改登陆shell

[lasa10@localhost ~]$ echo $SHELL
/bin/bash
[sa10@localhost ~]$ chsh -s /usr/bin/bash
Changing shell for lasa10.
密码:
Shell changed.
[lasa10@localhost ~]$ exit
[root@localhost ~]# su - lasa10
上一次登录:二 7月 28 18:06:18 CST 2020pts/0 上
[lasa10@localhost ~]$ echo $SHELL
/usr/bin/bash

pwck&grpck命令

pwck:检查/etc/passwd文件与/etc/shadow文件格式语法
grpck:检查/etc/group文件与/etc/gshadow文件格式语法

【例】检查组信息,返回0,没有任何错误

[root@localhost ~]# grpck
[root@localhost ~]# echo $?
0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值