Windows/Linux操作用户权限常用命令

news/2024/9/20 1:38:53/文章来源:https://www.cnblogs.com/xiaoyus/p/18418604

环境:centos7.5(主要),win7

Linux/Centos(权限篇)

一、概述

Linux操作系统,设计用于支持多用户和处理多任务的服务器环境,实施了一套严密的权限控制系统。这一系统主要通过两个核心要素——用户身份和文件权限——来管理和限制对资源的访问。在Linux中,资源的访问权限是基于用户身份来控制的

  • 用户账号类别:
  1. 超级用户——root,权限最高
  2. 普通用户——自定义用户 匿名用户(nobody)类似于Windows中的Guest
  3. 程序用户——控制程序和服务的,无法登陆
  4. 组账号——用户的集合(其实可以认为是用户权限的集合)
  5. 基本组(私有组)——伴随着用户创建而创建 与用户同名(也可以自己设置) 但创建一个用户的时候必有其组
  6. 附加组(公有组)——直接创建空组,可以添加已有的用户,给组设置权限,该组中所有用户都具备此权限
  • UID和GID
  1. UID(User IDentity) ——用户标识号 (默认情况下0表示root 1~999 表示(系统)程序用户 1000~60000 表示(登录)普通用户)
  2. GID(Group IDentity)——组标识号

二、用户账号文件

  • /etc/passwd——保存用户名称、宿主目录、登录shell等基本信息
[root@localhost ~]# tail -3 /etc/passwd
zongjingli:x:1002:1002::/home/zongjingli:/bin/bash
fujingli:x:1003:1003::/home/fujingli:/bin/bash

zongjingli : x : 1002 : 1002 :: /home/zongjingli : /bin/bash ——以冒号分割进行解释

  1. zongjingli——用户账号名称
  2. x——使用加密算法加密的密码,这里是不会显示的
  3. 第一个“1002” —— 用户UID号
  4. 第二个"1002" —— 用户所属本组账号的UID
  5. zongjingli —— 用户全名,可以填写用户详细信息
  6. /bin/bash —— 指定用户的登录Shell
  • /etc/shadow —— 保存用户的密码、账号有效信息
root:$6$oFniodbZANlO7MGa$NficCTUCbLKh8c7B4G8rgPslWrOFHk2/V/6i5SjemoGkW59f1S.hcCSGxx2eEsdv17WB8DyrnAcFoZWMAjCuP/::0:99999:7:::
bin:*:18353:0:99999:7:::

root : 密码密文 : 18353 : 0 : 99999 : 7 : : :——以冒号分隔,下面逐一解释

  1. root——这是超级用户账户的名称。
  2. 密码密文——表示加密算法加密的密码,这里未显示,登录输入该密码是无效的
  3. 18353——这表示密码记录的最后修改日期的内部计数
  4. 0——这表示密码的最短有效期限天数。设置为0意味着密码没有最短有效期限,可以随时更改。
  5. 99999——这表示密码的最长有效期限天数。这个数字通常设置得非常高,以表示密码在一定时间后必须更换。
  6. 7——这表示系统会在密码到期前7天开始提醒用户更换密码
  7. :::——连续的冒号通常用于表示某些字段没有设置或不适用,例如密码和账号过期后的具体操作。

三、管理用户账号

  • 添加用户账号——useradd命令选项
  1. -u ——此选项用于分配给新用户一个特定的用户ID(UID),需要确保该UID尚未被系统中的其他用户占用。
  2. -d ——通过此参数可以为用户指定一个自定义的主目录路径。注意,如果与 -M 选项一起使用,此设置将被忽略。
  3. -e——设置用户账号的失效日期或账户的过期时间,超过这个日期后,用户将无法登录。
  4. -g——指定用户的主要用户组,即用户创建文件时默认所属的组。
  5. -G——此选项允许为用户指定一个或多个附加用户组,用户将同时属于主要用户组和这些附加组。
  6. -M——不创家目录
  7. -s ——此选项用于指定用户的登录shell,即用户登录时使用的命令行界面或shell程序。
