三、用户管理

用户和用户组操作命令

ld

Finger

Pwck

检查/etc/passwd配置文件内的信息与实际主文件夹是否存在,还可比较/etc/passwd和/etc/shadow的信息是否一致,另外如果/etc/passwd中的数据字段错误也会提示。

Grpck

和pwck功能相近,这个是检查用户组的。

Groups

newgrp

useradd

usermod

usermod

用于修改用户的基本信息

补充说明

usermod命令 用于修改用户的基本信息。usermod 命令不允许你改变正在线上的使用者帐号名称。当 usermod 命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的 crontab 档。也需手动更改使用者的 at 工作档。采用 NIS server 须在server上更动相关的NIS设定。

语法

usermod(选项)(参数)

选项

-c<备注>:修改用户帐号的备注文字;

-d<登入目录>:修改用户登入时的目录,只是修改/etc/passwd中用户的家目录配置信息,不会自动创建新的家目录,通常和-m一起使用;

-m<移动用户家目录>:移动用户家目录到新的位置,不能单独使用,一般与-d一起使用。

-e<有效期限>:修改帐号的有效期限;

-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;

-g<群组>:修改用户所属的群组;

-G<群组>;修改用户所属的附加群组;

-l<帐号名称>:修改用户帐号名称;

-L:锁定用户密码,使密码无效;

-s:修改用户登入后所使用的shell;

-u:修改用户ID;

-U:解除密码锁定。

参数

登录名:指定要修改信息的用户登录名。

实例

将 newuser2 添加到组 staff 中:

usermod -G staff newuser2

修改newuser的用户名为newuser1:

usermod -l newuser1 newuser

锁定账号newuser1:

usermod -L newuser1

解除对newuser1的锁定:

usermod -U newuser1

增加用户到用户组中:

apk add shadow # 安装 shadow 包, usermod 命令包含在 usermod 中

usermod -aG group user # 添加用户到用户组中

-a 参数表示附加,只和 -G 参数一同使用,表示将用户增加到组中。

修改用户家目录:

[root@node-1 ~]# useradd lutixiaya

[root@node-1 ~]# ls /home

lutixiaya

[root@node-1 ~]# usermod -md /data/new_home lutixiaya

[root@node-1 ~]# ls /home/

[root@node-1 ~]# ls /data/

new_home

userdel

用于删除给定的用户以及与用户相关的文件

补充说明

userdel命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。

语法

userdel(选项)(参数)

选项

-f:强制删除用户,即使用户当前已登录;

-r:删除用户的同时,删除与用户相关的所有文件。

参数

用户名:要删除的用户名。

实例

userdel命令很简单,比如我们现在有个用户linuxde,其家目录位于/var目录中,现在我们来删除这个用户:

userdel linuxde # 删除用户linuxde,但不删除其家目录及文件;

userdel -r linuxde # 删除用户linuxde,其家目录及文件一并删除;

请不要轻易用-r选项;他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份。

其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc/passwd是极为重要的文件,可能您一不小心会操作失误。

groupadd

groupmod

groupdel 都是用来删除用户组的

groupmod

更改群组识别码或名称

补充说明

groupmod命令 更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。

语法

groupmod(选项)(参数)

选项

-g<群组识别码>:设置欲使用的群组识别码;

-o:重复使用群组识别码;

-n<新群组名称>:设置欲使用的群组名称。

参数

组名:指定要修改的工作的组名

groupadd

用于创建一个新的工作组

补充说明

groupadd命令 用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

语法

groupadd(选项)(参数)

选项

-g:指定新建工作组的id;

-r:创建系统工作组,系统工作组的组ID小于500;

-K:覆盖配置文件“/ect/login.defs”;

-o:允许添加组ID号不唯一的工作组。

参数

组名:指定新建工作组的组名。

实例

建立一个新组,并设置组ID加入系统:

groupadd -g 344 jsdigname

此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。

groupdel

用于删除指定的工作组

补充说明

groupdel命令 用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

语法

groupdel(参数)

参数

组:要删除的工作组名。

实例

groupadd damon //创建damon工作组

groupdel damon //删除这个工作组

