Linux文件及文件夹权限问题
最近使用 python 写了段代码实现实时获取 公司运维添加的 登录服务器必须要的 FreeOTP的动态码,快速实现登录,不用每次手动登录.但是在配置 ssh脚本的时候 由于.ssh文件夹的权限太小导致程序执行失败,所以粗暴的执行了如下命令
sudo chmod -R 777 /Users/wsq/.ssh/
,将文件夹权限改为最大的,程序成功运行.结果就是这个动作卖下了祸根,从git 拉取所有项目代码都不行.
报错信息如下:大概意思就是私钥所在文件夹权限太宽,不允许访问git
那怎么办,只能将文件夹权限设置回默认值,执行 ls -l 命令查看 .ssh 文件夹下文件的默认权限
悲催都变成了 -rwxrwxrwx
但是执行命令的时候目录权限是用数字表示的,这里查看显示的是字符串,两边是什么关系,怎么对应的.
后面才知道,linux文件及文件夹的权限是使用三组二进制数字表示的,依次为:User、Group、及Other的权限。
每个角色使用 三个二进制数字表示权限,三个数字分别表示 读,写,运行. 1 表示有权限 0 表示没有
rwx 表示 有读,写,运行的权限表示成二进制就是 111 也就是10进制的 7
sudo chmod -R 777 /Users/wsq/.ssh/ 命令 R 后面的数字就是三个角色的 三组权限的 10进制值
777 表示为二进制就是 111 111 111 也就是三个角色都有读,写,运行的权限.
默认 git 相关的两个文件 权限分别是 id_rsa -rw——— 二进制就是110 000 000 十进制就是 600
id_rsa.pub -rw-r--r—@ 二进制就是 110 010 010 十进制就是 644
所以分别执行 :
sudo chmod -R 600 /Users/wsq/.ssh/id_rsa
sudo chmod -R 644 /Users/wsq/.ssh/id_rsa.pub
问题圆满解决.