[root@localhost ~]# groupadd caiwubu
[root@localhost ~]# useradd -d /home/mike -G caiwubu -s /sbin/nlogin mike
[root@localhost mike]# tail -2 /etc/passwd
fujingli:x:1003:1003::/home/fujingli:/bin/bash
mike:x:1004:1005::/home/mike:/sbin/nlogin
[root@localhost mike]# tail -2 /etc/group
caiwubu:x:1004:mike
mike:x:1005:
[root@localhost mike]# tail -2 /etc/shadow
fujingli:$6$Lnt7cll6$xeBotkG/mGhEXftIugKffR5r4ww7T0tDLkZT4wbPsw5BkttVQhct8PSgtiPF2bBEEPG/wcdCa1UQrYrjLtl2u.:19868:0:99999:7:::
mike:!!:19868:0:99999:7:::
[root@localhost mike]# id mike
uid=1004(mike) gid=1005(mike) 组=1005(mike),1004(caiwubu)
[root@localhost mike]# ls /home/
fujingli  mike  www  zongjingli
  • 设置/更改用户口令(密码)passwd

passwd 选项 … 用户名

  1. -d 清除密码
  2. -l 锁定
  3. -S 查看是否锁还是未锁 (大写!!!)
  4. -u 解锁
[root@lokott ~]# useradd -d /opt/lisi -s /sbin/nologin lisi
[root@lokott ~]# tail -2 /etc/passwd
lokott:x:1000:1000:lokott:/home/lokott:/bin/bash
lisi:x:1001:1001::/opt/lisi:/sbin/nologin   //这里/sbin/nologin是表示用户无法登录
[root@lokott ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:                     	                     //需要你输入密码
无效的密码: 密码少于 8 个字符   	  	//因为输入了简单密码,可以继续输入一次也行,当然复杂密码就没问题
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@lokott ~]# su - lisi
最后一次失败的登录:四 10月 31 18:49:45 CST 2019从 :1:1 上
最有一次成功登录后有 1 次失败的登录尝试。
This account is currently not available.  // 无法登录,因为登录的shell是/sbin/nologin
[root@lokott ~]# pwd
/root
[root@lokott ~]# vim /etc/passwd  		 	  //进入passwd文件中将该用户的/sbin/nologin改为/bin/bash
[root@lokott ~]# su - lisi              	        //root切换用户时不需要输入密码
上一次登录:四 10月 31 18:52:42 CST 2019pts/2 上
[lisi@lokott ~]$ pwd                               //登录lisi用户
/opt/lisi
[lisi@lokott ~]$ su   //相当于su - root  下面的结果表明普通用户切换root时需要密码,输入的密码不会显示
密码:
[root@lokott lisi]# pwd
/opt/lisi
[root@lokott lisi]# cd 
[root@lokott ~]# pwd        			            	//表明切换到root用户
/root
[root@lokott ~]#passwd -l lisi            	//锁定lisi的密码
锁定用户 lisi 的密码 。
passwd: 操作成功
[root@lokott ~]# passwd -S lisi            	//查看lisi用户的密码状态
lisi LK 2019-10-31 0 99999 7 -1 (密码已被锁定。)
[root@lokott ~]# su - lisi
上一次登录:四 10月 31 19:01:10 CST 2019pts/2 上  
[lisi@lokott ~]$ pwd         //可以看出虽然被锁定了但是root可以切换登录且无需密码
/opt/lisi
[lisi@lokott ~]$ 
[root@lokott ~]# passwd -u lisi
解锁用户 lisi 的密码。
passwd: 操作成功
[root@lokott ~]# passwd -S lisi
lisi PS 2019-10-31 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
  • 修改用户账号的属性usermod
  1. -u 修改用户的UID号
  2. -d 修改用户的宿主目录
  3. -e 修改用户账户失效事件
  4. -s 指定用户的登录shell
  5. -l 更改用户登录账户名称
  6. -L 锁定----相当于passwd -l
  7. -U 解锁----相当于passwd -u
[root@lokott ~]# usermod -l zhangsan lisi
usermod: user lisi is currently used by process 67027
[root@localhost ~]# ps -u kaliPID TTY          TIME CMD67027 pts/0    00:00:00 bash
[root@lokott ~]# kill  -9 67027 
Session terminated, killing shell... ...已杀死。
[root@lokott ~]# usermod -l zhangsan lisi
[root@lokott ~]# tail -2 /etc/passwd
mike:x:1001:1001::/opt/mike:/sbin/nolgin
zhangsan:x:1002:1003::/opt/lisi:/bin/bash 
[root@lokott ~]#ls /opt
demo.txt  zongjingli  mike   
[root@lokott ~]# 
  • 删除用户账号userdel

