linux用户管理的范围,Linux用户管理详解

Linux用户和组管理详解

1、Linux中用户和组的标识

说明:Linux系统是基于用户身份对系统的资源进行管理的操作系统

(1)用户帐号:UID(User Identity,用户标识号)

(2)超级用户在任何Linux系统中UID=0

(3)系统用户在不同版本Linux中的UID范围:UID:1-499或UID:1-999

(4)普通用户在不同版本Linux中的UID范围:UID:500-65535或UID:1000-65535

(5)组帐号:GID(Group Identify,组标识号)

组可以分为:初始组(私有组)和附加组(公共组)

(6)组的GID范围和上面的普通用户UID范围相同,每创建一个普通用户,默认会生成一个和用户名相同的用户组且UID和GID也相同

2、用户和组相关文件

(1)用户信息文件 /etc/passwd

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

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

…………………………………省略若干

(2)用户信息文件/etc/passwd详细介绍

用户信息文件内容全部是以冒号进行分割的,详细介绍如下:

第一列:用户名

第二列:密码占位符

第三列:用户 ID (UID)

0 :超级用户的 UID,只要 UID 是 0 就是超级用户。

1-499:系统用户的范围,此范围的用户不能用于登录系统,只能用于软件服

务运行使用,其中 1-99 是系统保留的账户,系统自动创建。100-499 是预留给用户创建系统用户的。

500-65535:普通用户 UID。建立的普通用户 UID 从 500 开始,最大到 65535。

这些用户足够使用了,但是如果不够也不用害怕,2.6.x 内核以后的 Linux 系统用户 UID 已经可以支持 2的32次方这么多了。

第四列:组 ID(GID),添加用户时,如果不指定用户的初始组,则会自动创建和用户名相同的组。

第五列:用户描述信息

