Основываясь на предложенном связанном ответе, Почему папки в домашнем каталоге (Документы, изображения и т. д. )создаются только после первого графического входа в систему? , вы можете запустить эту команду от имени пользователя root, чтобы предварительно -создать каталоги XDG для вашего пользователяbob
:
su - bob -c /usr/bin/xdg-user-dirs-update
С точки зрения передовой практики для паролей, это минное поле. Моя конкретная идея состоит в том, чтобы сгенерировать 12 -16-символьный псевдо-случайный пароль, который можно набрать довольно легко и установить, что он истечет при первом использовании(passwd -e
).
useradd -m -c 'Bob is my friend' -s /bin/bash bob
passwd bob # Enter a suitable pseudo-random password for Bob
passwd -e bob
Учтите, однако, что если ваш пользователь будет входить в систему с ssh
сертификатом/ключом, может случиться так, что ему даже не понадобится знать свой пароль.
Что касается синтаксиса оболочки, (
— это специальный символ (, подобный ;
, >
, &
и т. д. ), он не может появляться как часть присвоенного значения без экранируется или цитируется. Он используется, например. для запуска подоболочек, но, как вы заметили, в большинстве случаев это просто вызывает синтаксическую ошибку. (В отличие от, скажем, &
, которая просто молча завершила бы команду.)
Однако круглые скобки — не единственная проблема, у вас также есть пробелы в пути. Это не синтаксическая ошибка, а изменение смысла команды. export PATH=/mnt/c/Program Files/Somepath
означает присвоить /mnt/c/Program
значение PATH
и экспортировать переменную с именем Files/Somepath
, что также вызывает ошибку, поскольку косая черта недопустима в имени переменной.
Вам нужно либо экранировать все круглые скобки и пробелы, как в Program\ Files\ \(x86\)
, либо просто заключить в кавычки всю строку:
PATH='/mnt/z/usr/local/bin:...:/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath:...'
или только его части, хотя это может быть труднее читать:
PATH=/mnt/z/usr/local/bin:...:'/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath':...
(Обратите внимание, что вы не можете сделать оба внутри друг друга, PATH='/mnt/c/Program\ Files\ \(x86\)/...'
назначит строку, содержащую буквальные обратные косые черты.)
Добавить escape-символ \
перед каждой скобкой:
Program Files \(x86\)/