手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

利用树莓搭建NFS遇到的一些问题及解决

为什么用树莓来搭NFS也是有一些原因的,其中有一个比较小烦的原因就是M1没法用虚拟机,因此有部分开发只能继续在以前的MBP2018上处理了。然后我又不想背着代码到处跑和到处拷来拷去的,不用说什么GIT之类的,用GIT是肯定需要的,但一些配置和环境,还是意味着我得经常同步,之前是用synceverything(好象是这个)。但也还是麻烦,于是就想着是不是直接用NFS来解决?

1、如何搭建nfs(ubuntu\debian)
2、权限如何设置
3、MAC访问no permission怎么处理

现在我们一个个的来

1、在ubuntu\debian系上搭建NFS其实也算是比较容易的,直接运行:sudo apt install nfs-kernel-server,几乎就没问题了。如果有,根据提示走就OK,然后在/etc目录下创建exports文件,并设置共享目录,格式很简单:“/要共享的目录 IP(权限)”,每行一条记录。比如我要共享/home/wwwroot目录,只允许局域网的机器 进行访问,那就是:/home/wwwroot 192.168.0.0/24(rw,sync,insecure,no_root_squash)。

2、是不是很简单?如果单个IP,就不需要子网掩码,括号里的内容其实也比较好懂,rw,可读写。sync,同步,no_root_squash,nobody权限,insecure,则是允许通过finder等工具直接进行访问。

参数no_root_squash的其作用是:NFS客户端使用共享目录的用户,如果是root 的话,所有的操作均在服务器端映射为root用户,拥有共享目录的root权限!
 默认情况使用的是相反参数root_squash:在登入 NFS 主机export目录的使用者如果当root时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份。

3、客户端访问,mac有两种访问方式,1种是直接通过finder,另一种是命令行,finder,就是菜单中的:查找服务器;命令行的话更简单:sudo mount -o rw -t nfs 192.168.0.100:/home/wwwroot /Users/gouki/xxx。如果发现不能挂载,则可能是mac的权限问题,mac默认低于1024的端口不开放,则需要用到:sudo mount_nfs -o resvport 192.168.0.100:/home/wwwroot /Users/gouki/xxx

挂载成功后,也可以更新到/etc/fstab中,变成一个永久的挂载盘符。

问题出在哪里呢?出现在finder中的内容,你会发现无法更新无法删除,只能用sudo权限,否则都会出现no permission。这其实是因为两台电脑的用户默认不一样,可以在客户端运行id,看一下自己的用户组,类似这样:

XML/HTML代码
  1. uid=501(gouki) gid=20(staff) groups=20(staff),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore)  

 

要解决这个问题,就得到服务器上新建这个用户,并指定UID为501,运行:useradd -u 501 gouki进行添加。然后为指定的目录设置权限:chfacl -m gouki:rwx -R /home/wwwroot,如果直接运行,你会发现提示:command not found,命令不存在?但网上的各种教程,都是让运行chfacl。事实上在debian下面,应该是用:setfacl,参数完全一样。

至此,全部设置完毕,也可以正常访问了。

参考 :

1、https://blog.csdn.net/weixin_33367083/article/details/114323657

2、https://blog.csdn.net/zyqblog/article/details/79226826#23-%E6%9D%83%E9%99%90%E6%8E%A7%E5%88%B6-acl

3、https://linuxconfig.org/how-to-set-up-a-nfs-server-on-debian-10-buster#h5-conclusion

4、https://blog.csdn.net/qq_29663071/article/details/80668157

5、https://thornelabs.net/posts/operation-not-permitted-mounting-nfs-share-on-os-x-mountain-lion.html

---

要查看当前所有mount的数据,可以用showmount。

showmout命令对于NFS的操作和查错有很大的帮助. 

-a:这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器. 

-e:显示指定的NFS SERVER上export出来的目录.

全国支付牌照拥有公司查询

 网上的一些查询教程已经不对了,是因为人行改版,目前查询 地址在:http://www.pbc.gov.cn/zhengwugongkai/4081330/4081344/4081407/4081702/index.html,入口还是那个入口:登录首页(http://www.pbc.gov.cn/),进入政务公开,在左侧菜单找到:行政执法信息,行政审批公司。支付的就在第一条

