linux – 如何让用户创建目录,尽管不创建子目录

我正在尝试创建一个Bash shell脚本,允许将文件从Flash设备传输到用户将指定的存档.虽然我想限制此用户无法在此存档目录中创建任何子目录.

注意:从本质上讲,我希望用户创建/指定的归档目录是一个扁平的单级结构.

我没有第一个线索如何实现这一目标,并希望得到任何帮助.

解决方法:

没有任何本机机制可以轻松实现它. Linux的权限系统无法为创建文件和目录指定单独的权限,因为目录实际上是文件.但试试这样:

>使所有归档目录归一个(或几个不同的)用户所有,只为此目的而创建.让我们假设它的名称为archiveuser.
>让所有归档目录(我猜你有很多)归这个用户所有,in.ex.:

$chown archiveuser:archiveuser /somedir/archivedir1
$chown archiveuser:archiveuser /somedir/archivedir2
$chown archiveuser:archiveuser /somedir/archivedir3

>限制只能为所有者访问的存档目录的访问权限:

$chmod 700 /somedir/archivedir1
$chmod 700 /somedir/archivedir2
$chmod 700 /somedir/archivedir3

>使用sudo机制为存档目录提供cp命令访问权限:

添加到/ etc / sudoers:

someuser1 ALL=(archiveuser) NOPASSWD:/bin/cp /path/to/pendrive/* /somedir/archiveuser/*
someuser2 ALL=(archiveuser) NOPASSWD:/bin/cp /path/to/pendrive/* /somedir/archiveuser/*

当然,为应该被允许使用此命令的所有用户创建适当的组是很方便的.阅读sudo教程:-).
>就是这样.用户必须使用:

$sudo -u archiveuser cp /path/to/pendrive/somefile /somedir/archiveuser/ 

您可以创建一些别名以使其更方便使用(即别名cpt =’sudo -u archiveuser cp’).另请注意,在这种情况下,sudo不允许复制目录所需的cp -r.此外,权限还会阻止mkdir命令.这样你的目标就实现了.

上一篇:linux – 当活动的display / vt与它们运行的​​位置不同时,某些命令会失败,如何解决/解决这个问题?


下一篇:1130 mysql8为root用户设置远程范围权限