passwd

用于让用户可以更改自己的密码

补充说明

passwd命令 用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

语法

passwd(选项)(参数)

选项

-d:删除密码,仅有系统管理者才能使用;

-f:强制执行;

-k:设置只有在密码过期失效后,方能更新;

-l:锁住密码;

-s:列出密码的相关信息,仅有系统管理者才能使用;

-u:解开已上锁的帐号。

参数

用户名:需要设置密码的用户名。

知识扩展

与用户、组账户信息相关的文件

存放用户信息:

/etc/passwd

/etc/shadow

存放组信息:

/etc/group

/etc/gshadow

用户信息文件分析(每项用:隔开)

例如:jack:X:503:504:::/home/jack/:/bin/bash

jack  # 用户名

X  # 口令、密码

503  # 用户id(0代表root、普通新建用户从500开始)

504  # 所在组

:  # 描述

/home/jack/  # 用户主目录

/bin/bash  # 用户缺省Shell

组信息文件分析

例如:jack:$!$:???:13801:0:99999:7:::

jack  # 组名

$!$  # 被加密的口令

13801  # 创建日期与今天相隔的天数

0  # 口令最短位数

99999  # 用户口令

7  # 到7天时提醒

*  # 禁用天数

*  # 过期天数

实例

如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。

[root@localhost ~]# passwd linuxde # 更改或创建linuxde用户的密码;

Changing password for user linuxde.

New UNIX password: # 请输入新密码;

Retype new UNIX password: # 再输入一次;

passwd: all authentication tokens updated successfully. # 成功;

普通用户如果想更改自己的密码,直接运行passwd即可,比如当前操作的用户是linuxde。

[linuxde@localhost ~]$ passwd

Changing password for user linuxde. # 更改linuxde用户的密码;

(current) UNIX password: # 请输入当前密码;

New UNIX password: # 请输入新密码;

Retype new UNIX password: # 确认新密码;

passwd: all authentication tokens updated successfully. # 更改成功;

比如我们让某个用户不能修改密码,可以用-l选项来锁定:

[root@localhost ~]# passwd -l linuxde # 锁定用户linuxde不能更改密码;

Locking password for user linuxde.

passwd: Success # 锁定成功;

[linuxde@localhost ~]# su linuxde # 通过su切换到linuxde用户;

[linuxde@localhost ~]$ passwd # linuxde来更改密码;

Changing password for user linuxde.

Changing password for linuxde

(current) UNIX password: # 输入linuxde的当前密码;

passwd: Authentication token manipulation error # 失败,不能更改密码;

再来一例:

[root@localhost ~]# passwd -d linuxde # 清除linuxde用户密码;

Removing password for user linuxde.

passwd: Success # 清除成功;

[root@localhost ~]# passwd -S linuxde # 查询linuxde用户密码状态;

Empty password. # 空密码,也就是没有密码;

注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。

Chage 修改用户密码有效期限的命令

修改帐号和密码的有效期限

补充说明

chage命令 是用来修改帐号和密码的有效期限。

语法

chage [选项] 用户名

选项

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。

-w:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

-d:上一次更改的日期。

-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

实例

可以编辑/etc/login.defs来设定几个参数,以后设置口令默认就按照参数设定为准:

PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0

PASS_MIN_LEN 5

PASS_WARN_AGE 7

当然在/etc/default/useradd可以找到如下2个参数进行设置:

useradd defaults file

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

通过修改配置文件,能对之后新建用户起作用,而目前系统已经存在的用户,则直接用chage来配置。

我的服务器root帐户密码策略信息如下:

[root@linuxde ~]# chage -l root

最近一次密码修改时间 : 3月 12, 2013

密码过期时间 :从不

密码失效时间 :从不

帐户过期时间 :从不

两次改变密码之间相距的最小天数 :0

两次改变密码之间相距的最大天数 :99999

在密码过期之前警告的天数 :7

我可以通过如下命令修改我的密码过期时间:

[root@linuxde ~]# chage -M 60 root

[root@linuxde ~]# chage -l root

最近一次密码修改时间 : 3月 12, 2013

密码过期时间 : 5月 11, 2013

