Initial commit v2
This commit is contained in:
parent
f1e345caf8
commit
77657c7078
4 changed files with 60 additions and 2 deletions
56
README.md
56
README.md
|
@ -1,3 +1,57 @@
|
||||||
# djumbai
|
# Djumbai
|
||||||
|
|
||||||
A UNIX local messaging service
|
A UNIX local messaging service
|
||||||
|
|
||||||
|
## Components
|
||||||
|
|
||||||
|
1. **Initiation of Message Sending:**
|
||||||
|
- A Unix user initiates a message sending process using a Command Line Interface (CLI) tool.
|
||||||
|
|
||||||
|
2. **Creation of Processes:**
|
||||||
|
- The CLI tool spawns a process called `djumbai-client-send`. This process runs under the context of the initiating Unix user.
|
||||||
|
- `djumbai-client-send` spawns another process called `djumbai-enqueue`, which operates under the `djumbaiq` user context.
|
||||||
|
|
||||||
|
3. **Message Queuing:**
|
||||||
|
- `djumbai-enqueue` process writes the message to a message queue, which functions as a named pipe. This queue acts as an intermediary storage for the message.
|
||||||
|
|
||||||
|
4. **Message Retrieval:**
|
||||||
|
- The `djumbai-dequeue` process, functioning as a daemon, runs under the `djumbaid` user context. Its purpose is to retrieve messages from the message queue.
|
||||||
|
|
||||||
|
5. **Message Transmission:**
|
||||||
|
- Once messages are retrieved, `djumbai-dequeue` sends them to the `djumbai-send` process. This process operates with root privileges.
|
||||||
|
|
||||||
|
6. **Receiving and Delivery:**
|
||||||
|
- `djumbai-send` spawns a process named `djumbai-client-receive`, which operates under the context of the user intended to receive the message.
|
||||||
|
- `djumbai-client-receive` writes the received message to the recipient's message-box.
|
||||||
|
|
||||||
|
7. **Message Retrieval by User:**
|
||||||
|
- The recipient Unix user can utilize the CLI tool at any time to read messages stored in their inbox.
|
||||||
|
|
||||||
|
This structured breakdown elucidates the sequential steps involved in the Unix message sending process, including process spawning, message queuing, retrieval, transmission, and eventual delivery to the intended recipient.
|
||||||
|
|
||||||
|
|
||||||
|
## Cenas concretas
|
||||||
|
|
||||||
|
Mail queue - FIFO em /opt/djumbai/mailqueue e so pode ser acedida por users do grupo djumbai-queue, que contem djumbai-enqueue e djumbai-dequeue
|
||||||
|
|
||||||
|
Mailbox pessoal - Diretoria em /opt/djumbai/mailbox/user/$uid, que so pode ser acedida pelo user com UID $uid
|
||||||
|
|
||||||
|
Mailbox grupo - Diretoria em /opt/djumbai/mailbox/group/$gid, que so pode ser acedida pelo grupo com GID $gid
|
||||||
|
|
||||||
|
SentBox pessoal - Diretoria em /opt/djumbai/sentbox/user/$uid, que so pode ser acedida pelo user com UID $uid
|
||||||
|
|
||||||
|
SentBox grupo - Diretoria em /opt/djumbai/sentbox/grupo/$gid, que so pode ser acedida pelo grupo com GID $gid
|
||||||
|
|
||||||
|
Repositorio de chaves publicas de utilizadores - Diretoria em /opt/djumbai/pub_keys/user/$uid que contem as chaves publicas de cada utilizador. Apenas o proprio user tem acesso de escrita no ficheiro da sua chave publica
|
||||||
|
|
||||||
|
Repositorio de chaves publicas de grupos - Diretoria em /opt/djumbai/pub_keys/group/$gid que contem as chaves publicas de cada grupo. Apenas membros do proprio grupo tem acesso de escrita no ficheiro da sua chave publica
|
||||||
|
|
||||||
|
Repositorio de chaves privadas de utilizadores - Diretoria em /opt/djumbai/priv_keys/user/$uid que contem as chaves privadas de cada utilizador. Apenas o proprio user tem acesso de leitura e escrita no ficheiro da sua chave publica
|
||||||
|
|
||||||
|
Repositorio de chaves privadas de grupos - Diretoria em /opt/djumbai/priv_keys/group/$gid que contem as chaves privadas de cada grupo. Apenas membros do proprio grupo tem acesso de leitura e escrita no ficheiro da sua chave privada
|
||||||
|
|
||||||
|
Envio de mensagem para utilizador - Mensagem assinada com chave privada do remetente e cifrada com a chave publica do destinatario.
|
||||||
|
|
||||||
|
Envio de mensagem para grupo - Mensagem assinada com chave privada do remetente e cifrada com a chave publica do grupo.
|
||||||
|
|
||||||
|
|
||||||
|
|
4
src/client.c
Normal file
4
src/client.c
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
}
|
0
src/djumbai_dequeue.c
Normal file
0
src/djumbai_dequeue.c
Normal file
0
src/djumbai_send.c
Normal file
0
src/djumbai_send.c
Normal file
Loading…
Reference in a new issue