最近我的 Ubuntu 系统出现了一些问题,所以我重新安装了系统。我有两个硬盘,一个用于系统,另一个用于文件、电影等。重新安装之前,我将 Teamspeak 3 文件夹从系统硬盘移到了另一个硬盘。
现在,重新安装后我无法启动 Teamspeak 3。我必须运行 ts3client_runscript.sh 文件才能启动它,但它说我没有权限。我在网上搜索过,但没有找到可以帮助我的东西。
我还注意到,在正在运行的 Teamspeak 3 中很多文件显示为绿色。
感谢您的帮助。 :)
答案1
我猜想在之前的系统上分配给您的用户的 UID(用户 ID)与新系统不同。尝试 terdon 的提示并检查哪个用户拥有第二个磁盘上的文件:
$ ls -l <directory>
如果此假设正确,所有者列将包含一个数字而不是您自己的用户名,或者其他用户名。还请检查组是否正确(通常与用户名相同)。
您可以使用 将所有者更改为新用户chown
,无论是针对单个文件还是(下面的示例)针对完整目录树:
$ sudo chown -R <username> <directory>
如果需要,使用chgrp
相同的方式更改组,或者将组名添加到chown
:
$ sudo chown -R <username>:<groupname> <directory>
做不使用 chmod
为此!如果不解决最初的问题,您将会弄乱权限。
答案2
概括
造成您遇到麻烦的另一个原因可能是数据分区可能使用noexec
fstab 中的挂载选项进行挂载。
要评估这是否确实是原因,你应该看看两件小事:
- 配置文件
/etc/fstab
,其中包含(几乎)所有分区以及启动时应挂载的其他内容 - 输出
mount
/etc/fstab
/etc/fstab
是一个表格格式的配置文件,其中包含分区和其他内容(但与此问题无关)、它们的挂载点以及一些定义如何mount
调用命令的参数。
例子
UUID=***** / ext4 errors=remount-ro,noatime,discard 0 1
UUID=***** /boot ext2 defaults,noatime 0 2
UUID=***** /boot/efi vfat noatime,umask=0077 0 1
UUID=***** /home ext4 defaults,noatime 0 1
- 我替换了 UUID 以提高可读性。
- 除了 UUID,一行还可以以 /dev/ 节点名开头;例如
/dev/sda1
查看包含 TeamSpeak3 文件夹所在挂载点的行。例如,如果您将 teamspeak 放在 /home/evgenie/ 上,则我的示例 fstab 中的最后一行就是您要查找的行。
在第四列中,您可以找到挂载参数(在我的情况下为 defaults,noatime)。如果显示为“defaults,noatime,noexec”,您将禁止在此分区/挂载点上执行所有操作。
mount 命令
现在让我们看一下 mount 命令的输出。这是我的示例,我过滤掉了与此示例无关的所有内容:
$ mount | grep /home
/dev/sdc1 on /home type ext4 (rw,noatime,data=ordered)
这基本上与中的相同/etc/fstab
,但可能设置了一些额外的参数 - 例如“data=ordered”。
如果您noexec
在那里发现...
.../etc/fstab
以 root 身份在编辑器中打开您的(例如sudo nano /etc/fstab
)并将其删除。
但它有一些安全隐患:
noexec
禁止从该分区执行脚本或二进制文件。这可能与其他人是否以及如何使用此系统有关。