-r 宿主目录一起删除,下面的演示接着上面的操作

[root@localhost /]# cd home/
[root@localhost home]# ls
fujingli  kali  mike  www  zongjingli
[root@localhost home]# userdel mike
[root@localhost home]# ls
fujingli  kali  mike  www  zongjingli 
[root@localhost home]# su mike
su: user mike does not exist  //用户切换失败,删除成功

这里删除mike用户提示已经删除,但是宿主目录却没有删除

重新新建用户

[root@localhost home]# useradd mike
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
正在创建信箱文件: 文件已存在

使用 -r 删除宿主目录

[root@localhost home]# ls
fujingli  kali  mike  www  zongjingli
[root@localhost home]# userdel -r mike
[root@localhost home]# ls
fujingli  kali  www  zongjingli
[root@localhost home]# su mike
su: user mike does not exist  //删除成功

四、管理组账号

  • 组账号文件——与用户账号文件类似
  1. /etc/group:保存组账号基本信息
  2. /etc/shadow:保存组账号的密码信息(一般不会设置)

注:通常使用cat,tail -n,head -n,n表示显示的数量,查看数据,比如head -5 /etc/group查看用户的分组信息

  • 添加组账号groupadd命令
    groupadd 【选项】【组名】

添加组test

[root@localhost ~]# groupadd test
[root@localhost ~]# tail -2 /etc/group
kali:x:1006:
test:x:1007:

-g ——指定GID(Group ID,简称GID)

[root@localhost ~]# groupadd test2 -g 1111
[root@localhost ~]# tail -2 /etc/group
test:x:1007:
test2:x:1111:
  • 添加组成员和删除组成员

添加——gpasswd

小提示:添加和组相同名称的用户需要使用 -g 参数,命令如下:

[root@localhost ~]# groupadd jishubu  //向组中添加 技术部
[root@localhost ~]# useradd jishubu  //添加和组相同名称的 用户
useradd:jishubu 组已经存在 - 如果您想将此用户加入到该组,请使用 -g 参数。
[root@localhost ~]# useradd -g jishubu jishubu
[root@localhost ~]# tail -2 /etc/passwd
kali:x:1005:1006::/home/kali:/bin/bash
jishubu:x:1006:1112::/home/jishubu:/bin/bash

-a 向组中添加一个用户 不会覆盖成员(也就是不会把原来已经在组里面的用户给踢出去,而是添加用户)

[root@localhost ~]# gpasswd -a kali jishubu
正在将用户“kali”加入到“jishubu”组中
[root@localhost ~]# id kali
uid=1005(kali) gid=1006(kali) 组=1006(kali),1112(jishubu)

-d 从组中删除一个用户

[root@localhost ~]# gpasswd -d kali jishubu
正在将用户“kali”从“jishubu”组中删除
[root@localhost ~]# id kali
uid=1005(kali) gid=1006(kali) 组=1006(kali)

-M 逗号分隔设置组的成员列表,会覆盖组成员,将原有的给踢出

[root@localhost ~]# tail -3 /etc/passwd
fujingli:x:1003:1003::/home/fujingli:/bin/bash
kali:x:1005:1006::/home/kali:/bin/bash
jishubu:x:1006:1112::/home/jishubu:/bin/bash
[root@localhost ~]# gpasswd -M jishubu,kali,fujingli jishubu
[root@localhost ~]# tail -3 /etc/group
test:x:1007:
test2:x:1111:
jishubu:x:1112:jishubu,kali,fujingli
  • 删除——groupdel 组账号
    groupdel 命令的使用是有一定限制的,它仅能用于删除那些没有被设置为任何用户主组的群组。换言之,如果一个群组仍然是某个用户的主群组,那么就不能通过 groupdel 命令来将其删除,例如。
