Bach dice lo siguiente:
mkdir es un
setuid
programa típico . Solo un proceso con una raíz UID efectiva puede crear una carpeta. (Sección 7.6, página 229)
Verifiqué los permisos en Ubuntu 12.04, el bit setuid no está configurado.
-rwxr-xr-x 1 root root 42624 Oct 2 08:55 mkdir
^??
Luego verifiqué otros programas que se supone que tienen este conjunto, como ping
y su
y lo tienen configurado.
-rwsr-xr-x 1 root root 34740 Nov 8 2011 ping
^---there it is
Entonces, ¿cómo mkdir
funciona? ¿Han cambiado las cosas desde que Bach escribió eso?
unix
system-calls
Anirudh Ramanathan
fuente
fuente
Respuestas:
La llamada mkdir () ha estado presente desde BSD 4.2. Más tarde se agregó a SYSV 3.0. Ver: http://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdir.html
BSD 4.2 salió en 1984: http://www.unix.org/what_is_unix/history_timeline.html
Si se permite el acceso a un punto de entrada en modo kernel en UNIX a través de una llamada al sistema desde el modo de usuario sin restricción, lo que indica duskwuff, entonces no se requiere setuid.
fuente
setuid()
sistema llame. ¿Es definitivamente la correcta?mkdir()
.Ya no es necesario tener privilegios de root para crear una carpeta. Ahora hay una
mkdir()
llamada al sistema que cualquier proceso puede usar para crear un directorio.fuente
Exactamente. El permiso para crear un directorio se basa hoy en día en el permiso de escritura en el directorio principal o en el
t
bit (para directorios similares a / tmp donde todos pueden crear un directorio, pero usted solo puede eliminar archivos de su propiedad).fuente