como hacer un programa similar a chmod en c??

Imagen de james_alex
0 puntos

muy buenas a todos

vi algo que me llamo mucho la atención y fue un programa realizado en "c" con el copilador "gcc" en linux que era muy similar a el comando de "chmod" de igual forma el programa daba permisos a archivos con la misma sintaxis de el comando "chmod"

mi duda es como seria el código en "c"??, me llamo la atención un poco estudiar este lenguaje y me gustaría ver como es el código para entenderlo

de antemano muchas gracias por todo

Imagen de Goyo
+1
0
-1

chmod forma parte del paquete coreutils, de GNU. El código fuente puede descargarse de la página de ubuntu o de la de GNU:
http://packages.ubuntu.com/quantal/coreutils
http://www.gnu.org/software/coreutils/

+1
0
-1
Imagen de james_alex
+1
0
-1

gracias Goyo, como se hace para convinar los comandos con "c" para obtener este resultado de un programa similar a "chmod" es decir que puedas agarrar una variable y poder darle permiso como un "777" algo asi, ademas que el programa tambien tendria que darse permisos de super usuario

+1
0
-1
Imagen de elnetotaca
+1
0
-1

los programas no se pueden dar permisos de administración por lo que tengo entendido.
que es lo que estas tratando de hacer exactamente?????

+1
0
-1

unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep
Es lo que hago a diario....... En Linux mal pensados!

Imagen de Goyo
+1
0
-1

¿Combinar comandos con c? ¿Agarrar variables y darles permiso 777? ¿Un programa que se da permiso a sí mismo? No sé qué significan estas cosas y mucho menos cómo se pueden hacer.

+1
0
-1
Imagen de james_alex
+1
0
-1

bueno estaba en pdf y los trascribí, este es el problema que me llamo la atencion y el que deseara ver la solucion ya que me parece un poco interesante

1. Descripción

Escribir una aplicación en C similar a chmod para cambiar permisos a un archivo.

2. Requerimientos

La aplicación debe soportar el siguiente formato

[aplicacion] –[parametro] argumento [archivo]

Parametros validos: usuario, grupo, otros
Argumentos validos: +r,-r, +r+w,-r-w

(+) Asignar permiso
(-) Quitar permiso

El argumento es una cadena que esta compuesto por hasta 3 permisos:

r Lectura
w Escritura
x Ejecucion

Ejemplo 1: Cambiar un solo permiso y solo a usuario | grupo | otros

./cambiar –usuario +x archivo
./cambiar –usuario –w archivo

./cambiar –grupo –w archivo

Nota:

- Este es el caso base, un solo permiso y solo al usuario o grupo u otros.
- Los permisos base son: +r, -r, +w, -w, +x, -x

Ejemplo 2: Cambiar 2 permisos y solo a usuario | grupo | otros

./cambiar –usuario +r+w archivo
./cambiar –usuario –w-x archivo

./cambiar –otros –w-x archivo

Nota:

- Similar al caso base, solo al usuario o grupo u otros pero 2 permisos a la vez.
- También es permitido asignar y quitar un permiso a la vez: +r-w, +w-x

Ejemplo 3: Quitar o Asignar todos los permisos y solo a usuario | grupo | otros

./cambiar –usuario + archivo
./cambiar –usuario – archivo

./cambiar –otros – archivo

Nota:

- Similar al caso base, solo al usuario o grupo u otros, solo que quito todo o asigno todos los permisos.

6. Notas

- Usar la función setuid/setgid para que la aplicación tenga privilegios de super usuario para cambiar permisos de cualquier archivo.
- Usar fchmod para cambiar permisos.

+1
0
-1
Imagen de iblancasa
+1
0
-1

chmod es una llamada al sistema. Puedes hacer esa llamada al sistema desde C.
Mira éste enlace:
http://stackoverflow.com/questions/4568681/using-chmod-in-a-c-program

Una vez que ya sepas cómo se usa chmod... los argumentos que tu le quieras pasar los configuras como veas (tu ya tratas las cadenas que introduzcas como desees).
Un saludo.

+1
0
-1
Imagen de ubaldino
+1
+1
-1