密码失效时间 :从不

帐户过期时间 :从不

两次改变密码之间相距的最小天数 :0

两次改变密码之间相距的最大天数 :60

在密码过期之前警告的天数 :9

然后通过如下命令设置密码失效时间:

[root@linuxde ~]# chage -I 5 root

[root@linuxde ~]# chage -l root

最近一次密码修改时间 : 3月 12, 2013

密码过期时间 : 5月 11, 2013

密码失效时间 : 5月 16, 2013

帐户过期时间 :从不

两次改变密码之间相距的最小天数 :0

两次改变密码之间相距的最大天数 :60

在密码过期之前警告的天数 :9

从上述命令可以看到,在密码过期后5天,密码自动失效,这个用户将无法登陆系统了。

id

打印真实以及有效的用户和所在组的信息

概要

id [OPTION]... [USER]...

主要用途

没有选项时,打印指定用户ID信息。

选项

-a 兼容性选项,没有实际作用。

-Z, --context 只打印进程的安全上下文。

-g, --group 只打印有效的组ID。

-G, --groups 打印全部组ID。

-u, --user 只打印有效的用户ID。

-z, --zero 使用空字符代替默认的空格来分隔条目。

--help 显示帮助信息并退出。

--version 显示版本信息并退出。

只有在使用 -u -g -G 选项中一到多个时,以下选项可以使用:

-n, --name 打印名称而不是数字。

-r, --real 打印真实ID而不是有效ID。

参数

user(可选):可以为一到多个,默认为当前用户。

返回值

返回0表示成功,返回非0值表示失败。

例子

[root@localhost ~]# id

uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

解释:用户root的UID号码 = 0,GID号码 = 0。用户root是下面组的成员:

root组GID号是:0

bin组GID号是:1

daemon组GID号是:2

sys组GID号是:3

adm组GID号是:4

disk组GID号是:6

wheel组GID号是:10

打印用户名、UID 和该用户所属的所有组,要这么做,我们可以使用 -a 选项:

[root@localhost ~]# id -a

uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

输出所有不同的组ID ,有效的,真实的和补充的,我们可以使用 -G 选项来实现:

[root@localhost ~]# id -G

0 1 2 3 4 6 10

结果只会显示GID号。你可以和/etc/group文件比较。下面是/etc/group文件的示例内容:

只输出有效的组ID,通过使用 -g 选项来只输出有效组ID:

[root@localhost ~]# id -g

0

输出特定用户信息,我们可以输出特定的用户信息相关的UID和GID。只需要在id命令后跟上用户名:

[root@localhost ~]# id www

uid=500(www) gid=500(www) groups=500(www)

注意

该命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID;一些程序可能需要UID/GID来运行。id 使我们更加容易地找出用户的UID以及GID,而不必在 /etc/group 文件中搜寻。

该命令是GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 id,info coreutils 'id invocation'。

finger

用于查找并显示用户信息

补充说明

finger命令 用于查找并显示用户信息。包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

语法

finger(选项)(参数)

选项

-l:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容;

-m:排除查找用户的真实姓名;

-s:列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;

-p:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。

不指定finger的选项如果提供操作者的话,缺省设为-l输出风格,否则为-s风格,注意在两种格式中,如果信息不足,都有一些域可能丢失,如果没有指定参数finger会为当前登录的每个用户打印一个条目。

参数

用户名:指定要查询信息的用户。

实例

在计算机上使用finger:

[root@localhost root]# finger

login Name Tty Idle Login time Office Office Phone

root root tty1 2 Dec 18 13

root root pts/0 1 Dec 18 13

root root *pts/1 Dec 18 13

注意:如果没有安装,可以使用 sudo yum install finger -y 针对于老版本

如果要查询远程机上的用户信息,需要在用户名后面接@主机名,采用用户名@主机名的格式,不过要查询的网络主机需要运行finger守护进程的支持。

查询登录主机的用户工具:w 、who、users

Groups 用户所归属的用户组查询

groups

打印指定用户所在组的名称。

概要

groups [OPTION]... [username]...

主要用途

打印指定用户所在组的名称。

选项