第六列:用户家目录,例如超级级管理员 root 的家目录为/root/ ;普通用户的家目录 为/home/***

第七列:登录 shell 类型 ,/bin/bash 能登录系统;/sbin/nologin不能登录系统

(3)用户密码文件/etc/shadow

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

root:$6$OmNu6a62J4t2sFEP$7FzLpbcwSs4TKRAtC9KOgTWvmX/dSphwBJnWOtLjG.sHgn4iMrEmL.T.dlC9am66i3xC4s4Mu5ENpxBEcTe6y1::0:99999:7:::

bin:*:17110:0:99999:7:::

daemon:*:17110:0:99999:7:::

adm:*:17110:0:99999:7:::

lp:*:17110:0:99999:7:::

sync:*:17110:0:99999:7:::

shutdown:*:17110:0:99999:7:::

…………………………………省略若干

(4)用户密码文件/etc/shadow文件详细介绍

用户密码文件/etc/shadow文件内容也是以冒号分割的,详细介绍如下:

第一列:用户名

第二列:加密密码我们也可以在密码前人为的加入“!”或“*”改变加密值让密码暂时失效,使这个用户无法登陆,达到暂时禁止用户登录的效果。注意所有伪用户的密码都是“!!”或“*”,代表没有密码是不能登录的。当然我新创建的用户如果不设定密码,它的密码项也是“!!”,代表这个用户没有密码,不能登录。

第三列:密码最近更改时间的时间戳( 1970 年 1 月 1 日作为标准时间)

时间戳转换日期方法:

[root@localhost ~]# date -d "1970-01-01 17110 days"

2016年11月05日 星期六00:00:00 CST

日期转换时间戳方法:

[root@localhost ~]# echo $(($(date --date="2017-11-21" +%s)/86400+1))

17491

第四列:密码最短有效期

第五例:密码最长有效期

第六列:密码到期前的警告天数

第七列:密码过期后的宽限天数

第八列:密码失效时间,这里同样要写时间戳,也就是用 1970 年 1 月 1日进行时间换算。如果超过了失效时间,就算密码没有过期,用户也就失效无法使用了

第九列:保留

(5)组信息文件/etc/group

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

root:x:0:

bin:x:1:

daemon:x:2:

sys:x:3:

adm:x:4:

tty:x:5:

disk:x:6:

lp:x:7:

…………………………………省略若干

(6)组信息文件/etc/group文件详细介绍

组信息文件/etc/group文件内容也是以冒号分割的,详细介绍如下:

第一列: 组名

第二列: 组密码占位符

第三列: 组 ID 号(GID)

第四列: 组内成员列表

(7)组密码文件/etc/gshadow

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

root:::

bin:::

daemon:::

sys:::

adm:::

tty:::

…………………………………省略若干

(8)组密码文件/etc/gshadow文件详细介绍

组密码文件/etc/gshadow文件内容也是以冒号分割的,详细介绍如下:

第一列:用户组

第二列:用户组密码,这个段可以是空的或!,如果是空的或有!,表示没有密码

第三列:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用逗号分割

第四列:组成员,如果有多个成员,用逗号分割

(9)用户的基本目录

1、用户的家目录

超级用户家目录是 ’/root’

普通用户家目录是 ’/home/xxx’

2、用户邮箱目录 ‘/var/spool/mail/xxx’

3、用户模板目录 ‘/etc/skel/’

3、用户和组相关命令

(1)添加用户命令useradd

格式:useradd  [选项]用户名

选项如下:

-u UID         指定 UID 创建用户

-g 组名        指定初始组,尽量不要手动指定

-G 组名        指定附加组,将用户加入到所指定组内。

-c 说明         添加描述信息

-d 目录        手动指定家目录,目录不需要事先创建

-s  shell类型   指定用户是否能登录系统

-M             创建时不生成用户家目录

例 1:

useradd -M –s /sbin/nologin zhangsan

创建 zhangsan 用户,不创建用户家目录,并且不能登录系统

例 2:

先执行“groupadd a1“,预先创建好需要的组

useradd –u 521 –g a1 –G root –d /home/b1 –c “test user” –s /bin/bash abc

-u 指定UID是521;-g指定初始组是a1;-G指定了附加组为 root组;-d指定了家目录叫/home/b1;-c添加了“test user”作为描述信息;-s指定了登录 shell类型为/bin/bash,允许登陆系统。

(2)useradd 创建用户时默认规则及相关文件介绍

useradd 创建用户时默认参考两个配置文件,分别是/etc/default/useradd和/etc/login.defs

1、/etc/default/useradd文件介绍

[root@localhost ~]# vim /etc/default/useradd

# useradd defaults file

GROUP=100

新创建用户时默认初始组的GID号(公共组)现在使用的是私有组机制(根据创建用户名称创建组)

HOME=/home新创建用户的家目录的默认位置

INACTIVE=-1密码过期后宽限天数(过期停权),-1代表永不过期,0代表立即失效

EXPIRE=密码失效时间,此处写时间戳,到期后立刻失效,不填写表示用户密码永不过期。

SHELL=/bin/bash此选项是创建用户时默认的shell类型,/bin/bash表示可以登录系统

SKEL=/etc/skel此选项是创建用户时使用的模板目录,/etc/skel中的文件在用户创建时

都会被复制到用户家目录下。

CREATE_MAIL_SPOOL=yes此选项是是否给新用户创建邮件缓冲(即新邮箱)

2、/etc/login.defs文件介绍

[root@localhost ~]# vim /etc/login.defs

MAIL_DIR        /var/spool/mail指定新用户的默认邮箱位置

PASS_MAX_DAYS   99999这行指定的是密码的有效期

PASS_MIN_DAYS   0这行指定的是两次密码的修改间隔时间

PASS_MIN_LEN    5密码的最小长度,现在验证已经被PAM模块取代

PASS_WARN_AGE   7这行代表密码修改到期前的警告天数

UID_MIN          1000创建普通用户的时候默认的起始UID号

UID_MAX          60000创建普通用户,不用-u指定时,默认最大的UID号

# System accounts

SYS_UID_MIN      201创建系统用户时默认的最小UID

SYS_UID_MAX      999创建系统用户时默认的最大UID

GID_MIN          1000创建组的时候默认的起始GID号

GID_MAX         60000创建组的时候默认的最大的GID号

# System accounts

SYS_GID_MIN     201默认最小系统GID

SYS_GID_MAX     999默认最大系统GID

CREATE_HOME     yes创建用户时是否创建用户家目录默认yes创建

UMASK           077建立的用户家目录的默认权限

USERGROUPS_ENAB yes使用命令userdel删除用户时,是否删除用户的初始组

ENCRYPT_METHOD SHA512指定Linux用户的密码使用SHA512散列模式加密

(3)添加和修改密码命令passwd

格式:passwd [选项]用户名

选项:

-l  用户名        锁定用户的密码,使之无法登录到系统

-u 用户名         解锁用户密码

-S(大) 用户名   查看用户帐号的状态(是否被锁定)

第一次对一个用户使用时是为此用户创建密码,第二次使用时是修改密码。

例:root身份执行 passwd

[root@localhost ~]# passwd root     root用户修改自己的密码

更改用户root的密码 。

新的 密码:

无效的密码: 密码少于8个字符

重新输入新的 密码:

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

[root@localhost ~]# passwd a1              root用户修改普通用户a1的密码

更改用户a1的密码 。

新的 密码:

无效的密码: 密码少于8个字符

重新输入新的 密码:

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

注:root可以修改任意用户密码,普通用户只能修改自己的密码,当普通用户没有密码时,自己是修改不了自己的密码的!

非交互式密码设置:

--stdin 使用 echo和|实现密码非交互式创建

例:为普通用户a1创建或修改密码

[root@localhost ~]# echo '123456'|passwd --stdin a1

更改用户a1的密码 。

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

(4)用户信息修改命令usermod(必须是已存在的用户)

格式:usermod  [选项]用户名

选项:

-u UID                修改用户的指定 UID

-g 组名               修改用户的指定初始组(尽量不修改)

-G 组名               修改用户的附加组(不管之前设置了多少附加组,都替换掉)

-c 说明                修改用户的描述信息

-d 目录                结合-m 选项直接对源家目录进行改名实现修改家目录

例:usermod –m –d /home/u4 user4(用户user的原家目录是/home/user4)

-s shell类型             修改用户的登录 shell 类型

-L(大)用户名          锁定用户的密码

-U(大)用户名         解锁用户密码

-l 新用户名 旧用户名    修改用户名

(5)删除用户命令userdel

格式:userdel  [选项]用户名

选项

-r  删除用户时,连带家目录一起删除

(6)添加组命令groupadd

格式:groupadd组名

(7)删除组命令groupdel

格式:groupdel组名

注意:被删除的组尽量是空组

(8)向组内添加成员命令gpasswd

格式:gpasswd [选项]用户名 组名

选项:

-a 向指定组内添加一个成员

-d 把指定用户从组内删除

-M 定义组内成员列表,用户之间用,分隔 (覆盖式)

(9)其他相关命令

1. id 用户名

显示用户的 UID、初始组、附加组列表

2. su 用户名

切换用户身份

su - 用户名

连带环境变量一起切换

3. newgrp 组名

修改用户的有效组,切换到普通用户之后,执行命令

有效组定义:用户创建文件或目录时使用哪个组作为文件的所属组,就是有效组。

注:初始组、附加组:是用户和组之间的关系

有效组:用户和文件之间的关系

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 权限管理Linux 操作系统中非常重要的一部分,它控制着用户对文件和目录的访问权限。在 Linux 中,每个文件和目录都有三种基本权限:读取(r)、写入(w)和执行(x)。这些权限可以分别应用于文件所有者、文件所属和其他用户,以控制不同用户对文件和目录的访问和使用。 文件权限的表示方法 Linux 中,文件权限是用一串数字来表示的,每个数字代表一种权限。其中,第一位表示文件所有者的权限,第二位表示文件所属的权限,第三位表示其他用户的权限。每个数字的含义如下: - 0:没有权限 - 1:执行权限 - 2:写入权限 - 3:写入和执行权限 - 4:读取权限 - 5:读取和执行权限 - 6:读取和写入权限 - 7:读取、写入和执行权限 例如,文件权限为“rw-r--r--”,表示文件所有者具有读取和写入权限,文件所属和其他用户只有读取权限。 文件权限的修改方法 在 Linux 中,可以使用 chmod 命令来修改文件权限。chmod 命令的基本语法如下: ``` chmod [选项] 模式 文件名 ``` 其中,选项包括: - -c:只在文件权限确实发生了改变的情况下,输出修改信息。 - -f:不显示错误信息。 - -v:显示每个文件的修改信息。 模式是一种用数字表示的文件权限,可以使用以下方法进行计算: - r=4,w=2,x=1 - 所有者权限的值 = rwx 的数字值 - 权限的值 = rwx 的数字值 - 其他用户权限的值 = rwx 的数字值 例如,要将文件的所有者设置为可读写,用户设置为只读,其他用户设置为只执行,可以使用以下命令: ``` chmod 754 filename ``` 其中,7 表示所有者具有读、写和执行权限;5 表示用户具有读和执行权限;4 表示其他用户具有只读权限。 除了 chmod 命令,Linux 还提供了一些其他工具来管理权限,如 chown 和 chgrp 命令用于更改文件的所有者和所属,setuid 和 setgid 位可以设置进程的权限等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值