Я должен автоматически присвоить каждому новому пользователю, который создается определенная папка Sales
в их корневом каталоге. (например, когда Вы добавляете пользователя tim
, tim
автоматически назвали папку Sales
в его корневом каталоге)
Как я могу сделать это?
Домашние каталоги всех новых пользователей являются копиями /etc/skel
, когда пользователь создается с помощью любого метода, который автоматически создает домашний каталог.
Если вы уверены, что вам нужна папка Sales
в домашнем каталоге каждой новой учетной записи пользователя, вы можете просто создать папку в /etc/skel
.
Убедитесь, что владелец и права на все, что вы создаете или изменяете, правильные.
Установите необходимые разрешения, они будут скопированы в домашний каталог нового пользователя, как они есть. Обычно вы берете 644
(восьмеричное представление) или rw-r--r--
(строковое представление). Вы можете изменить это с помощью одной из команд ниже. Убедитесь, что все доступно для чтения владельцу и все каталоги являются исполняемыми владельцем (в противном случае владелец не может просмотреть или получить доступ к своему контенту).
sudo chmod 644 /etc/skel/FILE_OR_DIRECTORY
для установки разрешений для одного файла или каталога с использованием восьмеричного представления. sudo chmod u=rw,g=r,o=r /etc/skel/FILE_OR_DIRECTORY
для установки разрешений для одного файла или каталога с использованием синтаксиса, похожего на строковое представление. sudo chmod -R 644 /etc/skel
для рекурсивной установки разрешений для всех файлов и каталогов с использованием восьмеричного представления. sudo chmod -R u=rw,g=r,o=r /etc/skel
для рекурсивной установки разрешений для всех файлов и каталогов с использованием синтаксиса, похожего на строковое представление. Владелец должен быть root
. Вы изменяете это рекурсивно для всех файлов и папок в /etc/skel
с помощью команды ниже:
sudo chown -R root: /etc/skel
Относительно простой альтернативой было бы создать стартовый файл в /etc/xdg/autostart
, который создаст папку в (любом) домашнем каталоге пользователя при входе в систему, только , если папка еще не существует. [ 1119]
Создайте файл со следующими строками:
[Desktop Entry]
Name=Create Sales
Exec=/bin/bash -c "mkdir ~/Sales"
Type=Application
Сохраните его как sales.desktop
(расширение необходимо)
Запустите команду:
sudo cp /path/to/sales.desktop /etc/xdg/autostart
Это создаст папку ~/Sales
в домашнем каталоге любого пользователя , как только он или она входит в систему (только если она не существует).
Чтобы запустить команду при запуске (войти в систему) локально, f или только для одного пользователя , мы можем поместить файл .desktop
в ~/.config/autostart
Если мы сделаем то же самое, но сохраним файл .desktop
в /etc/xdg/autostart
, команда также будет выполняться локально, но аналогично для любого пользователя при входе в систему.
Если мы сделаем файл .desktop
, запустите команду:
/bin/bash -c "mkdir ~/Sales"
, мы удостоверимся, что папка создана, даже заново создана при следующем входе в систему, если пользователь может удалить ее вручную. В то же время, если папка существует, команда не будет выполнена, поэтому существующие папки не будут перезаписаны.