Это очень интересный вопрос, постоянно дебатируемый в этнологии. Собственно все зависит от того, что вкладывается в понятие "национальность" или этнос.
Есть два основных способа выделения этноса: по объективным и субъективным признакам. По объективным это, например, как раз по языку. Если родной язык человека русский, то он принадлежит к русскому этносу. А главным субъективным признаком является самосознание человека: например, он причисляет себя к татарам поэтому он татарин.
Лично я являюсь сторонником смешанной модели этноса, предполагающей сочетание объективных и субъективных признаков. Поясню. Чтобы считать человека башкиром, надо:
а) чтобы он сам считал себя башкиром
б) чтобы большинство тех, кто считает себя башкирами, признавали его башкиром
в) чтобы он не имел ярко выраженных признаков, не позволяющих людям других национальностей выделить его как башкира (например, если человек принадлежит к негроидной расе или его имя Юань, его, пожалуй, и башкиры не признают без специальных пояснений)
Это особенно актуально для России. У нас есть масса людей, считающих себя частью какого-то этноса и признаваемых этносом своими, но не говорящих свободно на национальном языке. Например, я чуваш, не говорю свободно по-чувашски потому что вырос среди русских, но мои родные и знакомые чуваши, говорящие свободно на национальном языке, признают меня своим единоплеменником. Для них решающее значение имеет мое самосознание, знание национальной истории, происхождение и т. п.
Я кыргыз не знающий кыргызский язык... Для меня это печально, но я знаю русский, трохи украинский и немецкий.