国内目前有232家有支付牌照的公司,有39家已经被注销,想想多可惜啊,要是活到现在,哼哼。

---
仔细看了一下,其中是有一部分公司是被别人收购了,还有一部分主动注销的,是因为业务都是:预付卡发行和管理,状态是不予续展。看来是这块业务上面不搞了。

 这一家,感觉有点损失大啊,http://www.pbc.gov.cn/zhengwugongkai/4081330/4081344/4081407/4081702/4081749/4081786/4149884/index.html,有互联网支付牌照,但却在2016-8-28(于2016年1月5日注销)。。。

MAC连接不上安卓机的处理

 如果MAC连接不上安卓机需要从几个地方进行排查:

1、adb 是否有安装 ,adb start-server / adb devices进行一下看看,如果确实有安装,记得将adb的目录放到PATH中,以防万一
2、安卓机上是否开启了开发者模式,同时允许USB调试
如果开启了,运行adb devices看看是否在列表里,如果还是没有
3、运行:system_profiler SPUSBDataType,找到你的手机型号,看一下你的USB口对应的Vendor ID
4、vim ~/.android/adb_usb.ini ,如果文件不存在会自动创建的,将刚才看到的VendorID复制进去,例如:0x0a9d
5、如果你测试机很多,可以每行1个,不要出现空行,以防万一
6、重启adb,adb kill-server && adb start-server && adb devices,这时候应该可以看到了。如果还是看不到,重新插拔一下手机。

至此,已经解决我小米10连接不上的问题。

小米手机关闭广告方法

 一直用小米的手机作为备机,其实用用还挺好的。比如家庭守护之类的,可以管理小朋友的手机,但广告确实也是一堆。
 
一、对小爱同学说 「关闭系统广告」
二、设置里面搜索 「广告服务」,选择关闭
三、应用商店 ->我的 ->设置 ->推荐
四、天气 ->设置 ->用户体验计划 ->有三项可以全关
五、日历 ->找到三个点 ->设置 ->用户体验计划 ->内容推广
六、浏览器 ->设置 ->高级设置 ->个性化推荐」进行优化。
 
其他还有不少,基本上都能关,但就是要一个个的设置
 
 
---EOF
家庭守护其实可以给老年人装,至少可以禁止他们安装程序,这样你弄好之后,就几乎不用担心他们偶尔点链接下载一些不该下的程序了。这点挺好

Laravel 修改 Hash的默认driver 为Md5

写这一篇记录的时候,是因为在尝试用Nova做后台,因为是基于老的数据库,所以用户这一块在登录的时候判断密码是否正确就验证不通过了。默认laravel的hashing用的是bcrypt,而老数据库,大家都懂的,明显是md5,然后是不是加盐(salt),就看实际情况了。

对于Laravel来说,hasher的调整是在app/config/hashing.php里进行配置,但默认的是bcrypt。配置文件里直接就说了,【Supported: "bcrypt", "argon", "argon2id"】,那,MD5怎么办?

如果只是为了登录,那当然直接改Login方法就行了。如果不改Login方法,甚至想一行代码都不改,最好就是实现一个md5的驱动,同时让driver设置为md5即可。

网上的教程都是写一个Md5ServiceProvider,然后app->make('hash'),将它直接修改为Md5。这样带来的另一个问题,你反而不能直接用一些默认的方法了,比如Hash::make和Hash::check,因为整个hash都替换了。

正确的方法是,实现一个Md5的Hasher,然后,扩展一个方法出来,相当于实现了一个md5的driver,这时候再调整hashing中将driver设置为md5即可。此时,你再调用Hash::make,返回的就是md5后的结果,也支持参数(参数功能需要自己开发,比如 Hash::make('123',['salt'=>11]),即为md5加盐,也可以支持type ='suffix' 或者其他,甚至可以 double salt。so easy ~~~~)

---EOF

没有附上代码,因为实现MD5功能实在太简单了,关键的就是不要破坏性的增加或者替换功能,这才是重中之重。