Linux-用户及组管理

Linux-用户及组管理

说明

在Linux中的任何操作都是以用户为基础,如果用户及相关组任何权限或者密码设置不当,有可能会给个人及公司带来无法估计的损失,所以,Linux中的用户及组管理在Linux中尤为重要。请大家要认真学习。

概念介绍

Linux 是多用户多任务操作系统,换句话说,Linux系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响,不同用户具有不问的权限,毎个用户在权限允许的范围内完成不间的任务,Linux正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。


用户:在linux系统管理员申请一个账户,然后通过这个账户进入系统,这个登录的账户在linux中就是一个用户。每一个用户都有一个唯一的用户名和用户口令,在登录系统后,只有正确输入了用户名和密码,才能登录系统和相应的目录。


用户组:linux系统中的用户组(group)就是具有相同特性的用户(user)集合,将用户分组是linux系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了运维管理工作。

文件介绍

/etc/passwd:用户信息存储文件

Linux 系统中的 /etc/passwd文件,是系统用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。

root@iZm5eiw4hobozjn054cjzrZ:~# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell

/etc/shadow:用户密码存储文件(密文)

/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”

root@iZm5eiw4hobozjn054cjzrZ:~# head /etc/shadow
root:$6$rfEy4/Ca$L42O49IFB/HKVu2phgbjH69U1wcvkZ6dZoNyEeWdVgO
FEcW0vL0UivMwDeNya.ypzSCuCRsnWrFrw6ulMOyqw/:17978:0:99999:7:::
daemon:*:17016:0:99999:7:::
bin:*:17016:0:99999:7:::
sys:*:17016:0:99999:7:::
sync:*:17016:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

/etc/group:组信息存储文件

/ect/group 文件是用户组配置文件,即用户组的所有信息都存放在此文件中。

root@iZm5eiw4hobozjn054cjzrZ:~# head /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog
组名:组密码:组ID:组用户:

/etc/gshadow:组密码存储文件(密文)

/etc/gshadow 文件,用于存储 Linux 系统中组的密码信息

root@iZm5eiw4hobozjn054cjzrZ:~# head /etc/gshadow
root:*::
daemon:*::
bin:*::
sys:*::
组名:加密密码:组管理员:组附加用户列表

/etc/login.defs:创建用户时默认配置文件

以下是相关配置信息

MAIL_DIR /var/spool/mail 创建用户时,系统会在目录 /var/spool/mail 中创建一个用户邮箱,比如 lamp 用户的邮箱是 /var/spool/mail/lamp。
PASS_MAX_DAYS 99999 密码有效期,99999 是自 1970 年 1 月 1 日起密码有效的天数,相当于 273 年,可理解为密码始终有效。
PASS_MIN_DAYS 0 表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。
PASS_MIN_LEN 5 表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0。
PASS_MIN_DAYS 0 指定密码的最小长度,默认不小于 5 位,但是现在用户登录时验证已经被 PAM 模块取代,所以这个选项并不生效。
PASS_WARN_AGE 7 指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。
UID_MIN 500 指定最小 UID 为 500,也就是说,添加用户时,默认 UID 从 500 开始。注意,如果手工指定了一个用户的 UID 是 550,那么下一个创建的用户的 UID 就会从 551 开始,哪怕 500~549 之间的 UID 没有使用。
UID_MAX 60000 指定用户最大的 UID 为 60000。
GID_MAX 60000 用户 GID 最大为 60000。
CREATE_HOME yes 指定在创建用户时,是否同时创建用户主目录,yes 表示创建,no 则不创建,默认是 yes。
UMASK 077 用户主目录的权限默认设置为 077。
USERGROUPS_ENAB yes 指定删除用户的时候是否同时删除用户组,准备地说,这里指的是删除用户的初始组,此项的默认值为 yes
ENCRYPT_METHOD SHA512 指定用户密码采用的加密规则,默认采用 SHA512,这是新的密码加密模式,原先的 Linux 只能用 DES 或 MD5 加密

命令列表

命令列表:useradd(adduser) usermod userdel passwd groupadd groupmod groupdel gpasswd chage id su newgrp

useradd(adduser)

useradd 创建新用户或更新默认的新用户信息
<span style='color:red'>adduser</span>是useradd的另一种写法,但是adduser可以让你直接填写相关信息和默认创建家目录 /home/user

