У вас уже есть typedef
в вашем заголовке, поэтому включите это и определите struct foo
в реализации без typedef
.
foo.h
:
typedef struct foo foo;
foo *create_foo(...);
delete_foo(foo *f);
foo.c
:
#include <foo.h>
struct foo { int implementation; };
/* etc. */
Можно также ограничить ключи к допустимым командам (в authorized_keys файле).
Т.е. пользователь не зарегистрировался бы на пути ssh и затем имел бы ограниченный набор команд, а скорее будет только позволен выполнить те команды через ssh (например, "ssh somehost bin/showlogfile")
Google является нашим другом . Среди первых хитов:
HTH
То, что Вы ищете, называют Ограниченный Shell. Bash обеспечивает такой режим, в котором пользователи могут только выполнить команды, существующие в их корневых каталогах (и они не могут переместиться в другие каталоги), который мог бы быть достаточно хорошим для Вас.
я нашел этот поток быть очень иллюстративным, если немного датированный.
Необходимо получить 'rssh', ограниченная оболочка
, можно следовать упомянутым выше руководствам ограничения, они все довольно очевидны, и просты следовать. Поймите условия 'chroot тюрьма', и как эффективно реализовать sshd/terminal конфигурации и так далее.
Являющийся, поскольку большинство Ваших пользователей получает доступ к Вашим терминалам через sshd, необходимо также, вероятно, изучить sshd_conifg, конфигурационный файл демона SSH, для введения определенных ограничений через SSH. Будьте осторожны, как бы то ни было. Поймите правильно, что Вы пытаетесь реализовать, поскольку разветвления неправильных конфигураций, вероятно, довольно страшны.
Вы могли бы хотеть посмотреть на установку тюрьма .
Другой способ посмотреть на это использует POSIX ACLs, это должно поддерживаться Вашей файловой системой, однако у Вас может быть мелкомодульная настройка всех команд в Linux тем же путем, Вы имеете тот же контроль в Windows (только без более хорошего UI). ссылка
Другая вещь изучить PolicyKit.
необходимо будет сделать довольно мало гугления для получения всего работающего, поскольку это - определенно не сила Linux в данный момент.
Порыв GNU может быть самым гибким и безопасным способом выполнить это:
Порыв GNU является Ограниченным Пользователем Shell, разработанный для сайтов, которые обеспечивают ограниченный удаленный доступ к их ресурсам, таким как svn или репозитории мерзавца, scp, и т.п. Используя сложный конфигурационный файл, Порыв GNU дает Вам полный контроль над командными строками, которые пользователи выполняют, а также над использованием системных ресурсов, таких как виртуальная память, процессорное время, и т.д.