Suppose that (including multiplicity) the roots of $$f(x) = A x^3 + B x^2 + C x + D,$$ $A \neq 0$, are $r_1, r_2, r_3$. Consider the quantity
$$\Delta(f) := A^4 (r_3 - r_2)^2 (r_1 - r_3)^2 (r_2 - r_1)^2,$$
called the (polynomial) discriminant of $f$.
If $r_1, r_2, r_3$ are all real and pairwise distinct, then we see that $\Delta(f) > 0$. On the other hand, if $f$ has a repeated root, then $\Delta(f) = 0$, and if $f$ has one real root and two nonreal (necessarily conjugate) roots, substituting gives $\Delta(f) < 0$. (The coefficient $A^4$ is unnecessary for $\Delta$ to enjoy these properties, but among other things, its inclusion makes the below formula nicer.)
These three cases exhaust all of the possibilities, so we conclude:
$$\color{#bf0000}{\fbox{A cubic polynomial $f$ has three distinct, real roots iff $\Delta(f) > 0$.}}$$
The above definition of $\Delta$ is not immediately practical, since explicit formulas for the roots of a general cubic polynomial are unwieldy. On the other hand, with some work (say, by expanding and using Newton's Identities and Vieta's Formulas) we can write $\Delta(f)$ as a homogeneous quartic expression in the coefficients $A, B, C, D$:
$$\Delta(f) = -27 A^2 D^2 + 18 ABCD - 4 A C^3 - 4 B^3 D + B^2 C^2.$$ This formula gives a computationally practical answer to the question:
$$
\bbox[0.5mm,border: 1px solid #bf0000]{
\color{#bf0000}{
\begin{array}{c}
\textrm{A cubic polynomial} \\
f(x) = A x^3 + B x^2 + C x + D \\
\textrm{has three distinct, real roots iff} \\
-27 A^2 D^2 + 18 ABCD - 4 A C^3 - 4 B^3 D + B^2 C^2 > 0 \textrm{.}
\end{array}
}
}
$$
It's apparent that one can generalize the notion of discriminant to polynomials $p$ of any degree $> 1$, producing an expression homogeneous of degree $2(\deg p - 1)$ in the polynomial coefficients. In each case, up to a constant that depends on the degree and the leading coefficient of $f$, $\Delta(f)$ is equal to the resultant $R(f, f')$ of $f$ and its derivative.
By making a suitable real, affine change of variables $x \rightsquigarrow y = a x + b$, by the way, one can transform any given real cubic polynomial to the so-called depressed form
$$\tilde{f}(y) = y^3 + P y + Q .$$
such transformations do not change the number of real roots or the multiplicities of roots. For a cubic polynomial in this reduced form the discriminant takes the simpler and well-known form
$$\Delta(\tilde f) = -4 P^3 - 27 Q^2.$$
Assuming $a,b,c$ are reals, the following conditions guarantee that out of the two real roots one is negative and one is positive:
$$b^2-4ac>0 \text{ and } c/a<0.$$
The first condition guarantees that the equation has two distinct real roots. Since the product of the roots is equal to $c/a$, and we want only one of them to be positive, the other one has to be negative, hence the second condition.
Note that if we treat the case of repeated roots as a single root (as opposed to thinking of it as two equal roots), then the answer should also include the second case:
$$b^2-4ac=0 \text{ and } b/a<0.$$
The second inequality comes from the fact that the $x$-coordinate of the vertex is $x_0=-\frac{b}{2a}$, and we want it to be a positive number.
UPDATE. After sleeping on it, in the morning I realized that I had a number of inaccuracies in my own answer:
We implicitly assumed that the equation is indeed a quadratic one, i.e. that $a\neq0$, even though it wasn't stated anywhere. So to be completely rigorous, we should account for the case of $a=0$ too.
I was wrong when I said that when one root is positive, "the other one has to be negative
". The correct statement is that the other one has to be non-positive, i.e. negative or zero.
Not a mistake, but rather a comment: for nonzero numbers, $c/a<0$ is equivalent to $ac<0$. Same for $b/a$.
As implicitly indicated in other great answers, if $ac<0$, then $b^2-4ac>0$ automatically, so we don't have to include this condition in the first case.
Taking all of that into account, I believe the following should be a complete answer, consisting of several possible cases:
The equation $ax^2+bx+c=0$, where $a,b,c$ are reals, has exactly one positive root iff:
$ac<0$ (two real roots, one positive and one negative); or
$c=0$ and $ab<0$ (two real roots, one positive and one zero); or
$a=0$ and $bc<0$ (linear equation whose only root is positive); or
$b^2-4ac=0$ and $ab<0$ (repeated root which is positive; only include this case if treating it as one root rather than two equal roots).
Best Answer
Let $a,b,c$ be three roots of the cubic equations. We will prove that if $(2),(3)$ and $(4)$ hold, $a,b,c$ must be all positive.
Suppose the contradiction, from $(4)$ we can suppose that $a<0,b<0$ and $c>0$.
From $(2)$, we have $c> -a-b$.
From $(3)$, we have $$ab + c(a+b)>0 \implies ab >c(-a-b)>(-a-b)^2 = a^2 +2ab+b^2$$ or $a^2+ab+b^2 <0$ (contradiction).
So, $a,b,c$ must be all positive.
Then, $(1),(2),(3)$ and $(4)$ are necessary and sufficient conditions for having all 3 positive roots.