Linux新手求助:如何获取向shiny-server目录复制文件的权限
解决/srv/shiny-server目录的复制权限问题
嘿,作为Linux新手遇到权限问题太正常啦,我来帮你搞定这个事儿!
从你给出的ls -l输出能看到,/srv/shiny-server的所有者和所属组都是root,权限是drwxr-xr-x——这意味着只有root用户拥有写入权限,普通用户(比如你的stefan账号)只能读和进入目录,所以你执行复制命令时才会收到Permission denied的报错。
下面给你几种可行的解决方案,你可以根据自己的需求选择:
方案1:临时用sudo执行复制(适合偶尔操作)
直接在复制命令前加上sudo,临时获取root权限完成操作:
sudo cp -a /home/stefan/Downloads/testfile /srv/shiny-server
执行后会提示你输入当前用户(stefan)的密码,输入后就能顺利完成复制了。
方案2:配置目录权限,让你的用户长期拥有写入权限(推荐)
如果之后你需要频繁往这个目录里传文件,更稳妥的方式是调整目录的组权限:
- 先创建一个专门用于管理shiny-server目录的用户组(如果还没有的话):
sudo groupadd shiny-users - 把你的stefan用户加入这个组:
sudo usermod -aG shiny-users stefan注意:执行完这条命令后,你需要重新登录终端或者重启会话,新的组权限才会生效。
- 修改
/srv/shiny-server的所属组为shiny-users,并给组添加写入权限:sudo chown root:shiny-users /srv/shiny-server && sudo chmod g+w /srv/shiny-server
完成这些步骤后,你以后再往这个目录复制文件就不用加sudo了,而且不会影响shiny-server服务的正常运行。
方案3:修改目录的所有者为你的用户(不推荐)
虽然可以把目录的所有者改成stefan,但这可能会导致shiny-server服务无法正常访问目录内容,引发其他问题,所以只建议在测试场景下临时使用:
sudo chown stefan:stefan /srv/shiny-server
如果之后遇到shiny-server服务异常,记得把权限改回来:
sudo chown root:root /srv/shiny-server
内容的提问来源于stack exchange,提问作者HelenVcl
相关产品推荐
相关产品推荐

