一.关于用户

​ 用户一般来说是指使用计算机的人,计算机针对使用的每一个人给了一个特定的名称,用户就可以使用这些名称来登录使用计算机,除

了人之外,一些系统服务也需要含有部分特权的用户账户运行;因此出于安全考虑,用户管理应运而生,它加以明确限制各个用户账户的

权限,root在计算机中用拥有至高特权,所以一般只作管理用,非特权用户可以通过SU或SUDO程序来临时获得特权。

​ GNU/Linux 通过用户和用户组实现访问控制,包括对文件的访问,设备使用的控制。

​ 个人可以拥有很多账户,只不过是彼此名称不同,比如root名称已经占用就不能再用了,此外,任意用户可能从属某个用户组,此用户

可以加入某些已经存在的组来获得该组的特权。

​ GNU/Linux 系统中的每一个文件都属于一个用户(属主)和一个用户组(属组)。

​ 文件拥有三种类型的访问权限:读(read)、写(write)、运行(execute)。我们可以针对文件的属主、属组、而设置相应的访问权

​ 我们可以通过 ls 或者stat命令查询文件属主、属组和权限

#可以看到passwd文件的访问权限是-rw-r--r--,用户是root,用户组是root
[root@node5 ~]# ls -l /etc/passwd
-rw-r--r-- 1 root root 1447 Oct 13 15:15 /etc/passwd #stat命令显示的信息更详细
[root@node5 ~]# stat /etc/passwd
File: ‘/etc/passwd’
Size: 1447 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17664215 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-10-13 15:20:01.164284250 +0800
Modify: 2020-10-13 15:15:22.754277347 +0800
Change: 2020-10-13 15:15:22.755277347 +0800
Birth: -

二.用户的三种类型

linux中用户分为三类:

  • ​ 超级用户(root):root 拥有系统最高的管理权限,uid=0
  • ​ 普通用户:从centos7开始,系统用户的UID为1-999,centos6的系统用户UID为1-499,从centos7开始,本地用户的UID从1000开始,centos6的本地用户UID从500开始。其中UID是每个用户的身份标示,类似于每个人的身份证号码。
  • ​ 虚拟用户:又称伪用户 ,一般不会用来登录系统的,它主要是用于维持某个服务的正常运行。如:ftp,apache服务。

三.与用户有关的配置文件详解

配置文件名称 配置文件存放路径 配置文件详解
用户配置文件 /etc/passwd 记录了每个用户的基本属性,并且对所有用户可读,每一行记录对应一个用户,每行记录通过冒号进行分隔
用户组文件 /etc/group 用户组的所有信息存放地,组名不能重复
用户密码信息文件 /etc/shadow 由于/etc/passwd文件对所有用户是可读的,为安全起见把密码从passwd中分离出来放入这个单独的文件,该文件只有root用户拥有读权限,从而保证密码安全性

1./etc/passwd各个字段含义:

