Linux系统用户以及组管理

Linux系统用户以及组管理

  • 一.用户/组基本概念
    • 1.概念
      • 1.1用户和组
      • 1.2用户的作用
    • 2.用户/组信息存储的文件
      • 2.1用户基本信息文件
      • 2.2用户密码信息文件
      • 2.3组信息文件
  • 二.用户/组管理
    • 1.用户
      • 1.1创建用户 未指定选项
      • 1.2创建用户 指定选项
      • 1.3删除用户
      • 1.4用户密码
      • 1.5其他选项管理
      • 1.6组成员管理
    • 2.用户组
      • 2.1操作
      • 2.2分类

一.用户/组基本概念

1.概念

1.1用户和组

1.系统上的每个进程(正在运行的程序)都以特定用户身份运行。
2.每个文件均由特定用户拥有。
3.对文件和目录的访问受用户限制。
4.与正在运行的进程关联的用户确定该进程可访问的文件和目录。

1.2用户的作用

1.查看当前登录用户信息

[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root)

2.查看文件的owner

[root@localhost ~]# ll /home/[root@localhost ~]# ls -l /home/ (两个命令等同)
总用量 8
drwx------. 15 js   js   4096 7月  24 18:42 js
drwx------. 15 1001 1001 4096 7月  24 09:39 user1
drwx------.  3 2002 2002   78 7月  24 14:59 user2

3.查看运行进程的username

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.2  0.4 193760  4420 ?        Ss   18:40   0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    18:40   0:00 [kthreadd]

2.用户/组信息存储的文件

2.1用户基本信息文件

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
.
.
.
js:x:1000:1000:js:/home/js:/bin/bash
//
(root:x:0:0:root:/root:/bin/bash
 用户名:x:uid:gid:描述:HOME:shell)冒号分割为7列字段

示例解释:

root:x:0:0:root:/root:/bin/bash
//
root: 用户名:登录系统的名字
X: 密码占位符:
0: UID: 用户的身份证号 系统约定: RHEL7
                       uid: 0 特权用户
                       uid: 1~999 系统用户
                       uid: 1000+ 普通用户
0: GID:GROUP 组号 //每创建一个用户,系统会自动创建同名的组
root: 描述:比如经理 manager //默认是用户名或空着
/root: 家目录:登录系统时,所在目录
/bin/bash: 登录shell:命令解释器

2.2用户密码信息文件

[root@localhost ~]# cat /etc/shadow
root:$6$VH6zGRVV9H3tAuQD$s8Fk7s4BY01fz7rq6No8qOdoCbAgt/tUT59JLf2s7bTQFRjGOXzp8WaA.oubaQISBGAeHNdIrLWzSM2qgi1d0.::0:99999:7:::

示例解释:

 root:$1$MYG2N:15636:0:99999:7:   :   :
 root:$1$MYG2NDG6$a1wtyr5GDM2esAPjug0YP0:15636:0:99999:7:: :
//
1)“登录名”是与/etc/passwd文件中的登录名相一致的用户账号
2)“口令”字段存放的是加密后的用户口令字,如果为空,则对应用户没有口令,登录时不需要口令;
   
星号代表帐号被锁定;
双叹号表示这个密码已经过期了。
$6$开头的,表明是用SHA-512加密的,
$1$ 表明是用MD5加密的
$2$ 是用Blowfish加密的
$5$ 是用 SHA-256加密的。 

3)“最后一次修改时间”表示的是从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中,这个时间起点是1970年1月1日。
4)“最小时间间隔”指的是两次修改口令之间所需的最小天数。
5)“最大时间间隔”指的是口令保持有效的最大天数。
6)“警告时间”字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。
7)“不活动时间”表示的是用户没有登录活动但账号仍能保持有效的最大天数。(软限制。到期后多少天就不能用账号了。)
8)“失效时间”字段给出的是一个绝对的天数,如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也就不能再用来登录了。(硬限制。)
9) 保留

2.3组信息文件

[root@localhost ~]# cat /etc/group
root:x:0: //组名:组密码:组ID:组成员,组成员默认为空

二.用户/组管理

1.用户

1.1创建用户 未指定选项

[root@localhost ~]# useradd user01 
[root@localhost ~]# id     user01
uid=1001(user01) gid=1001(user01) 组=1001(user01)
//
用户编号=具体数字(用户名)  组编号=具体数字(组名)  组=组ID(成员名字)
小结:
如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的Primary Group.

1.2创建用户 指定选项

[root@localhost ~]# useradd user02 -u 2002     //创建用户user02指定uid
[root@localhost ~]# useradd user03 -d /user03  //创建用户user03指定家目录

1.3删除用户

[root@localhost ~]# userdel -r user02     //(-r 递归依次删除全部)

1.4用户密码

方法一:root修改其他用户(js)密码
      [root@localhost ~]# passwd js
方法二:用户(js)登录,自己修改密码。
      [js@localhost ~]$ passwd

1.5其他选项管理

[root@localhost ~]# usermod -s /sbin/nologin user02   //修改登录SHELL

1.6组成员管理

1)查看用户原先信息

[root@localhost ~]# id user02
uid=1002(user02) gid=1002(user02) 组=1002(user02)

2)将用户追加到hr组

语法:usermod -aG  组名  用户名
[root@localhost ~]# usermod -aG hr user02 

3)再次查看用户信息

[root@localhost ~]# id user02
uid=1002(user02) gid=1002(user02) 组=1002(user02),1005(hr)

4)将用户移除组(扩展)

语法:gpasswd -d user02 hr
或   vim /etc/group   //直接删除组里面用户

2.用户组

2.1操作

1)创建一个hr组

[root@localhost ~]# groupadd hr
[root@localhost ~]# tail -3 /etc/group
tcpdump:x:72:
js:x:1000:
hr:x:1001:                     //说明该组已经 创建,但和任何用户都没有关系。

2)创建组net01,并指定gid 2002

[root@localhost ~]# groupadd net01 -g 2002
[root@localhost ~]# tail -3 /etc/group
js:x:1000:
hr:x:1001:
net01:x:2002:

3)删除组

[root@localhost ~]# groupdel net01
[root@localhost ~]# tail -3 /etc/group
tcpdump:x:72:
js:x:1000:
hr:x:1001:

2.2分类

1)基本组
随用户创建,自动创建的同名组。
2)附加组
用户加入的其他组。

你可能感兴趣的:(Linux系统配置及服务基础,linux,shell)