2015-10-27 1 views
1

Je travaille sur une machine Red Hat sans pré-racine.
J'ai quelques fichiers partagés que je peux accéder en utilisant smb:// avec nom d'utilisateur et mot de passe. Comme je n'ai pas de racine préviliges, je ne peux pas monter le partage (ou du moins, je n'ai pas pu savoir comment). Ce dont j'ai besoin est d'ouvrir le fichier pour lire \ écriture à partir d'un code C++. Y a-t-il un moyen de le faire?Ouverture d'un fichier partagé en C++ sans racine previliges

+2

Si vous ne pouvez pas accéder au fichier avec 'cat',' file' ou un autre outil de ligne de commande, vous ne pourrez pas le contourner en écrivant du code en C ou C++, assembleur, python ou tout autre le langage (à part le fait de pirater les trous de sécurité dans l'OS, mais je ne crois pas que ce soit facile, et si je savais comment le faire, je ne l'afficherais certainement pas ici). Vous pourriez peut-être utiliser 'smbclient' pour le monter (par exemple dans votre répertoire personnel ou/tmp ou quelque chose comme ça). Si ce n'est pas une option, il est temps de parler à quiconque donne accès à ces fichiers ... –

+0

@Mats Je peux accéder aux fichiers en utilisant 'smbclient' mais si j'essaie d'utiliser' smbount', j'obtiens une commande d'erreur introuvable – ThP

+0

accepté, la façon moderne de monter un partage SMB est de ne pas utiliser 'smbmount' mais' mount -t cifs'. Mais bien sûr, si vous n'avez pas les capacités 'sudo', cela échouera tout de même. Pas de droits de superutilisateur, pas de montage ni de démontage. Vous êtes sans chance là-bas. – Damon

Répondre

0

Vous pouvez utiliser la bibliothèque libsmbclient pour effectuer un accès normal aux fichiers comme smbc_open, smbc_fstat, smbc_lseek, smbc_read.