![在新用户的主目录中创建具有特定组和权限的子目录](https://linux22.com/image/42117/%E5%9C%A8%E6%96%B0%E7%94%A8%E6%88%B7%E7%9A%84%E4%B8%BB%E7%9B%AE%E5%BD%95%E4%B8%AD%E5%88%9B%E5%BB%BA%E5%85%B7%E6%9C%89%E7%89%B9%E5%AE%9A%E7%BB%84%E5%92%8C%E6%9D%83%E9%99%90%E7%9A%84%E5%AD%90%E7%9B%AE%E5%BD%95.png)
/etc/skel
Linux 会复制创建新用户时的内容。我想在每个用户的主目录中都有一个子目录,MyStevedore
.我希望该目录的所有者是新用户,组是stevedore
具有权限的组drwxrwxr-x
。该用户不是该组的成员stevedore
。
答案1
假设您使用adduser
创建用户,它将完成大部分工作,假设您已经创建了/etc/skel/MyStevedore
具有所需权限的目录。然而在大多数系统上将~/MyStevedore
始终属于用户的主要组。
在 Debian 及其衍生版本(包括 Ubuntu)上,一旦adduser
创建了用户,它就会调用/usr/local/sbin/adduser.local
它是否存在。您可以使用它来完成工作。
#!/bin/sh
username=$1 uid=$2 gid=$3 home_dir=$4
if [ -d "$home_dir/MyStevedore" ]; then
chgrp stevedore "$home_dir/MyStevedore"
fi
答案2
您可以将 if 语句添加到 /etc/skel 中的 .bash_profile 脚本中,以检查该文件夹是否存在。如果它不存在,它将创建它并设置权限。
新用户第一次登录时将创建该文件夹。