dzz: Dizzy の冬 (Default)
[personal profile] dzz
Заставил-таки CVS работать через SSH в chrooted environment-е.

Решение для OpenSSH нашлось в виде забавного хака:
#ifdef CHROOT
                user_dir = xstrdup(pw->pw_dir);
                new_root = user_dir + 1;

                while((new_root = strchr(new_root, '.')) != NULL) {
                        new_root--;
                        if(strncmp(new_root, "/./", 3) == 0) {
                                *new_root = '\0';
                                new_root += 2;

                                if(chroot(user_dir) != 0)
                                        fatal("Couldn't chroot to user directory %s", user_dir);

                                pw->pw_dir = new_root;
                                break;
                        }
                        new_root += 2;
                }
#endif /* CHROOT */


Работает это так - если homedir юзера указан в виде "/data/chrooted/./home/vasya", то sshd выполняет chroot("/data/chrooted"), а уже там homedir-ом считает /home/vasya
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

January 2026

S M T W T F S
     123
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 06:01 pm
Powered by Dreamwidth Studios