[root@localhost ~]# tail -3 /etc/passwd
fujingli:x:1003:1003::/home/fujingli:/bin/bash
kali:x:1005:1006::/home/kali:/bin/bash
jishubu:x:1006:1112::/home/jishubu:/bin/bash
[root@localhost ~]# tail -3 /etc/shadow
fujingli:$6$Lnt7cll6$xeBotkG/mGhEXftIugKffR5r4ww7T0tDLkZT4wbPsw5BkttVQhct8PSgtiPF2bBEEPG/wcdCa1UQrYrjLtl2u.:19868:0:99999:7:::
kali:$6$N4l9Dp65$pb77cx85m7GOttF6Z5Oo.QXiB7/Hgl7b6jkUzspsPZ3t10JjD5uAUjPjZLsiTcttYr1KWs09PzWik4YglZm8W/:19868:0:99999:7:::
jishubu:!!:19868:0:99999:7:::
[root@localhost ~]# groupdel kali
groupdel:不能移除用户“kali”的主组

若需要删除该组,则使用

[root@localhost ~]# userdel kali
[root@localhost ~]# groupdel kali
groupdel:“kali”组不存在  //删除成功

命令lastb是用来查看最近登录的信息

四、文件/目录的权限及归属

  • 访问权限
  1. 读取r:允许查看文件内容、显示目录列表
  2. 写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
  3. 可执行x:允许运行程序、切换目录
  • 归属(所有权)
  1. 属主:用于该文件或目录的用户账号
  2. 属组:用于文件或目录的组账号
    例如
[root@localhost home]# ls -l
总用量 0
drwx------ 2 fujingli   fujingli   62 5月  25 23:48 fujingli
drwx------ 2 jishubu    jishubu    62 5月  26 05:43 jishubu
drwx------ 2       1007       1113 62 5月  26 06:17 kali
drwxr-xr-x 2 www        www         6 5月  26 00:01 www
drwx------ 2 zongjingli zongjingli 83 5月  26 00:44 zongjingl

我们拿drwxr-xr-x 2 www www 6 5月 26 00:01 www 举例

  1. d:表示文件类型(d表示目录、l表示链接文件、c表示字符设备(输入输出)文件、b块设备(存储)文件 ,-表示 普通文件)
  2. rwx,r-x,r-x分别代表着属主权限(可读,可写,可执行),属组权限(可读,可执行),other权限(可读,可执行)
  3. 2:表示子目录数量
  4. 第一个www:文件属主
  5. 第二个www:文件属组
  6. 6:表示文件大小
  7. 5月 26 00:01:创建时间
  8. www:目录名称
  • 设置文件和目录的权限chmod 命令(-R 递归)

chmod 【ugoa】【±=】【rwx】

【ugoa】:

数字 含义
u 代表文件所有者(Owner)
g 代表与文件所有者同组的用户(Group)
o 代表其他用户(Others)
a 代表所有用户(All),即u、g、o的集合

chmod nnn 文件或目录(优先选择)

nnn:

数字 含义
7(4+2+1) 读、写、执行权限(rwx)
6(4+2) 读、写权限(rw-)
5(4+1) 读、执行权限(r-x)
3(2+1) 写、执行权限(-wx)
2 写权限(-w-)
1 执行权限(--x)
[root@localhost abc]# chmod u+x 2.sh   //为属主添加 x 可执行权限
[root@localhost abc]# ls -l
总用量 0
-rwxr--r-- 1 root root 0 5月  26 07:45 2.sh
[root@localhost abc]# chmod ug+x 2.sh   //为属主和属组添加可执行权限
[root@localhost abc]# ls -l
总用量 0
-rwxr-xr-- 1 root root 0 5月  26 07:45 2.sh
[root@localhost abc]# chmod ugo+x 2.sh   //为属主、属组和其他用户添加可执行权限
[root@localhost abc]# chmod a+w 2.sh   //为所有用户添加可写权限
[root@localhost abc]# ls -l
总用量 0
-rwxrwxrwx 1 root root 0 5月  26 07:45 2.sh
[root@localhost abc]# ls -l
总用量 0
-rwxr-xr-x 1 root root 0 5月  26 07:45 2.sh
[root@localhost abc]# chmod 777 2.sh 
[root@localhost abc]# ls -l
总用量 0
-rwxrwxrwx 1 root root 0 5月  26 07:45 2.sh
  • 更改所有者和所属组chown 命令(-R 递归)