--help 显示帮助信息并退出。

--version 显示版本信息并退出。

参数

username(可选):可以是一到多个,不提供时默认为当前用户。

返回值

返回0表示成功,返回非0值表示失败。

例子

显示linux用户所属的组

[root@localhost ~]# groups linux

linux : linux adm dialout cdrom plugdev lpadmin admin sambashare

注意

该命令等价于 id -Gn。

每个用户属于/etc/passwd中指定的一个组和在/etc/group中指定的其他组。

该命令是GNU coreutils包中的命令,相关的帮助信息请查看man -s 1 groups,info coreutils 'groups invocation'。

相关配置文件

/etc/passwd

/etc/shadow

/etc/gshadow

/etc/group

Linux 用户密码策略

在Linux系统中,用户密码策略主要涉及以下几个方面:

  1. 密码复杂度要求:

    • 最小长度:通过修改/etc/login.defs文件中的PASS_MIN_LEN参数设定密码的最小长度。
    • 复杂性规则:可以使用PAM模块(如pam_cracklib)来强制执行密码复杂度策略,比如必须包含大写字母、小写字母、数字和特殊字符等。
  2. 密码过期策略:

    • 密码有效期:通过编辑 /etc/login.defs 中的 PASS_MAX_DAYSPASS_MIN_DAYS 参数设置密码的有效期范围,以及 PASS_WARN_AGE 设置提前多少天提醒用户更改密码。
    • 密码历史:使用PAM模块如 pam_unix.so 的 remember=N 选项限制用户不能重复使用最近N次的密码。
  3. 错误尝试锁定:

    • 登录失败次数:通过配置/etc/pam.d/system-auth或其他与认证相关的PAM配置文件,启用pam_tally2pam_faillock模块限制连续错误登录尝试次数,并在达到阈值后锁定账号一段时间。
  4. 自动解锁时间:

    • 锁定账户后,可以通过配置相应的PAM模块设置自动解锁时间。
  5. 密码到期前警告:

    • 系统可以根据需要在用户登录时显示密码即将过期的提示信息。

例如,在Red Hat Enterprise Linux (RHEL)系列系统中,可以在/etc/security/pwquality.conf配置文件中调整密码质量控制,而在Ubuntu系统中,则通常在/etc/pam.d/common-password等PAM配置文件中添加或修改行以启用密码策略模块。

具体配置命令示例可能包括:

# 在/etc/login.defs设置密码最小长度
echo "PASS_MIN_LEN 8" >> /etc/login.defs # 使用pam_cracklib加强密码复杂度
sed -i '/password.*required/s/$/ pam_cracklib.so minlen=8 difok=3 retry=3/' /etc/pam.d/system-auth # 设置密码有效期
echo "PASS_MAX_DAYS 90" >> /etc/login.defs
echo "PASS_MIN_DAYS 7" >> /etc/login.defs
echo "PASS_WARN_AGE 7" >> /etc/login.defs # 使用pam_tally2限制登录尝试次数
auth required pam_tally2.so deny=5 onerr=fail unlock_time=604800 # 对于RHEL/CentOS 7及更高版本,使用pam_faillock模块进行账户锁定
auth [default=die] pam_faillock.so authfail deny=5 unlock_time=604800 even_deny_root root_unlock_time=300
account required pam_faillock.so # 配置密码到期警告
chage -m 7 -W 7 username # 为指定用户设置最小和最大密码更改期限以及警告期

ACL权限设置

ACL是access control list 的缩写,主要用于在提供传统的owner、group 、others的read、write、execute权限之外进行细部权限设置。

启动ACL

让/目录支持ACL:

mount -o remount,acl /

Mount |grep / // 查看是否有挂载

开机启动ACL:

将要启动ACL的分区写入/etc/fstab中:

vi /etc/fstab

/dev/sda5 / ext3 default,acl 1 2

ACL相关命令

ACL(Access Control List)是Linux系统中用于设置文件或目录权限的一种机制,可以实现对不同用户或用户组设置不同的访问权限。与传统的UGO(User、Group、Others)权限管理相比,ACL提供了更细粒度的权限控制。

