linux权限踩坑实录

踩坑几天终于解决Git自动部署问题,之前写的文档中还差了一点内容,开启组权限后,需要注意克隆后文件git init后生成的.git文件夹的权限,必须有写入权限,否则push提交依旧报权限问题,查看用户id、组id所在组信息,使用id 用户名命令,显示如下:uid=502(git) gid=0(root) 组=0(root) 特别注意gid 如果gid不是项目所属组的id则会提示权限问题,查看用户信息命令cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
sunchenglong:x:500:500::/home/sunchenglong:/bin/bash
sftp:x:501:502::/home/sftp:/sbin/nologin
git:x:502:99::/home/git:/bin/bash

可以看到git组id为99我就是这个原因导致的虽然git用户在root组中但是所属组其实并非root 这里需要修改99改为root对应的id号既0
打开文件命令vim /etc/passwd
修改git中的99改为0 保存退出,查看项目文件中的.git文件夹所在组是否有写入权限,查看命令ls -l -a有写入权限则push时可以成功自动部署,如果没有写入权限,drwxr-xr-x 8 nobody root 4096 1月 16 18:53 .git修改项目文件夹组权限既chmod g+w /data/projects-Place/coachtest/ -R再次查看ls -l -a

drwxrwxrwx  3 nobody root 4096 1月  16 18:53 .
drwxrwxrwx 11 nobody root 4096 1月  16 18:54 ..
-rw-rw-r--  1 nobody root    2 1月  16 18:53 1.txt
drwxrwxr-x  8 nobody root 4096 1月  16 18:53 .git

可以看到.git已经有写入权限,此时push提交

Counting objects: 3, done.
Writing objects: 100% (3/3), 227 bytes | 227.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: ===============================================
remote: deploying the test web
remote: 正在获取 origin
remote: 来自 /home/gitreport/coachtest
remote:    b26fae5..98e886b  master     -> origin/master
remote: HEAD 现在位于 98e886b del7
remote: web server pull at webserver at time: 2019年 01月 17日 星期四 10:28:56 CST.
remote: ================================================
To 118.190.94.60:/home/gitreport/coachtest.git
   81a5ec3..98e886b  master -> master

没有报错已经成功,打开项目查看更新文件已经成功!到此踩坑结束,总算明白了点Linux的权限问题!

猜你喜欢

转载自blog.csdn.net/weixin_43507521/article/details/86520624