[root@node5 ~]# tail -1 /etc/passwd
elk:x:1001:1001::/opt/elk:/bin/bash #elk:用户名
#x:密码占位符
#1001:用户的UID,它都是用数字来表示的
#1001:用户所属组的GID,它都是用数字来表示的
#用户描述信息:对用户的功能或其它来进行一个简要的描述
#/opt/elk:用户主目录/家目录
#/bin/bash:用户登录系统后默认使用的shell #扩展,查看系统中,支持哪些shell
[root@node5 ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/ksh
/bin/rksh
/bin/zsh

2./etc/shadow各个字段含义

[root@node5 ~]# grep root /etc/shadow
root:$6$KLWtaWU.iaW5rSmI$QgFqjhNnwVjBXRRvHA.TPwhku260i6yJv5X2dGUfn.EBBoOrGuP5QrSKTmNwJehB1j/B2lCHnbUxuvTx6L2G./::0:99999:7:::

/etc/shadow各个字段详解

name 账户名称,这个必须是系统中的有效账户名
password 已加密的密码,分为三个部分,第一部分是表示使用哪种哈希算法;第二部分是用于加密哈希的salt;第三部分是已加密的哈希
哈希算法:$1表示MD5 ; $6 表示SHA-512 ; $5 SHA-256
lastchange 最近一次更改密码的日期,以距离1970/1/1的天数表示
min-age 不能更改密码的最少天数,最近更改过后几天才可以更改;如果为0表示“最短期限要求”
maxage 密码过期时间,必须更改密码前的最多天数
warning 密码即将到期的警告期,以天数表示,0表示“不提供警告”
inactive 宽限天数,密码到期后
expire 账号过期时间,以距离1970/1/1的天数计算 (千年虫)
blank 预留字段

3./etc/group各个字段详解

[elk@node5 ~]$ tail -4 /etc/group
postgres:x:26:elk
esnode:x:8001:elk
elk:x:1001:
logstash:x:1002: #第一个字段:组名,用户组的名称,组名不能重复
#第二个字段:密码占位符,密码存在/etc/gshadow里
#第三个字段:组标识号gid,这个gid号是和/etc/passwd中组标识号对应的
#第四个字段:组内用户列表,可以有多个用户,多个用户之间用逗号分隔

4.控制添加用户规则的文件有两个,/etc/default/useradd和/etc/login.defs

[root@node5 ~]# ls /etc/default/useradd
/etc/default/useradd [root@node5 ~]# ls /etc/login.defs
/etc/login.defs #egrep -v "^$|^#"的意思是过滤掉空行和#开头的行
[root@node5 ~]# egrep -v "^$|^#" /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000 #本地用户的UID从1000开始
UID_MAX 60000 #本地用户的UID最大值
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000 #GID从1000开始
GID_MAX 60000 #GID的最大值
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes #是否为用户建立home目录
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512 #shadow文件的加密算法 [root@node5 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 #表示可以创建普通组,users组ID为100。如果没有这一条,或者你把users这个组删除了,当你再创建用户时,将提示:#useradd: group '100' does not exist
HOME=/home #指定用户家目录,如果你不想让用户家目录在/home下,可以修改这个地方。
INACTIVE=-1 #是否启用帐号过期。passwd文件中第7栏。即:密码过期后是否会失效的设定值 。INACTIVE:无效。-1表示启用
EXPIRE= #帐号终止日期 shadow中第8栏。账号失效的日期 就是 shadow 内的第八字段,你可以直接设定账号在哪个日期后就直接失效,#而不理会密码的问题。通常不会设定此配置项,但如果是付费的会员制系统,或许这个字段可以设定!
SHELL=/bin/bash #指定默认使用的shell类型
SKEL=/etc/skel #模板目录
CREATE_MAIL_SPOOL=yes #是否创建邮箱文件 

四.创建用户

1.创建用户使用useradd命令,命令的格式为:useradd -d -u “UID” -g "初始组" -G "附加组" -s "登陆的shell” 用户

#useradd命令参数说明
#-d:-d 用户主目录路径,指定用户家目录
#-M:不创建用户的主目录
#-g:设置用户初始组的名称或数字ID;该组必须是存在的;如果没有设置该选项,useradd会根据/etc/login.defs文件中
#USERGROUPS_ENAB环境变量进行设置。默认USERGROUPS_ENAB yes 会用和用户名相同的名字创建群组,GID等于UID
#-G:用户要加入的附加组列表;使用逗号分隔多个组,不要添加空格;如果不设置,用户仅仅加入初始组。(一个用户只允许有一个主组,可以有多#个附属组)
#-s:用户默认登录shell的路径;启动过程结束后,默认启动的登录shell在此处设定;请确保使用的shell已经安装,默认是 Bash。有时候需#要禁止某些用户执行登录动作,例如用来执行系统服务的用户。将shell设置成 /sbin/nologin可以禁止用户登录。 #扩展,useradd的其他用法
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
#参数说明
#-c:加上备注文字(添加注释),备注文字保存在passwd的备注栏中。
  #-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
  #-D:变更预设值。
  #-e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
  #-f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
  #-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
  #-G:指定用户所属的附加群组。
  #-m:自动建立用户的登入目录。
  #-M:不要自动建立用户的登入目录。
  #-n:取消建立以用户名称为名的群组。
  #-r:建立系统账号。
  #-s:指定用户登入后所使用的shell。默认值为/bin/bash。
  #-u:指定用户ID号。

2.创建elk账户,elk的家目录为/opt/elk,UID为1001,附属组为esnode,postgres,root,默认登录的shell为bash

[root@node5 ~]# useradd -d /opt/elk -u 1001 -g 1001 -G esnode,postgres,root -s /bin/bash elk
useradd: group '1001' does not exist #-g:设置用户初始组的名称或数字ID;该组必须是存在的,默认GID等于UID
[root@node5 ~]# useradd -d /opt/elk -u 1001 -G esnode,postgres,root -s /bin/bash elk #id查看elk用户的uid,gid,groups
[root@node5 ~]# id elk
uid=1001(elk) gid=1001(elk) groups=1001(elk),0(root),26(postgres),8001(esnode) [root@node5 ~]# tail -1 /etc/passwd
elk:x:1001:1001::/opt/elk:/bin/bash #elk用户下的家目录存在的掩藏文件
[root@node5 ~]# ls /opt/elk/ -a
. .. .bash_logout .bash_profile .bashrc .kshrc .zshrc #如果一个组有多个成员,我们是可以在/etc/group文件中最后一个字段看到的
[root@node5 ~]# tail -4 /etc/group
tss:x:59:
postgres:x:26:elk
esnode:x:8001:elk
elk:x:1001: #切换到elk用户,并进入家目录
[root@node5 ~]# su - elk [elk@node5 ~]$ pwd
/opt/elk [elk@node5 ~]$ ls #退出elk用户
[elk@node5 ~]$ exit
logout

3.创建logstash账户,但是不创建家目录

[root@node5 ~]# useradd -M logstash

[root@node5 ~]# id logstash
uid=8002(logstash) gid=8002(logstash) groups=8002(logstash) [root@node5 ~]# tail -1 /etc/passwd
logstash:x:8002:8002::/home/logstash:/bin/bash #/etc/passwd里虽然存在/home/logstash家目录,但是并没有创建家目录
[root@node5 ~]# ls /home/logstash
ls: cannot access /home/logstash: No such file or directory [root@node5 ~]# tail -1 /etc/group
logstash:x:8002:

4.创建es账户,并对es账户进行注释

#-c:加上备注文字(添加注释),备注文字保存在passwd的备注栏中。
[root@node5 ~]# useradd -c "es的账户" es [root@node5 ~]# id es
uid=8003(es) gid=8003(es) groups=8003(es) [root@node5 ~]# tail -1 /etc/passwd
es:x:8003:8003:es的账户:/home/es:/bin/bash

5.创建用户除了使用useradd,还可以使用adduser,

[root@node5 ~]# which useradd
/usr/sbin/useradd [root@node5 ~]# which adduser
/usr/sbin/adduser #可以看到adduser只是useradd的软链接
[root@node5 ~]# ll -h /usr/sbin/adduser
lrwxrwxrwx. 1 root root 7 Apr 26 2019 /usr/sbin/adduser -> useradd

五.设置用户密码

1.以交互方式设置用户密码

#可以发现如果一个用户被创建了,但是没有设置密码,/etc/shadow文件的第二字段使用!!表示
[root@node5 ~]# tail -3 /etc/shadow
esnode:$6$fznP2Oqd$02x2dTMV0kP5Ra780.sw.W06KZVl7ua8sA7QBMfEsYp0iUs1ukz.9H/iqYjToLLLa1TPSGWDC6a8yVJFZCVV5/:18378:0:99999:7:::
elk:!!:18548:0:99999:7:::
logstash:!!:18548:0:99999:7::: #设置elk密码
[root@node5 ~]# passwd elk
Changing password for user elk.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully. [root@node5 ~]# tail -3 /etc/shadow
esnode:$6$fznP2Oqd$02x2dTMV0kP5Ra780.sw.W06KZVl7ua8sA7QBMfEsYp0iUs1ukz.9H/iqYjToLLLa1TPSGWDC6a8yVJFZCVV5/:18378:0:99999:7:::
elk:$6$An7lKn2Q$dSuliu1h.Wn42GsrRwKPDS6bgEmTR8TlMsWMHIVWIEXOVbsKwvBcKDDNv.Mxki7aOwV8EBASQFAGQ9W.N/LeV.:18548:0:99999:7:::
logstash:!!:18548:0:99999:7:::

2.一条命令设置用户密码,免交互

[root@node5 ~]# echo 123456 | passwd --stdin logstash
Changing password for user logstash.
passwd: all authentication tokens updated successfully. [root@node5 ~]# tail -3 /etc/shadow
esnode:$6$fznP2Oqd$02x2dTMV0kP5Ra780.sw.W06KZVl7ua8sA7QBMfEsYp0iUs1ukz.9H/iqYjToLLLa1TPSGWDC6a8yVJFZCVV5/:18378:0:99999:7:::
elk:$6$An7lKn2Q$dSuliu1h.Wn42GsrRwKPDS6bgEmTR8TlMsWMHIVWIEXOVbsKwvBcKDDNv.Mxki7aOwV8EBASQFAGQ9W.N/LeV.:18548:0:99999:7:::
logstash:$6$9yY5A65j$YzViQt8dC7mb9ID4my1x1o2dZX3ovQbTfsMr3f5UaJkt3THQRMOmt0pq2YIN0W.zlyU/hRlZe.9vocyFepTYl1:18548:0:99999:7:::

3.如果嫌想密码太麻烦,可以使用mkpasswd生成随机密码

#如果想使用mkpasswd,需要提前安装expect
[root@node5 ~]# yum -y install expect [root@node5 ~]# which mkpasswd
/usr/bin/mkpasswd #mkpasswd命令的参数说明:-l密码长度 -s特殊字符数 -d数字个数
[root@node5 ~]# mkpasswd -l 12 -s 3 -d 2
y=JZixsj~,14

4.假如两个用户的密码一样,那么shadow中加密的hash值一样吗?

答:不一样, 因为salt不一样。

六.删除用户

删除用户使用userdel,加-r参数的时候,会同时删除用户的家目录和/var/mail下的目录

[root@node5 ~]# ls /var/mail/
elk es esnode logstash nginx root rpc www
[root@node5 ~]#
[root@node5 ~]# userdel -r es
[root@node5 ~]#
[root@node5 ~]# ls /home/es
ls: cannot access /home/es: No such file or directory
[root@node5 ~]# ls /var/mail/
elk esnode logstash nginx root rpc www

七.用户密码时效管理

1.chage命令用于密码实效管理,是用来修改帐号和密码的有效期限

2.chage命令参数详解

参数 描述
-d 指定密码最后修改日期,上一次更改的日期,为0表示强制在下次登录时更新密码
-E 密码到期的日期,过了这天,此账号将不可用,0表示马上过期,-1表示永不过期
-h 显示帮助信息并退出
-I(大写的i) 密码过期后,锁定账号的天数
-l 列出用户及密码的有效期
-m 密码可更改的最小天数,为零代表任何时候都可以更改密码
-M 密码保持有效的最大天数
-W 密码过期前,提前收到警告信息的天数

八.查看用户相关信息的命令

参数 描述
id 查看用户和组的信息
whoami 查看当前有效用户名
who 显示目前登入系统的用户信息
w w命令用于显示已经登陆系统的用户列表
users 用于显示当前登录系统的所有用户的用户列表
[root@node5 ~]# id
uid=0(root) gid=0(root) groups=0(root)
[root@node5 ~]# whoami
root
[root@node5 ~]# who
esnode tty1 2020-10-14 00:38
root pts/0 2020-10-13 12:37 (192.168.110.1)
root pts/1 2020-10-13 12:37 (192.168.110.1)
[root@node5 ~]# w
00:39:35 up 6 days, 4:39, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
esnode tty1 00:38 1:03 0.01s 0.01s -bash
root pts/0 192.168.110.1 Tue12 7.00s 0.55s 0.00s w
root pts/1 192.168.110.1 Tue12 6:23m 0.07s 0.07s -bash
[root@node5 ~]# users
esnode root root

九.修改用户基本信息

1.修改用户基本信息使用usermod命令,格式为:usermod 【参数】用户名

参数 描述
-u 修改用户UID
-d 修改用户家目录
-g 修改用户起始组
-G 修改用户附加组
-s 修改用户登录shell
-L 锁定用户账户
[root@node5 ~]# tail -1 /etc/passwd
logstash:x:8002:8002::/home/logstash:/bin/bash [root@node5 ~]# id logstash
uid=8002(logstash) gid=8002(logstash) groups=8002(logstash) #修改用户UID
[root@node5 ~]# usermod -u 1002 logstash [root@node5 ~]# id logstash
uid=1002(logstash) gid=8002(logstash) groups=8002(logstash) #修改用户起始组,修改用户GID
[root@node5 ~]# usermod -g 1002 logstash
usermod: group '1002' does not exist [root@node5 ~]# groupmod -g 1002 logstash [root@node5 ~]# id logstash
uid=1002(logstash) gid=1002(logstash) groups=1002(logstash) #修改用户登录shell,设置logstash禁止登陆
[root@node5 ~]# usermod -s /sbin/nologin logstash [root@node5 ~]# grep logstash /etc/passwd
logstash:x:1002:1002::/home/logstash:/sbin/nologin #修改nginx用户的附属组为wheel
[root@node5 ~]# id nginx
uid=8000(nginx) gid=8000(nginx) groups=8000(nginx)
[root@node5 ~]# usermod -aG wheel nginx
[root@node5 ~]# id nginx
uid=8000(nginx) gid=8000(nginx) groups=8000(nginx),10(wheel)
[root@node5 ~]# grep wheel /etc/group
wheel:x:10:nginx

2.更改用户家目录,并把以前家目录里的内容迁移到新的家目录里

[root@node5 ~]# grep elk /etc/passwd
elk:x:1001:1001::/opt/elk:/bin/bash [root@node5 ~]# su - elk
Last login: Tue Oct 13 15:01:37 CST 2020 on pts/0 [elk@node5 ~]$ pwd
/opt/elk
[elk@node5 ~]$ ls
[elk@node5 ~]$ mkdir -p a/b/c
[elk@node5 ~]$ touch a/test.txt
[elk@node5 ~]$ tree ./
./
└── a
├── b
│   └── c
└── test.txt 3 directories, 1 file [elk@node5 ~]$ exit
logout #-m选项会自动创建新目录并且迁移原有内容到新目录里面
[root@node5 ~]# usermod -m -d /home/elk elk [root@node5 ~]# grep elk /etc/passwd
elk:x:1001:1001::/home/elk:/bin/bash [root@node5 ~]# su - elk
Last login: Wed Oct 14 01:10:27 CST 2020 on pts/0 [elk@node5 ~]$ pwd
/home/elk #发现原有内容也迁移过来了
[elk@node5 ~]$ tree ./
./
└── a
├── b
│   └── c
└── test.txt 3 directories, 1 file

3.修改用户注释

[root@node5 ~]# grep elk /etc/passwd
elk:x:1001:1001::/home/elk:/bin/bash [root@node5 ~]# usermod -c "elk是es,logstash,kibana的缩写" elk [root@node5 ~]# grep elk /etc/passwd
elk:x:1001:1001:elk是es,logstash,kibana的缩写:/home/elk:/bin/bash

十.管理用户组

[root@node5 ~]# tail -4 /etc/group
postgres:x:26:elk
esnode:x:8001:elk
elk:x:1001:
logstash:x:1002: [root@node5 ~]# groupadd es
[root@node5 ~]# groupadd -g 1004 kibana [root@node5 ~]# tail -4 /etc/group
elk:x:1001:
logstash:x:1002:
es:x:8002:
kibana:x:1004: #修改es的GID
[root@node5 ~]# groupmod -g 1005 es [root@node5 ~]# tail -4 /etc/group
elk:x:1001:
logstash:x:1002:
es:x:1005:
kibana:x:1004:

linux用户管理:创建用户,删除用户,管理用户,用户配置的更多相关文章

  1. linux命令 - ln - 创建和删除软、硬链接

    linux命令 - ln - 创建和删除软.硬链接 在Linux系统中,内核为每一个新创建的文件分配一个Inode(索引结点),每个文件都有一个惟一的inode号.文件属性保存在索引结点里,在访问文件 ...

  2. Linux下用户的创建与删除

    我们在Linux下创建用户主要有两种方式:adduser和useradd,它们的区别以及主要用法如下: adduser adduser的用法很简单,只需adduser+username即可,如下: s ...

  3. Linux基础学习-用户的创建修改删除

    用户添加修改删除 1 useradd添加用户 添加一个新用户hehe,指定uid为3000,家目录为/home/haha [root@qdlinux ~]# useradd -u 3000 -d /h ...

  4. mysql 数据库备份与还原,用户的创建与删除,用户的密码修改

    1.备份数据库 要退出mysql rimideiMac-23:~ rimi$    mysqldump -u root -p pro >pro.sql ls 查看路径 2.恢复数据库 2.1直接 ...

  5. orcal中创建和删除表空间和用户

    1.创建表空间 create tablespace NW_DATA logging datafile 'F:\oracle\product\10.2.0\oradata\nwdb\NW_DATA.db ...

  6. 学习Linux二(创建、删除文件和文件夹命令)

     转自:http://www.cnblogs.com/zf2011/archive/2011/05/17/2049155.html 今天学习了几个命令,是创建.删除文件和文件夹的,在linux里,文件 ...

  7. Linux环境下oracle创建和删除表空间及用户

    #su - oracle $ sqlplus /nolog SQL> connect / as sysdba --//创建临时表空间 create temporary tablespace te ...

  8. Oracle创建、删除表空间、用户

    1.创建临时表空间 create temporary tablespace linshi tempfile 'e:\linshi.dbf' size 50m autoextend on next 50 ...

  9. linux 软链接的创建、删除和更新

    大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作.同样的,在系统级别也有.在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能有 ...

  10. linux软链接的创建、删除和更新

    大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作.同样的,在系统级别也有.在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能有 ...

随机推荐

  1. Go 语言学习:了解 const 关键字及常量声明

    如果一个变量应该有一个固定的.不能改变的值,你可以使用const关键字. const关键字将变量声明为"常量",这意味着它是不可改变和只读的. 语法 const CONSTNAME ...

  2. Ansible 学习笔记 - 批量巡检站点 URL 状态

    前言 不拖泥带水,不东拉西扯. 速战速决,五分钟学到一个工作用得上的技巧. 通过一个个具体的实战案例,来生动演示 Ansible 的用法. 需求 我需要定期巡检或定时监控我公司的所有站点的首页的可用性 ...

  3. POJ2251 基础bfs

    题目: 你进入了一个3D的宝藏地宫中探寻宝藏到了宝藏,你可以找到走出地宫的路带出宝藏,或者使用炉石空手回家. 地宫由立方体单位构成,立方体中不定会充满岩石.向上下前后左右移动一个单位需要一分钟.你不能 ...

  4. 什么是ip协议二

    前言 续前面一章. 正文 看下ip选项: 看一张图: 这个ip选项一般我们不用看,即使你去搞硬件,那么做c++或者c的人会告诉你填啥,按照他们设置即可. 那么ip是如何传输的呢? 先看这张图,这张图的 ...

  5. Reinforcement Learning (DQN) 中经验池详细解释

    一般DQN中的经验池类,都类似于下面这段代码. import random from collections import namedtuple, deque Transition = namedtu ...

  6. Pytorch-tensor的分割,属性统计

    1.矩阵的分割 方法:split(分割长度,所分割的维度),split([分割所占的百分比],所分割的维度) a=torch.rand(32,8) aa,bb=a.split(16,dim=0) pr ...

  7. django中对模型字段名的限制

    Django 对模型的字段名有一些限制: 一个字段的名称不能是 Python 保留字,因为这会导致 Python 语法错误.比如: class Example(models.Model): pass ...

  8. 前端直接获取用户IP的方法

    前端直接获取用户IP的方法 简单来说就是使用两个接口 一个是太平洋网 <script src="//whois.pconline.com.cn/ipJson.jsp?callback= ...

  9. ping的常用方法

    ping的常用方法 ping +ip tcping +ip+端口号(例如 tcping 127.0.0.1 8080) telnet +ip+端口号 nc -nzv +ip+端口号(linux用)

  10. RocketMQ 千锤百炼--哈啰在分布式消息治理和微服务治理中的实践

    简介: 随着公司业务的不断发展,流量也在不断增长.我们发现生产中的一些重大事故,往往是被突发的流量冲跨的,对流量的治理和防护,保障系统高可用就尤为重要. 作者|梁勇 ​ 背景 ​哈啰已进化为包括两轮出 ...