在Debian,我试图在每次重新启动后更改特定目录的所有权。但在我的情况下,它不起作用,因为用户总是在重新启动时设置为root。当我在终端中尝试时,它运行良好(我认为是因为myUser会话已创建(,但我需要在重新启动时更改它。
到目前为止,我引用了这个链接,但它对我来说失败了:https://unix.stackexchange.com/questions/183183/using-chown-useruser-inside-bash-script
CURRENT_USER=$(who|awk'NR==1{print$1}'(
sudo chown-R$CURRENT_USER:$CURRENT_USER/myfile/foo
第二种方式:
sudo chown-R${USER:=$(/usr/bin/id-run(}:$USER/myfile/foo
我不想这样写:
sudo chown myUser:myUser/myfile/foo
Linux是一个多用户系统。可以有多个用户同时登录,也可以根本没有一个用户登录。通常没有办法定义像";默认";使用者然而,有一些变通方法可以用来找到";默认";如果机器设置为典型的单用户公司计算机,则为用户。
- 取UID为1000的用户。如果所有的机器都被设置成使得;默认";用户具有UID1000,您可以在
chown
命令中使用此UID而不是用户名 - 查找
/home
的子目录。只有标准(非系统(用户才有主目录。在标准系统中,它们是用用户名命名的
该设置:您的脚本将高度依赖于机器的特定设置。此外,对于您的问题,可能会有一个侵入性更小、依赖机器更少、更安全的解决方案。你可以尝试
- 保留root作为目录的所有者,但为其他用户启用读写权限
- 为目录设置粘性位(就像/tmp一样(
- 创建一个拥有该目录的新组,并将用户添加到其中
最后一个选项实际上使用了很多。例如,web服务器通常将其源目录归一个名为www
的组所有,并将允许读取/写入数据的用户添加到该组中。这也适用于真正的多用户系统,如服务器或共享机器。