[root@localhost ~]#useradd [选项] 用户名
     -u UID:[UID_MIN,UID_MAX],定义在/etc/login.defs
  -g GID :指明用户所属的基本组,可为组名,亦可以GID
  -c commit :用户的注释信息
  -d /PATH/TO/HOME_DIR:以指定的路径为家目录
  -s SHELL :指明用户的默认shell程序,可用列表在/etc/shells文件中;
  -G GROUP1,GROUP2,为用户指明福家族,组必须实现存在。
  -r:创建系统用户  
    默认值设定: /etc/defaule/useradd 文件中

代码:
root@iZm5eiw4hobozjn054cjzrZ:~# useradd us1 -c '新的用户' -d /home/zhangsan -G zhangsan
root@iZm5eiw4hobozjn054cjzrZ:~# tail -1 /etc/passwd
us1:x:1002:1002:新的用户:/home/zhangsan:

usermod

usermod 修改用户信息

[root@localhost ~]#usermod [选项] 用户名
  -u UID :新的UID
    -g GID:   新基本组
    -G GROUP1[GROUP2],新的附加组
    -s SHELL:新的默认SHELL
    -c ‘commit’ 新的注释信息
    -d HOME:新的家目录:原有家目录的文件不会同时移动至新的家目录
    -l login_name 新的名字
    -U username  解锁文件
    -L username 锁定用户
代码:
root@iZm5eiw4hobozjn054cjzrZ:~# usermod -l us2 -u 1003 -g root -d /home us1
root@iZm5eiw4hobozjn054cjzrZ:~# tail -1 /etc/passwd
us2:x:1003:0:新的用户:/home:

userdel

userdel 删除用户

[root@localhost ~]#userdel [选项] 用户名
    -r 删除用户目录 
代码:
root@iZm5eiw4hobozjn054cjzrZ:~# userdel -r us2
userdel: us2 mail spool (/var/mail/us2) not found
userdel: /home not owned by us2, not removing

-r删除用户目录时如果该目录和其他用户有关联,会提示不能删除

groupadd

groupadd命令:添加用户组

[root@localhost ~]# groupadd [选项] 组名
    -g GID:指定组 ID;
    -r:创建系统群组。
代码:
root@iZm5eiw4hobozjn054cjzrZ:~# groupadd userslist
root@iZm5eiw4hobozjn054cjzrZ:~# tail -1 /etc/group
userslist:x:1004:

groupmod

groupmod 修改用户组

[root@localhost ~]# groupmod [选现] 组名
    -g GID:修改组 ID;
    -n 新组名:修改组名;

代码:
root@iZm5eiw4hobozjn054cjzrZ:~# tail -1 /etc/group
userslist:x:1004:
root@iZm5eiw4hobozjn054cjzrZ:~# groupmod -n usersnewname userslist
root@iZm5eiw4hobozjn054cjzrZ:~# tail -1 /etc/group
usersnewname:x:1004:

groupdel

groupdel 刪除用户组

[root@localhost ~]#groupdel 组名

id

id 查看用户的UID和GID

[root@localhost ~]# id 用户名
root@iZm5eiw4hobozjn054cjzrZ:~# id use1
uid=1002(use1) gid=1005(use1) groups=1005(use1)

su

su 用户间切换(包含su和su -的区别

[root@localhost ~]# su [选项] 用户名
    -:当前用户不仅切换为指定用户的身份,同时所用的工作环境也切换为此用户的环境(包括 PATH 变量、MAIL 变量等),使用 - 选项可省略用户名,默认会切换为 root 用户。
    -l:同 - 的使用类似,也就是在切换用户身份的同时,完整切换工作环境,但后面需要添加欲切换的使用者账号。
    -p:表示切换为指定用户的身份,但不改变当前的工作环境(不使用切换用户的配置文件)。
    -m:和 -p 一样;
    -c 命令:仅切换用户执行一次命令,执行后自动切换回来,该选项后通常会带有要执行的命令。

代码:
[lamp@localhost ~]$ su -root
密码: <-- 输入 root 用户的密码
#"-"代表连带环境变量一起切换,不能省略
[lamp@localhost ~]$ whoami
lamp  #当前我是lamp
[lamp@localhost ~]$ su - -c "useradd user1" root
密码:  #不切换成root,但是执行useradd命令添加user1用户
[lamp@localhost ~]$ whoami
lamp  #我还是lamp
[lamp@localhost ~]$ grep "user1' /etc/passwd
userl:x:502:504::/home/user1:/bin/bash   #user用户已经添加了

总结

以上就是对用户及组管理的相关介绍,大家有什么问题可以给博主留言。

结尾

这一个黑夜的孩子,沉浸于冬天,倾心死亡不能自拔,热爱着空虚而寒冷的乡村--《春天,十个海子》

添加新评论