1

特定のgitoliteユーザーがどのユーザー名を持っているかが明確でない場合があります。ワイルドリポジトリのアクセス権を制御したい場合は、ユーザー名を知っている必要があります。明らかな解決策の1つは、ユーザー名を尋ねることです。私たちの環境では、ユーザー自身がユーザー名を知らないことがあるため、管理者にユーザー名の入力を求められるのが最も一般的なケースです。

これは少し不便です。たとえば、使用可能なすべてのユーザー名を表示するコマンドなど、簡単な解決策かどうかを知りたいと思います。そうでない場合、そのようなスクリプトを作成する方法とそれにアクセスする方法について何か提案はありますか?

4

4 に答える 4

1

彼が望んでいたのは、他のユーザーに割り当てられたユーザー名を一覧表示する方法だったと思います。彼の懸念は、管理者がpubkeyファイルを追加するときに名前を入力した可能性があることです。彼に私の「id_rsa.pub」を送ったとしましょう。彼はそれを「sitaram.pub」ではなく「sitram.pub」として保存します。confファイルの権利も同様にスペルが間違っている限り、これに気付かないかもしれません。

自分のリポジトリへのアクセスを許可したい人には、1つの選択肢しかありません。アクセスを許可したい各人に「sshgit @ host info」を実行するように依頼し、表示されたユーザー名を報告します。

管理者以外のユーザーが他のすべてのユーザー名を照会できるようにすることは、情報開示の問題の一部です。

もう1つの部分は、HTTPモードなどを使用している場合、認証された(認証可能な)可能性のあるすべてのユーザーが誰であるかを知るための正しい方法は実際にはありません。sshの場合、もちろん次のようなことを行うことができます。

perl -lne 'print $1 if /-shell (.*?)"/' < ~/.ssh/authorized_keys

Gitoliteには「list-users」コマンドがありますが、これはconfファイルのアクセスルールですでに名前が付けられているユーザーのみを認識します。これはまったく同じことではありません。

于 2012-12-23T15:17:06.233 に答える
1

I added a new command 'usernames' that simply prints a text file that contains all usernames with respective real names. I put this file in the main directory of the gitolite-admin-repo. Only drawback is that this file requires manual updating after a new user is added.

Put this in ~/gitolite-source/src/commands/usernames:

#! /bin/bash

cat $HOME/.gitolite/usernames.txt
于 2013-03-04T13:58:11.563 に答える
0

Gitolite(V3)には、次のようなコマンドのリストがあります。

ssh git@host info -h
ssh git@host perms -h

これは、gitolite構成のコンテンツを取得するのに役立ちます。

ssh git@host perms -l <repo>

権限ファイルの現在の内容を一覧表示します。

于 2012-10-30T16:57:36.207 に答える
0

This is what I am using

perl -le 'while(<>) {$h{$1}=1 if /-shell (.*?)"/};foreach (sort(keys(%h))){print $_;}' < ~/.ssh/authorized_keys

It is much the same as Sitaram's provided snippet, except it removes duplicates and sorts.

于 2014-12-12T07:02:34.850 に答える