Buenas d91.
Los permisos disponibles para chmod son:
0 (cero) = Sin permisos
1 = permiso de ejecutar únicamente
2 = permiso de escribir solamente
3 = escribir y ejecutar
4 = permiso de leer
5 = leer y ejecutar
6 = leer y escribir
7 = leer, escribir y ejecutar
Al usar CHMOD tienes 3 grupos de números, lo cual representa igualmente 3 grupos de usuarios:
1. Owner o User, el cual de manera general es el webmaster
2. Group, un grupo de usuarios configurado por el webmaster
3. World o Anyone, que es básicamente cualquier usuario que usa tu sitio web.
Como tu tarea será a nivel de usuario el 2 y el 3 no se toca, o le pones los mismos que al owner.
Por lo tanto yo haría un programilla tal que fuera un menú y un switch.
#include <stdio.h>
#include <sstream>
#include <stdlib.h>
#include <iostream>
using namespace std;
int menuChmod(){
int eleccion;
cout << "+++++++MENU+++++++" << endl;
cout << "1 - Solo ejecutar" << endl;
cout << "2 - Solo escribir" << endl;
cout << "3 - Escribir y ejecutar" << endl;
cout << "4 - Solo leer" << endl;
cout << "5 - Leer y ejecutar" << endl;
cout << "6 - Leer y escribir" << endl;
cout << "7 - Leer, escribir y ejecutar" << endl;
cout << "Ingrese eleccion: ";
cin >> eleccion;
return eleccion;
}
int main(int argc, char *argv[]){
char archivo[100];
ostringstream oss;
oss << "chmod ";
cout<<"\nIngrese nombre del archivo: ";
cin>>archivo;
switch(menuChmod()){
case 1: {oss << "100 "<<archivo;
system((oss.str()).c_str());
break;
}
case 2: {oss << "200 "<<archivo;
system((oss.str()).c_str());
break;
}
case 3: {oss << "300 "<<archivo;
system((oss.str()).c_str());
break;
}
case 4: {oss << "400 "<<archivo;
system((oss.str()).c_str());
break;
}
case 5: {oss << "500 "<<archivo;
system((oss.str()).c_str());
break;
}
case 6: {oss << "600 "<<archivo;
system((oss.str()).c_str());
break;
}
case 7: {oss << "700 "<<archivo;
system((oss.str()).c_str());
break;
}
default:;
}
ostringstream ls;
ls << "ls -la | grep " << archivo;
system((ls.str()).c_str());
return 0;
}
Lo hice con system porque desconozco como funciona chmod en la libreria que usaste.
La idea está en el codigo.
SI al grupo y a todo el mundo quieres asignarle los mismos permisos, en vez de 100, sería 111, y así con todos.
Espero haberme explicado bien.
Un Saludo.