[root@localhost /]# chown -R root:caiwubu abc/
[root@localhost /]# ls -l abc/
总用量 0
-rwxrwxrwx 1 root caiwubu 0 5月  26 07:45 2.sh

小知识:linux系统使用 ll 可以直接查看该目录下所有文件以及文件夹的所有权限信息

linux/centos其他命令

systemctl stop firewalld: 关闭防火墙
pwd :查看当前所在目录的路径
rm 文件名:删除指定文件(会提示是否删除)
rm -f 文件名:强制删除指定文件(不会有提示)
rm -r 目录名:删除指定目录(会提示是否删除)
rm -rf 目录名:强制删除指定目录(不会有提示)
cp :文件名 复制后的名称
cp -r : 目录名 复制后的名称
mv :重命名|剪切
cat:查询文件所有内容。--不适合文件内容多的。
more:查看当前窗口大小的内容。空格表示翻页 回车表示下一行。
head:查看前n行内容。
tail:查看后n行内容。
head -n 行数 文件名(head -5 文件名): 查看前五行内容
tail -n 行数 文件名 (tail -5 文件名):查看后五行内容

find 指定目录 -name 文件名 :查找


压缩:

tar -zcvf 压缩后的名称 被压缩的目录或文件名

z:表示解压缩固定标志
c:表示压缩
v:显示压缩详情
f:文件


解压:

tar -zxvf 压缩的文件名 (默认解压到当前目录)

-x:解压

tar -zxvf 压缩的文件名 -C /解压后的目录

Windows系统(概要)

常见的简单用户管理命令

#查看当前登陆用户
whoami	
#查看所有用户
net user  
#查看admin用户信息
net user admin 
#新增用户
net user username password /add
#修改用户密码
net user username password
#删除用户
net user username /delete
#查看电脑名称
hostname
#查看系统信息
systeminfo
#查看所有组
net localgroup
#查看某一个组所有用户
net localgroup groupname
#新增组
net localgroup groupname /add
#删除组
net localgroup groupname /delete
#向组中添加用户
net localgroup groupname  username /add
#向组中删除用户
net localgroup groupname username/delete

其他问题

一.哈希值的两种破解方式?

1.暴力破解
2.撞库

二.什么是用户账号sid?

用户账号的SID(Security Identifier)是一个唯一的、系统定义的值,用于在安全上下文中标识用户、组、计算机账户或其他安全主体。SID是由系统分配的,用于在安全策略中标识特定的账户,而不是使用用户名。

SID通常具有以下特点:

  1. 唯一性:每个用户或组的SID在Windows系统中是唯一的,即使两个用户具有相同的用户名,他们的SID也会不同
  2. 不可预测性:SID是由系统动态生成的,不是基于用户名或其他容易预测的信息。
  3. 持久性:用户的SID在账户的整个生命周期内保持不变,即使用户被删除,只要账户对象仍然存在于
    Active Directory中,其SID也不会改变。
  4. 安全性:SID用于访问控制和安全策略的实施,它允许系统准确地控制对资源的访问。
  5. 透明性:对于普通用户来说,SID是透明的,用户通常不需要直接处理SID。

三.什么是Guest(来宾用户)?

是一个在操作系统中预先配置好的用户账户,通常具有受限的权限和访问能力。来宾用户账户的目的是为临时或偶尔的用户提供访问计算机系统的便利,而无需为他们创建独立的用户账户。

四.事件查看器的作用 ?

使用命令eventvwr.msc调出事件查看器,它的作用有俩面型

  • 系统管理员通常用来架空系统活动,诊断问题,安全审计,性能分析,配置管理,和查看应用程序日志。
  • 而黑客则不同,它可利用事件查看器来进行信息收集寻找漏洞追踪攻击路径清楚痕迹分析用户行为监控系统活动以及利用系统错误从而造成不必要的安全隐患.

在各种远程桌面连接不上的时候思路的考虑?
--拒绝通过远程桌面服务登录

每日小知识

在计算机中时间是从什么时候开始计算的?
答:1900年

什么是socket?
参考:https://blog.csdn.net/zhangay1998/article/details/123504421

欢迎关注我的公众号“小羽网安”,原创技术文章第一时间推送。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799371.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kali下安装与使用BeEF:反射型与存储型XSS攻击、Cookie会话劫持、键盘监听及浏览器操控技巧