与ACL相关的命令主要有两个:setfacl和getfacl。

setfacl命令:用于设置ACL权限。其基本语法如下:

bash复制代码

setfacl [选项] 文件名

其中,常用的选项包括:

复制代码

* -m:设置ACL权限。

* -x:删除指定的ACL权限。

* -b:删除所有的ACL权限。

* -d:设置默认ACL权限。

* -k:删除默认ACL权限。

* -R:递归设置ACL权限。例如,要给文件file的用户username设置读、写、执行权限,可以使用以下命令:

bash复制代码

setfacl -m u:username:rwx file

getfacl命令:用于查看ACL权限。其基本语法如下:

bash复制代码

getfacl 文件名

执行该命令后,将显示指定文件或目录的ACL权限信息。例如,要查看文件file的ACL权限,可以执行以下命令:

bash复制代码

getfacl file

此外,需要注意的是,ACL权限的设置和查看都需要在支持ACL的文件系统上进行。在大多数Linux发行版中,ext4文件系统默认支持ACL。在使用ACL时,还需要注意mask值的作用。mask值用于指定最大有效权限,它决定了用户或用户组实际获得的权限。当用户或用户组被赋予ACL权限时,其实际权限将是ACL权限与mask值进行“与”运算的结果。这有助于防止给用户或用户组赋予过高的权限,提供了权限的双重保证。

su

用于切换当前用户身份到其他用户身份

补充说明

su命令 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

语法

su(选项)(参数)

选项

-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;

-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;

-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;

-m,-p或--preserve-environment:变更身份时,不要变更环境变量;

-s或--shell=:指定要执行的shell;

--help:显示帮助;

--version;显示版本信息。

参数

用户:指定要切换身份的目标用户。

实例

变更帐号为root并在执行ls指令后退出变回原使用者:

su -c ls root

变更帐号为root并传入-f选项给新执行的shell:

su root -f

变更帐号为test并改变工作目录至test的家目录:

su -test

实例二:

由于Ubuntu只能以普通用户登录,登录进去才可以使用su 切换为root

查询用户命令

W

可显示开机多久,当前登录的所有用户,平均负载

Who

显示当前登录的所有用户

Last

显示每个用户最后的登录时间

Lastlog

显示每个用户最后的登录时间

大年学习linux(第三节---用户管理)的更多相关文章

  1. linux上的用户管理

    作为一个专业的服务器发行版,CentOS上存在着n多个用户,作为一个专业的运维工程师,linux的用户管理和用户组的管理是做为一个SA必不可少的工作. 下面我们就先来谈谈linux中的用户管理: us ...

  2. Linux常用命令--用户管理,文件权限,打包命令等

    幕布链接 Linux常用命令--用户管理,文件权限,打包命令等

  3. 安装VMtools vim编辑器的使用 压缩包命令 Linux下的用户管理 (第三天)

    VM tools:方便我们虚拟机和宿主机之间复制数据或移动文件等 安装VMtools 1.菜单栏-虚拟机-安装VM tools 将其选中 2.进入系统,在桌面位置里面有VM tools的光盘,双击进入 ...

  4. Linux命令整理,用户管理,用户组管理,系统管理,目录管理常用命令

    知识点梳理 Linux课堂笔记 学习目标 能够知道什么是Linux系统以及它的应用场景 能够独立完成安装VMware虚拟机和网络配置 能够独立完成安装CentOS以及远程终端SecureCRT 能够熟 ...

  5. Linux 命令整理 —— 用户管理

    Linux用户管理以读.写.执行动作为权限,以用户组为单位,限制用户行为.对于文件的的操作,可以限制读.写.执行中的哪一种,也可以限制文件所有者.组用户.组外用户相应的权限. 所以,要建立用户,最好先 ...

  6. linux入门之用户管理

    用户管理 添加用户 以root用户执行 adduser  或 useradd [new_account] -u  UID   -d 指定家目录 -g GID 指定一个基本组ID   -G指定一个附加组 ...

  7. Linux系列教程(七)——Linux帮助和用户管理命令

    上篇博客我们介绍了Linux文件搜索命令,其中find是用的最多的也是功能最强大的文件或目录搜索命令,和另一个搜索命令locate的区别是,find命令是全盘搜索,刚创建的文件也能搜索的到,而loca ...

  8. linux下主机用户管理(完整详情)

    (一) 创建新用户 useradd命令(也可以使用adduser)用来创建新的用户帐号,其命令格式如下: 表4-19 useradd命令常用选项 常用现象意 义 -d设置新用户的登陆目录 -e设置新用 ...

  9. vue学习笔记—bootstrap+vue用户管理

    vue,读音view,简单易用的前端框架.特点如下: 1.一个mvvm的前端框架,内部做好了html中dom对象和后台用js语言定义的变量的双向绑定 2.中国人尤雨溪维护的个人项目,中文资料多,和go ...

  10. 学习Linux下的文件目录管理

                    文件目录管理 一.认识Linux文件系统的架构 在Linux中是没有盘符这个概念的,即Linux中没有C盘和D盘的分盘.那么我们直接通过对目录的操作实现对磁盘的读写,因 ...

