Call a, b, c, d, e, f the positive integers written on the six faces of the cube; hereby, assume that the numbers a and b are written on opposite faces, so are the numbers c and d, and so are the numbers e and f. Since all numbers a, b, c, d, e, f are positive integers, they are all $\geq 1$, and thus the numbers a + b, c + d and e + f are positive integers $\geq 2$.
Now, according to the problem, we have
ace + acf + bce + bcf + bde + bdf + ade + adf = 1001.
In other words,
(a + b) (c + d) (e + f) = 1001.
But since the canonical representation of 1001 is $1001 = 7 \cdot 11 \cdot 13$, the only way to represent 1001 as a product of three positive integers $\geq 2$ is $1001 = 7 \cdot 11 \cdot 13$. Since we know that the numbers a + b, c + d and e + f are positive integers $\geq 2$, we thus see that the numbers a + b, c + d, e + f equal to the numbers 7, 11, 13 in some order. Hence, the sum of the six numbers on the faces of the cube is
a + b + c + d + e + f = (a + b) + (c + d) + (e + f) = 7 + 11 + 13 = 31.
What we learn from this problem is that the identity
ace + acf + bce + bcf + bde + bdf + ade + adf = (a + b) (c + d) (e + f)
can sometimes be helpful in problems concerning numbers written on the faces of a cube, and that the canonical representation of 1001 can be of use not only in questions about digits.
This is in fact Darij's solution, re-posted.