早八人,护网在即,该学习了~前言 BEEFXSS(Browser Exploitation Framework XSS),更常见的称呼是BeEF(The Browser Exploitation Framework),是一个开源的浏览器漏洞利用框架。它由Michał Zalewski于2006年创建,旨在帮助渗透测试人员评估Web浏览器的安全性,发现并利用…

phpStudy 小皮 Windows面板 存在RCE漏洞

靶场资料后台自行领取【靶场】Phpstudy小皮面板存在RCE漏洞,通过分析和复现方式发现其实本质上是一个存储型XSS漏洞导致的RCE。通过系统登录用户名输入处的XSS配合系统后台自动添加计划任务实现RCE。这是登录成功的界面登录成功了就来和大佬们喝喝茶吧~首先在用户名登录的地方…

伪静态注入的总结

伪静态页面渗透 在日常的测试中,经常会遇到静态页面,尤其是政府类的站点(前提经过授权),此时就会非常的棘手,在下多试验后,发现以下思路或可以帮助我们跨越这个障碍。 伪静态即是网站本身是动态网页如.php、.asp、.aspx等格式动态网页有时这类动态网页还跟“?”加参数来…

文件上传10种waf绕过姿势

基础篇:https://mp.weixin.qq.com/s/od0djMG4iwO755N2YgDAHg 环境搭建 首先去官网下载安全狗,进行网站配置,或者后台回复【安全狗】,靶场源码和waf软件都准备好了,都是最新版本的,直接下载就行安全狗配置文件防护规则这里用upload-labs中的第六关进行文件上传测试第六关是…

什么是域?如何搭建?

域 域是计算机网络中的一个逻辑组织单元,具有安全边界,实现资源的集中管理和共享。它通常分为,单域 ,多域,父域,子域 ,域树(tree), 域森林(forest),DNS域名服务器。 单域和多域 单域指网络中所有计算机和用户隶属于同一域,便于集中管理;多域则将网络划分为多个独…

css布局之Grid布局

前言 最近了解到一种新的布局:grid布局(网格布局),grid并不是最近才看到的,以前在设置display的时候,会在属性值列表中看到,但却没有给过太多关注。一次偶然机会听到:对于九宫格布局的实现,grid布局会比flex布局实现起来更方便,作为flex深度使用者,这句话无疑引起了…

windows安装OpenSSL定义OPENSSL_MODULES

一、安装方式一: 1.1 下载和安装下载其他人做的便捷版安装包http://slproweb.com/products/Win32OpenSSL.html 1.2 配置环境变量:OPENSSL_HOME 1.3 配置环境变量:OPENSSL_MODULES

Ros2 - Moveit2 - 使用 Bullet 进行碰撞检查

除了灵活碰撞库 (FCL) 之外,Bullet 碰撞检测也可用作碰撞检查器。本教程以可视化碰撞教程为基础,展示碰撞。 此外,还提供连续碰撞检测(CCD),并通过 Bullet 进行演示。 入门 如果您还没有这样做,请确保您已经完成入门指南中的步骤。 运行代码 使用 Roslaunch 启动文件直接…

广播数据包报文格式

BLE报文由不同的域组成,如果域的长度超过一个字节,就涉及到先传输字节的低位还是高位的问题,这里分字节序和比特序: 字节序:大多数的多字节域都是从低字节开始传输。但是,并不是所有的多字节域都是从低字节开始传输。 比特序:各个字节传输时,每个字节都是从低位开始。前…

Java 23连夜官宣发布,IDEA亲测可用!

0 前言 官宣发布:IDEA已支持下载:1 JEPs JEP 455 Primitive Types in Patterns, instanceof, and switch (Preview) 通过允许在所有模式上下文中使用原始类型模式,增强了模式匹配,并扩展了 instanceof 和 switch 以适用于所有原始类型。这是一项预览语言特性。 JEP 466 C…

ubuntu编译grpc protobuf

参考:Ubuntu系统中本地编译并安装grpc的C++版本及测试 - 知乎 (zhihu.com) 安装依赖:# 这些可能都已经安装了 sudo apt-get install pkg-config autoconf automake libtool make g++ unzip # 下面的可能没安装 sudo apt-get install libgflags-dev libgtest-dev sudo apt-ge…