2016-06-10 4 views
0

I got this shell script from a blog about how to equip git with gitosis. But i got a "No such file or directory" error after running the script.sudo -H -u git gitosis-init <~/id_rsa.pub | Fehler: keine solche Datei oder das Verzeichnis

[[email protected] ~]$ sudo -H -u git gitosis-init < ~/id_rsa.pub 
Traceback (most recent call last): 
    File "/usr/local/bin/gitosis-init", line 9, in <module> 
    load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-init')() 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 24, in run 
    return app.main() 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 38, in main 
    self.handle_args(parser, cfg, options, args) 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/init.py", line 138, in handle_args 
    user=user, 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/init.py", line 75, in init_admin_repository 
    template=resource_filename('gitosis.templates', 'admin') 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/repository.py", line 63, in init 
    close_fds=True, 
    File "/usr/local/lib/python2.7/subprocess.py", line 522, in call 
    return Popen(*popenargs, **kwargs).wait() 
    File "/usr/local/lib/python2.7/subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "/usr/local/lib/python2.7/subprocess.py", line 1335, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 

Ich bin verwirrt, wie der Mann Handbuch sagt, dass:

-H   The -H (HOME) option sets the HOME environment variable to the homedir of the target user (root by default) as specified in passwd(5). By default, sudo 
      does not modify HOME (see set_home and always_set_home in sudoers(5)). 

, die von Linux-Handbuch zitiert.

Die Option -H setzt die HOME-Umgebungsvariable nur auf das Homedir des Zielbenutzers, wie in passwd angegeben.

Allerdings habe ich "/ home/git" als homedir für git user in meiner/etc/passwd Datei angegeben.

apache:x:48:48:Apache:/var/www:/sbin/nologin 
git:x:100:101:git version control:/home/git:/bin/bash 
duanduan:x:101:500::/home/duanduan:/bin/bash 

Aber warum habe ich diese Nachricht noch? oder war mein Verständnis der Beschreibung in Handbuch falsch?


Anfügen für Kommentare:

Und es scheint, wie vor mit einer absoluten path.Maybe Angabe, dann ist es nicht die Ursache.

sudo -H -u git gitosis-init < /home/git/id_rsa.pub 
Traceback (most recent call last): 
    File "/usr/local/bin/gitosis-init", line 9, in <module> 
    load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-init')() 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 24, in run 
    return app.main() 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 38, in main 
    self.handle_args(parser, cfg, options, args) 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/init.py", line 138, in handle_args 
    user=user, 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/init.py", line 75, in init_admin_repository 
    template=resource_filename('gitosis.templates', 'admin') 
    File "/usr/local/lib/python2.7/site-packages/gitosis-0.2-py2.7.egg/gitosis/repository.py", line 63, in init 
    close_fds=True, 
    File "/usr/local/lib/python2.7/subprocess.py", line 522, in call 
    return Popen(*popenargs, **kwargs).wait() 
    File "/usr/local/lib/python2.7/subprocess.py", line 710, in __init__ 
    errread, errwrite) 
    File "/usr/local/lib/python2.7/subprocess.py", line 1335, in _execute_child 
    raise child_exception 
OSError: [Errno 2] No such file or directory 
+0

Hinweis: Gitosis ist seit 2009 veraltet. Erwägen Sie die Verwendung von Gitolit: http://gitolite.com/gitolite/index.html – VonC

Antwort

2

Ich denke, es liegt daran, dass ~ von bash erweitert wird, bevor er als Argument sudo übertragen, warum nicht versuchen, einen absoluten Pfad für Sie öffentliche Schlüsseldatei angeben?

+0

Oder '~ git/id_rsa.pub' wenn Sie das wollen. Deine Frage ist nicht wirklich klar. – tripleee

+0

Es scheint auch wie vorher mit Angabe eines absoluten Pfades.Vielleicht ist es nicht die Ursache. '' ' – ResRelentelss

Verwandte Themen