У мене, здавалося б, дійсна команда, яка добре працює на скриньках Linux, але не працює в OSX, і я хотів би знати, чому.
sudo su - validusername sh -c 'whoami'
У Linux це відображатиметься "validusername" на консолі. OSX, однак, показує помилку:
/bin/sh: /bin/sh: cannot execute binary file
Це особливість OSX? Або це пов'язано з тим, що OSX використовує bash 3.2, тоді як наші linux-коробки знаходяться на bash 4.x?
EDIT: Я швидко з'ясував рішення ( sudo -u
), мені цікаво дізнатися, чому це сталося. Дякую!
sudo
та su
(GNU vs BSD). Я хотів би зазначити, що немає ніяких причин використовувати su
взагалі (насправді, мабуть, не слід, якщо у вас є sudo
), оскільки перемикачі sudo
можуть точно відповідати вашим потребам.