随机推荐

  1. 升腾C92 刷 OpenWrt 作旁路由设置 DNS 服务、扩容分区、设置 swap

    最新博客文章链接 文字更新时间:2024/02/04 一直知道 OpenWrt 经常拿来做软路由软件.最近买了个二手小主机升腾 C92 来做旁路由服务器,其被归为瘦客户机一类,感觉和工控机差不多,现价 ...

  2. 3.操作列表--《Python编程:从入门到实践》

    3.1 遍历列表 magicians = ['alice', 'david', 'carolina'] for magician in magicians: # 临时变量 magician print ...

  3. java bean 慎用 is开头isXxx开头的属性,若必须得用,那么一定要记得 idea自动生成的 setter 和 getter会不标准,从而会引起问题,他自动生成后,需要手工再次进行修改,才可使用,要不然有可能引起各种问题

    直接上例子: 然后用 Idea 自动生成 getter 和 setter public class XyzBean { //最普通的 private String name; //Boolean类型, ...

  4. .NET Core开发实战(第15课:选项框架:服务组件集成配置的最佳实践)--学习笔记

    15 | 选项框架:服务组件集成配置的最佳实践 这一节讲解如何使用选项框架来处理服务和配置的关系 选项框架的特性: 1.支持单例模式读取配置 2.支持快照 3.支持配置变更通知 4.支持运行时动态修改 ...

  5. 函数防抖与节流 - js

    防抖(debounce)和节流(throttle)是在 高频次调用函数 的场景下,常用的解决方案了.故名思意,可以节省开销,优化体验. 二者的区别: 防抖: 我们让想要执行的函数只在最后一次调用完一小 ...

  6. SSD 简介—— NAND 芯片介绍

    制作 存储芯片的制作和其他芯片制作大致相同,从沙子中提取单晶硅制作晶圆再封装芯片. 闪存芯片从架构上分为NOR和NAND NOR Flash的source line把每个cell都并联起来,而NAND ...

  7. 内核5.4以上, Realtek 8111网卡初始化失败

    在Centos7中, 升级内核到5.4.x或5.11.x时, 都会出现realtek8111网卡无法启动的问题, 在dmesg中能看到这个错误 $ dmesg |grep -i r8169 ... r ...

  8. v-html可能导致的问题

    v-html可能导致的问题 Vue中的v-html指令用以更新元素的innerHTML,其内容按普通HTML插入,不会作为Vue模板进行编译,如果试图使用v-html组合模板,可以重新考虑是否通过使用 ...

  9. SecureCRT很好用的几个快捷键

    以下是我在使用SecureCRT这个SSH工具时用到的很实用的快捷键,与大家分享: [Alt]+[Enter]:全屏 [Alt]+[B]: 快速打开新的连接 [Alt]+[1/2/3/4/5.../9 ...

  10. win32 - 计算位图所需的字节总数

    BITMAPINFOHEADER文档详细介绍了所需要的步骤, 对于未压缩的RGB格式,最小跨度始终是图像宽度(以字节为单位),四舍五入到最接近的DWORD.可以使用以下公式来计算步幅: stride ...