我要表白网站在线制作,家政公司注册的需要哪些条件,wordpress cms手机主题,wordpress添加地图目录 一、基本信息1.1 系统信息1.2 git版本[^1]1.2.1 服务器端git版本1.2.2 客户端TortoiseGit版本1.2.3 客户端Git for windows版本 二、创建git用户和群组[^2]2.1 使用groupadd创建群组2.2 创建git用户2.2.1 使用useradd创建git用户2.2.2 配置新建的git用户ssh免密访问 2.3 创… 目录 一、基本信息1.1 系统信息1.2 git版本[^1]1.2.1 服务器端git版本1.2.2 客户端TortoiseGit版本1.2.3 客户端Git for windows版本 二、创建git用户和群组[^2]2.1 使用groupadd创建群组2.2 创建git用户2.2.1 使用useradd创建git用户2.2.2 配置新建的git用户ssh免密访问 2.3 创建git仓库文件夹2.4 切换到项目文件夹初始化git仓库 三、配置权限3.1 直接使用zero账户访问3.2 通过gpasswd设置git仓库权限3.3 设置git_user的权限3.4 禁止git_user通过ssh登录服务器 一、基本信息
1.1 系统信息
zeroubuntu:~$ uname -a
Linux ubuntu 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux1.2 git版本1
1.2.1 服务器端git版本
zeroubuntu:~$ git --version
git version 2.34.11.2.2 客户端TortoiseGit版本 1.2.3 客户端Git for windows版本
$ git --version
git version 2.38.1.windows.1二、创建git用户和群组2
2.1 使用groupadd创建群组
zeroubuntu:~$ sudo groupadd git # 创建git群组
[sudo] password for zero:
zeroubuntu:~$ getent group git # 查询git群组信息
git:x:1001:2.2 创建git用户
2.2.1 使用useradd创建git用户
zeroubuntu:/etc/ssh$ sudo useradd -m -g git git_user # 创建用户并指定初始区组为git创建家目录
zeroubuntu:~$ id git_user # 查询用户基本信息
uid1001(git_user) gid1001(git) groups1001(git)
zeroubuntu:/etc/ssh$ sudo passwd git_user # 修改用户密码不修改密码可能后续ssh无法登录
New password:
Retype new password:
passwd: password updated successfully此处创建用户的时候就指定初始群组为git了亦可以先行创建用户然后通过gpasswd将用户添加到创建的git群组中。
2.2.2 配置新建的git用户ssh免密访问
因为ssh的文件存储的是在配置用户家目录的.ssh文件夹下所以新建的用户并不能直接使用管理用户之前配置的ssh密钥需要重新配置ssh配置才可正常使用。
zeroubuntu:~$ sudo cp .ssh/authorized_keys /home/git_user/.ssh/authorized_keys # 拷贝密钥文件到新用户家目录下zeroubuntu:~$ sudo chown -R git_user /home/git_user/.ssh/authorized_keys # 修改拥有者
[sudo] password for zero:
zeroubuntu:~$ sudo chgrp -R git /home/git_user/.ssh/authorized_keys # 修改拥有者群组
zeroubuntu:~$ sudo getfacl /home/git_user/.ssh/authorized_keys# 查询文件权限
getfacl: Removing leading / from absolute path names
# file: home/git_user/.ssh/authorized_keys
# owner: git_user
# group: git
user::rw-
group::---
other::---2.3 创建git仓库文件夹
# 创建文件夹可以根据自己需求创建文件夹一般项目文件放置到mnt目录下
# 不要在根目录直接创建仓库文件夹否则由于权限问题git会无法访问到仓库。
zeroubuntu:~$ sudo mkdir /mnt/git # 切换到仓库文件夹中创建项目文件夹
zeroubuntu:~$ cd /mnt/git
zeroubuntu:/mnt/git$ ll
total 8
drwxr-xr-x 2 root root 4096 Sep 9 22:16 ./
drwxr-xr-x 3 root root 4096 Sep 9 22:16 ../zeroubuntu:/mnt/git$ sudo mkdir testproject
zeroubuntu:/mnt/git$ ll
total 12
drwxr-xr-x 3 root root 4096 Sep 9 22:16 ./
drwxr-xr-x 3 root root 4096 Sep 9 22:16 ../
drwxr-xr-x 2 root root 4096 Sep 9 22:16 testproject/小插曲苦于每次sudo都要输入密码所以将zero账户的默认群组改成sudo同时将账户添加到root群组中省去每次sudo都需要输入密码。
# 实测过程中发现此操作可以解决一部分不过有的指令还是需要输入密码后续再研究研究怎么处理。
zeroubuntu:~$ sudo usermod -g sudo zero
zeroubuntu:~$ id zero
uid1000(zero) gid27(sudo) groups27(sudo),4(adm),24(cdrom),30(dip),46(plugdev),110(lxd)
zeroubuntu:~$ sudo gpasswd -a zero root
Adding user zero to group root2.4 切换到项目文件夹初始化git仓库
# 切换到项目文件夹
zeroubuntu:~$ sudo mkdir /mnt/git # 初始化项目库注意需要使用root权限然后使用--bare参数
zeroubuntu:/mnt/git/testproject$ git init --bare
/mnt/git/testproject/branches/: Permission denied
zeroubuntu:/mnt/git/testproject$ sudo git init --bare
hint: Using master as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch name
hint:
hint: Names commonly chosen instead of master are main, trunk and
hint: development. The just-created branch can be renamed via this command:
hint:
hint: git branch -m name
Initialized empty Git repository in /mnt/git/testproject/可以查看下仓库的权限具体如下
zeroubuntu:/mnt/git/testproject$ cd ..
zeroubuntu:/mnt/git$ ll testproject
total 40
drwxr-xr-x 7 root root 4096 Sep 9 22:21 ./
drwxr-xr-x 3 root root 4096 Sep 9 22:16 ../
drwxr-xr-x 2 root root 4096 Sep 9 22:21 branches/
-rw-r--r-- 1 root root 66 Sep 9 22:21 config
-rw-r--r-- 1 root root 73 Sep 9 22:21 description
-rw-r--r-- 1 root root 23 Sep 9 22:21 HEAD
drwxr-xr-x 2 root root 4096 Sep 9 22:21 hooks/
drwxr-xr-x 2 root root 4096 Sep 9 22:21 info/
drwxr-xr-x 4 root root 4096 Sep 9 22:21 objects/
drwxr-xr-x 4 root root 4096 Sep 9 22:21 refs/可以看出目前权限为root需要手动配置权限用户才能正常访问。
三、配置权限
3.1 直接使用zero账户访问
由于创建的项目权限有的文件权限不足我们就先给他修改下给所有文件充足的权限先确保能正常访问 配置完之后仓库的默认权限是root我们使用zero账户可以访问如下 若账户未通过2.2.2章节配置免密登录时此时使用新建用户无法下载,如下一直卡着无法克隆下来下图是win11系统没有提示换成win10系统后会提示需要输入密码
3.2 通过gpasswd设置git仓库权限
# 将git仓库的权限配置给git群组-R表示所有子项目相同设置-m表示设定后续参数g表示设置群组信息
zeroubuntu:/mnt$ sudo setfacl -R -m g:git:rwx git
zeroubuntu:/mnt$ ll git
total 12
drwxrwxr-x 3 root root 4096 Sep 9 22:16 ./
drwxr-xr-x 3 root root 4096 Sep 9 22:16 ../
drwxrwxr-x 7 root root 4096 Sep 9 22:21 testproject/
zeroubuntu:/mnt$ getfacl git
# file: git
# owner: root
# group: root
user::rwx
group::r-x
group:git:rwx
mask::rwx
other::r-x3.3 设置git_user的权限
多用户使用时建议修改git群组的权限不给git群组多余的权限只提供指定项目文件夹的权限即可这样新用户只能有限的访问git项目无法修改系统参数。
3.4 禁止git_user通过ssh登录服务器
通过修改用户的shell可以有效的管理用户的登录只需要将用户的shell设置为git-shell即可限制用户只能通过ssh拉取git库但是无法通过ssh访问服务器。
zeroubuntu:~$ sudo usermod -s /bin/git-shell git_user
[sudo] password for zero:
zeroubuntu:~$ getent passwd git_user
git_user:x:1004:1004::/home/git_user:/bin/git-shell修改后尝试使用git账户访问服务器被拒绝了。
PS C:\WINDOWS\system32 ssh git_user192.168.60.3
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-83-generic x86_64)* Documentation: https://help.ubuntu.com* Management: https://landscape.canonical.com* Support: https://ubuntu.com/advantageSystem information as of Wed Sep 13 01:09:10 AM UTC 2023System load: 0.31298828125 Processes: 222Usage of /: 37.5% of 9.75GB Users logged in: 1Memory usage: 12% IPv4 address for ens33: 192.168.60.3Swap usage: 0%* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8sjust raised the bar for easy, resilient and secure K8s cluster deployment.https://ubuntu.com/engage/secure-kubernetes-at-the-edgeExpanded Security Maintenance for Applications is not enabled.15 updates can be applied immediately.
3 of these updates are standard security updates.
To see these additional updates run: apt list --upgradableEnable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro statusLast login: Wed Sep 13 01:07:57 2023 from 192.168.60.1# 这里因为git-shell未启动所以报错然后直接关闭连接了
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.60.3 closed.
PS C:\WINDOWS\system32注这里我又做了下尝试将shell改成随便编的“test-shell”结果同样无法登录而且变成无法免密登录了而且即使输入正确的密码也无法访问同时git也无法访问。
PS C:\WINDOWS\system32 ssh git_user192.168.60.3
git_user192.168.60.3s password:
Permission denied, please try again.
git_user192.168.60.3s password:
Permission denied, please try again.
git_user192.168.60.3s password:
git_user192.168.60.3: Permission denied (publickey,password).git仓库配置过程详见Ubuntu Server搭建Git服务器 ↩︎ 关于ubuntu的用户和群组管理可参考Linux学习笔记-Ubuntu系统用户、群组、权限管理 ↩︎